7.4 Java(农夫果园【5】:一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果葡萄、草莓、苹果)

    技术2025-03-27  26

    【练习】

    题目要求: 项目主题: 农夫果园 一个农场,专门种植销售各类水果,在这个系统中需要描述下列水果: 葡萄:Grape 草莓:Strawberry 苹果:Apple 水果与其他的植物有很大的不同,水果最终是可以采摘食用的。 那么一个自然的做法就是建立一个各种水果都适用的接口,以便与农场里的其他植物区分开。 水果接口规定出所有的水果都必须实现的接口,包括任何水果必须具备的方法: 种植 plant(),生长 grow() ,收获 harvest() Apple类是水果中的一种,因此它实现了水果接口所声明的所有方法。另外,由于苹果是多年生植 物,因此多出一个treeAge性质,描述苹果树的树龄。Grape 类是水果类的一种,也实现Fruit接口中所声明的所有方法。 但由于葡萄分为有籽和无籽的两种,因此比通常的水果多出一个seedless 性质。 Strawberry类也是水果的一种,也实现了Fruit接口。 农场的市场调查员也是系统的一部分,也需要一个类代表,这个类是MarketInquirer, 它通过inquire()调查今年市场上哪一种水果热销。 农场的园丁也是系统的一部分,自然要由一个合适的类来代表。 这个类就是FruitGardener,它会根据农场老板的要求,使用factory()方法创建出不同的水果对象 比如苹果(Apple),葡萄(Grape)或草莓(Strawberry)的实例。 而如果接到不合法的要求,会提示错误。 农场的老板也是系统的一部分,仍需要一个类来代表,这个类是FruitBoss,他会根据市场调查员 反馈信息,通知农场的园丁今年种植哪种水果。 要求:请你根据上述系统需求,用Java语言设计这个农场系统,发挥你的想象力吧! 祝你的农场百果丰收! public class Factory { //工厂模式 public static Apple_way getApple_wayInstance() { return new Apple_way(); } public static Grape_way getGrape_wayInstance() { return new Grape_way(); } } import java.util.Scanner; public class TestFruit { public static void main(String[] args) { //市场调查员调查 Fruit_super f = new Fruit_super(); f.inquire(); Scanner se = new Scanner(System.in); System.out.println("经理:你调查的季节是几月份?"); System.out.print("调查员:"); double season = se . nextDouble (); Scanner pr = new Scanner(System.in); System.out.println("经理:好的,那么你调查的水果价格是多少?(1.76~20.49元)"); System.out.print("调查员:"); double price = pr . nextDouble (); Scanner ca = new Scanner(System.in); System.out.println("经理:好的明白,最后你调查的水果期望卡路里区间是多少?(32-57K/100g)"); System.out.print("调查员:"); double calories = ca . nextDouble (); System.out.print("经理:"); Fruit_super friut = new MarketInquirer(season, price, calories); System.out.println("调查员:明白了,非常感谢!"); //市场调查员告知老板 MarketInquirer friut1 = new MarketInquirer(); System.out.print("调查员:"); Fruit_super friut2 = new MarketInquirer(season, price, calories); System.out.println("老板:好,我知道了,辛苦了!"); //老板通知园丁 FruitBoss friut3 = new FruitBoss(); friut3.notice(); FruitGardener friut4 = new FruitGardener(); //园丁拿到清单 Fruit_super friut5 = new Fruit_super(); friut5.gardener(); //多态应用接口 Fruit_super fruit0 = new Fruit_super(); Scanner x1 = new Scanner(System.in); System.out.println("园丁:请问老板需要种植哪种水果,请说明序号。"); int x = x1. nextInt(); System.out.println("---------------------------------------------------------"); if(x==1) { //苹果 Apple_way apple = Factory.getApple_wayInstance(); fruit0.useFruit_interface(new Apple_way()); apple.treeAge(); } else if(x==2) { //草莓 fruit0.useFruit_interface(new Strawberry_way()); } else if(x==3) { //葡萄 Grape_way grape = Factory.getGrape_wayInstance(); fruit0.useFruit_interface(new Grape_way()); grape.seedless(); } else { System.out.println("园丁:老板你说的我们这里没有鸭~"); } System.out.println("---------------------------------------------------------"); System.out.println("老板:请务必按热销水果清单要求完成!"); System.out.println("园丁:收到!"); System.out.println("---------------------------------------------------------"); System.out.println("欢迎下次再来~"); se.close(); pr.close(); ca.close(); x1.close(); } }
    Processed: 0.010, SQL: 9