栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

面向对象编程例题(一个类作为另一个类的属性)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象编程例题(一个类作为另一个类的属性)

创建一个工人类Worker

1)工人类的属性:工龄、工号、姓名、基本工资 Phone phone
需要定义一个Phone类,属性:brand price
2)输出所有信息的方法(包含手机的信息)
3)定义一个输出工资的方法(工资=基本工资)
4)创建一个部门经理类,继承工人Worker类,并重写其计算工资的方法(工资=基本工资+岗位级别500+工龄1000)
添加属性Saler saler; 定义一个方法manager(){ 打印部门经理谁负责管理的是哪个销售人员,
当月的销售金额是XX } 表示管理哪个销售人员
5)创建一个销售人员类,继承工人Worker类,
并增加一个属性(销售金额)。
并重写其计算工资的方法
(工资=基本工资+销售金额*系数(其中系数当销售金额大于100W时为0.09,小于100W时为0.08))
6)创建测试类,分别定义Manager类的对象,并赋值,调用其输出工资的方法和manager方法进行测试。

工人类

public class Worker {
	private int time;
	private int id;
	private String name;
	private double sal;
	private Phone phone;
	public int getTime() {
		return time;
	}
	public void setTime(int time) {
		this.time = time;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getSal() {
		return sal;
	}
	public void setSal(double sal) {
		this.sal = sal;
	}
	public Phone getPhone() {
		return phone;
	}
	public void setPhone(Phone phone) {
		this.phone = phone;
	}
	public Worker() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Worker(int time, int id, String name, double sal, Phone phone) {
		super();
		this.time = time;
		this.id = id;
		this.name = name;
		this.sal = sal;
		this.phone = phone;
	}
	@Override
	public String toString() {
		return "工龄:" + time + ", 工号:" + id + ", 姓名:" + name + ", 工资:" + sal + ", 手机:" + phone + "]";
	}
	
	public void show() {
		System.out.println("姓名:"+name+" 工号:"+id+" 工龄:"+time+" 基本工资:"+sal+"手机品牌:"+phone.getBrand()+" 手机价格:"+phone.getPrice());
	}
	
	public void showSal() {
		System.out.println("基本工资:"+sal);
	}
}

管理员类

public class Manager extends Worker{
	private int level;
	private Saler saler;
	
	public Manager() {
		super();
		// TODO Auto-generated constructor stub
	}

	public int getLevel() {
		return level;
	}

	public void setLevel(int level) {
		this.level = level;
	}
	public Saler getSaler() {
		return saler;
	}

	public void setSaler(Saler saler) {
		this.saler = saler;
	}

	public Manager(int time, int id, String name, double sal, Phone phone,int level,Saler saler) {
		super(time, id, name, sal, phone);
		this.level = level;
		this.saler = saler;
		// TODO Auto-generated constructor stub
	}

	@Override
	public String toString() {
		return "Manager [level=" + level + ", saler=" + saler + "]";
	}

	public void manage(){
		// 
		System.out.println("部门经理是:"+getName()+"管理的销售人:"+saler.getName()+"当月的销售额:"+saler.getSal());
	}
	
	// 重写计算工资的方法
		//基本工资+岗位级别*500+工龄*1000
		@Override
		public void showSal() {
			double s  = getSal()+level*500+getTime();
			System.out.println("部门经理的工资"+s);
		}
}

销售员类

public class Saler extends Worker{
	private double xsSal;


	public Saler(int time, int id, String name, double sal, Phone phone,double xsSal) {
		super(time, id, name, sal, phone);
		this.xsSal = xsSal;
		// TODO Auto-generated constructor stub
	}

	public Saler() {
		super();
	}

	public double getXsSal() {
		return xsSal;
	}

	public void setXsSal(double xsSal) {
		this.xsSal = xsSal;
	}

	@Override
	public String toString() {
		return "Saler ["+super.toString()+"xsSal=" +  xsSal + "]";
	}

	@Override
	public void showSal() {
		double l = 0.0;
		if(xsSal>=1000000) {
			l = 0.09;
		}else {
			l = 0.08;
		}
		double totalMoney = getSal()+xsSal*l;
		System.out.println("销售人员的工资是:"+totalMoney);
	}
}

手机类

public class Phone {
	private String brand;
	private double price;
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public Phone(String brand, double price) {
		super();
		this.brand = brand;
		this.price = price;
	}
	public Phone() {
		super();
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() {
		return "手机品牌" + brand + ", 手机价格" + price + "]";
	}
}

测试类

public class Test5 {
	public static void main(String[] args) {
		Phone phone = new Phone("锤子", 3500);
		
		Phone phone2 = new Phone("8848", 10000);
		
		Saler saler=new Saler(10, 8, "张三", 1000, phone2, 10000000);
		
		
		Manager manager = new Manager(20, 7,"李四",  2000, phone, 10, saler);
		manager.showSal();
		manager.manage();
		
		saler.showSal();	
		// 一个类可以作为另外一个类的属性
	}
}

结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984646.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号