java之继承、数组的运用

作业

// 简答题:
// 继承的作用?
   // 能够实现代码的重用;子类继承父类后,可以继承父类的属性和方法,减少重复的代码,提高代码的维护性
// 继承的实现方法?
   // 创建一个子类,在类名后面加上(extends 父类名)
// 继承的特性?
   // 单根性:一个子类只能显示的继承一个父类;传递性:父类的属性和方法可以一层层传递给子类
// super关键字有哪些作用?
   // super可以通过.来调用父类的属性和方法。
// 子类和父类构造方法的调用次序?
   // 先调用父类的,再调用子类的.
// 访问修饰符有哪些,分别有什么区别?
   // ​"private" 私有,只能在当前类访问;"public" 公开,可以在任何类访问;"默认"(不写) 在同一个包中的类访问;"protected" 保护,同一个包类或不同包的子类
// 什么是重写?
   // 是指在子类中重写父类已经有的方法,以达到覆盖父类的方法的目的。

1、定义交通工具类,属性:颜色、速度、耗油量;方法:移动、停止。

// 定义汽车类和轮船类继承交通工具,汽车类有品牌属性,有刹车方法
// 轮船有排水量属性,有抛锚方法。
// 创建汽车和轮船对象,并调用所有的方法。
public class JiaoTongGJ {
	// 1、定义交通工具类,属性:颜色、速度、耗油量;方法:移动、停止。
	// 定义汽车类和轮船类继承交通工具,汽车类有品牌属性,有刹车方法
	// 轮船有排水量属性,有抛锚方法。
	// 创建汽车和轮船对象,并调用所有的方法。
	private String colour;//颜色
	private int speet;//速度
	private int haoYouLiang;//耗油量
	public JiaoTongGJ() {
		super();
	}
	public JiaoTongGJ(String colour, int speet, int haoYouLiang) {
		super();
		this.colour = colour;
		this.speet = speet;
		this.haoYouLiang = haoYouLiang;
	}
	public String getColour() {
		return colour;
	}
	public void setColour(String colour) {
		this.colour = colour;
	}
	public int getSpeet() {
		return speet;
	}
	public void setSpeet(int speet) {
		this.speet = speet;
	}
	public int getHaoYouLiang() {
		return haoYouLiang;
	}
	public void setHaoYouLiang(int haoYouLiang) {
		this.haoYouLiang = haoYouLiang;
	}
	public void move(){
		System.out.println(desc()+"的交通工具正在移动");
	}
	public void stop(){
		System.out.println(desc()+"的交通工具正在停止");
	}
	public String desc(){
		return "颜色为:"+getColour()+",速度为:"+getSpeet()+",耗油量为:"+getHaoYouLiang();
	}
}
public class QiChe extends JiaoTongGJ {
	private String name;//品牌属性

	public QiChe() {
		super();
	}

	public QiChe(String colour, int speet, int haoYouLiang) {
		super(colour, speet, haoYouLiang);
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	public void shaChe(){
		System.out.println(getName()+"正在刹车");
	}
	
}

public class LunChuan extends JiaoTongGJ {
	private int paiShuiLiang;//排水量

	public LunChuan() {
		super();
	}

	public LunChuan(String colour, int speet, int haoYouLiang) {
		super(colour, speet, haoYouLiang);
	}

	public int getPaiShuiLiang() {
		return paiShuiLiang;
	}

	public void setPaiShuiLiang(int paiShuiLiang) {
		this.paiShuiLiang = paiShuiLiang;
	}
	public void paoMao(){
		System.out.println("轮船在抛锚");
	}
}

public class Test1 {
	public static void main(String[] args) {
		QiChe qiChe = new QiChe("黑色", 100, 40);
		LunChuan lunChuan = new LunChuan("白色", 80, 50);
		qiChe.setName("宝马");
		lunChuan.setPaiShuiLiang(30);
		qiChe.move();
		qiChe.stop();
		qiChe.shaChe();
		lunChuan.move();
		lunChuan.stop();
		lunChuan.paoMao();
	}
	
}

2、定义人类,人类有吃饭的方法,中国人、美国人、印度人继承人类,重写吃饭的方法,分别输出中国人用筷子吃饭,

// 美国人用刀叉吃饭,印度人用手吃饭,编程实现上面的案例。
public class Person {
	// 2、定义人类,人类有吃饭的方法,中国人、美国人、印度人继承人类,重写吃饭的方法,分别输出中国人用筷子吃饭,
	// 美国人用刀叉吃饭,印度人用手吃饭,编程实现上面的案例。
	public void chiFan() {
		System.out.println("正在吃饭");
	}
}
public class Chinese extends Person {
	public void chiFan() {
		System.out.println("中国人用筷子吃饭");
	}
}
public class Aamericans extends Person {
	public void chiFan() {
		System.out.println("美国人用刀叉吃饭");
	}
}
public class India extends Person {
	public void chiFan() {
		System.out.println("印度人用手吃饭");
	}
}
public class Test2 {
	public static void main(String[] args) {
		Chinese chinese = new Chinese();
		chinese.chiFan();
		Aamericans aamericans = new Aamericans();
		aamericans.chiFan();
		India india = new India();
		india.chiFan();
	}
}

3、定义一个家电类,定义功率、价格、品牌属性,定义启动方法用于输出这些属性。

// 定义一个电视类,继承家电类,添加播放方法。
// 创建电视对象,调用播放方法。
// 最后给家电添加有参的构造方法,在电视中也添加有参的构造方法,用super调用父类构造方法。
// 4、扩展
// 接上一题,定义一个长度为5的家电数组,保存5个家电对象到数组中
// 按照价格对家电数组进行排序
public class JiaDian {
	// 3、定义一个家电类,定义功率、价格、品牌属性,定义启动方法用于输出这些属性。
	// 定义一个电视类,继承家电类,添加播放方法。
	// 创建电视对象,调用播放方法。
	// 最后给家电添加有参的构造方法,在电视中也添加有参的构造方法,用super调用父类构造方法。
	private String name;//品牌
	private int gongLv;//功率
	private int price;//价格
	public JiaDian() {
		super();
	}
	public JiaDian(String name, int gongLv, int price) {
		super();
		this.name = name;
		this.gongLv = gongLv;
		this.price = price;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getGongLv() {
		return gongLv;
	}
	public void setGongLv(int gongLv) {
		this.gongLv = gongLv;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public void qiDong() {
		System.out.println("品牌为:"+getName()+",功率为:"+getGongLv()+",价格为:"+getPrice()+"的电器正在启动");
	}
	@Override
	public String toString() {
		return "JiaDian [name=" + name + ", gongLv=" + gongLv + ", price=" + price + "]";
	}
	
}
public class DianShi extends JiaDian {
	public DianShi(String name, int gongLv, int price) {
		super(name,gongLv,price);
		
	}
	public void boFang() {
		qiDong();
		System.out.println("电视正在播放");
	}
}
public class Test3 {
	public static void main(String[] args) {
		DianShi dianShi = new DianShi("晶弘", 45, 2000);
		dianShi.boFang();
		JiaDian dsj = new JiaDian("电视机", 50, 6000);
		JiaDian bx = new JiaDian("冰箱", 100, 2500);
		JiaDian bjb = new JiaDian("笔记本", 30, 4000);
		JiaDian rsq = new JiaDian("热水器", 80, 3000);
		JiaDian kt = new JiaDian("空调", 120, 5000);
		JiaDian [] arrgs ={dsj,bx,bjb,rsq,kt}; 
		
		for (int i = 0; i < arrgs.length - 1; i++) {
			for (int j = 0; j < arrgs.length - 1 -i; j++) {
				if(arrgs[j].getPrice() > arrgs[j+1].getPrice()){
					JiaDian a = arrgs[j]; 
					arrgs[j] = arrgs[j+1];
					arrgs[j+1] = a;
				}
			}
		}
		for (JiaDian n : arrgs) {
			System.out.println(n);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值