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()方法。

截图:
Java SE 第四章类之间的关系--水果箱编程题
代码:

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();
	}
}
上一篇:JAVA 语言基础,面向对象,SE阶段经典面试题


下一篇:json格式字符串处理