Java SE 第四章类之间的关系--水果箱编程题

问题:有一个水果箱(Box),箱子里装有水果(Fruit),每一种水果都有不同的重量和颜色,水果有:苹果、梨、桔子。每个苹果(Apple)都有不同的重量和颜色,每个桔子(Orange)都有不同的重量和颜色。

思路:
1)首先要有一Fruit父类,及其3个子类Apple、Pear、Orange。
a、Fruit父类的属性:color、weight;
显示信息方法:改写toString方法使其返回水果名(getClass().getName())、重量、颜色的字符串。
b、子类Apple、Pear、Orange只需完善带参构造进行赋值。(子类构造方法首先进行父类构造super())。
2)Box类:
声明一个ArrayList来存水果对象;
void addFruit(Fruit f);
Fruit getFruit()取出水果并打印其信息(调用toString())。
3)Test测试类(主方法):
实例化Box、Apple、Pear、Orange;
然后调用Box的addFruit(),getFruit()方法。

截图:
在这里插入图片描述
代码:

package fruitBox;
public class Fruit {
	String color;//属性
	double weight;
	public Fruit(){
	}
	public String toString(){//显示信息的方法
		return "水果:"+getClass().getName()+"重量:"+weight+"颜色:"+color;
	}
		```}package fruitBox;

public class Apple extends Fruit{

	public Apple(String color, double weight) {//带参构造
		super();//父类构造
	this.color=color;//赋值
	this.weight=weight;
	}
}
package fruitBox;

public class Pear extends Fruit{

	public Pear(String color, double weight) {//带参构造
		super();//父类构造
	this.color=color;//赋值
	this.weight=weight;
	}

}
package fruitBox;

public class Orange extends Fruit{
	public Orange(String color, double weight) {//带参构造方法
		super();//父类构造
	this.color=color;//赋值
	this.weight=weight;
	}

}
package fruitBox;
import java.util.*;
public class Box {
	ArrayList<Fruit>arraylist=new ArrayList<Fruit>();//容器
	
    public void addFruit(Fruit f){//add方法传的参数是Fruit对象
    	
    	arraylist.add(f);
    }
 public Fruit getFruit(){
    	Fruit fruit=arraylist.get(arraylist.size()-1);//用一个Fruit对象接收获取的是最后放进去的那个
    	System.out.println(fruit.toString());//接收完然后打印调用toString方法
    	return null;
    }
}
package fruitBox;

public class Test {

	public static void main(String[] args) {
		Box box=new Box();//实例化对象
		Apple apple=new Apple("red",1.2);
		Pear pear=new Pear("Green",0.2);
		Orange orange=new Orange("yellow",0.3);
		box.addFruit(apple);//添加
		box.getFruit();//打印
		box.addFruit(pear);
		box.addFruit(orange);
		box.getFruit();
	}
}
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stttos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值