题目
人:姓名,年龄,性别,(喂宠物)
猫:姓名,品种,喜爱食物(数组)
狗:姓名,品种,喜爱食物(数组)
1.手动输入喂宠物的种类
2.手动输入喂的食物判断是否爱吃
面向对象封装很重要,将一些代码块封装在一起,需要时候调用,方便后来的管理,也方便自己和其他人读代码。在工作中,最好不要在main类中建立过多的对象,通过类相互调用,简化代码块的编写。实现方法的重用。(面向对象的三大特点是:封装,继承,多态),一定要有封装思维!!!方便自己方便他人!
思路:
根据题意,分别建立三个类,调用关系是:人类里面含有feed方法调用猫狗类,猫狗类里面有方法isok判断键盘输入的食物是不是对应动物喜欢吃的食物。
package test; import java.util.Scanner; public class test0 { //女人类 public String name; public int age; public char sex; public test0() { name="lisa"; age=11; sex='女'; } public void information() { System.out.println(age+"岁的"+sex+name+"在喂宠物"); } public void feed(String CWname) { if("猫".equals(CWname)) { test00 mao=new test00(); mao.isok("猫"); } else if("狗".equals(CWname)) { test000 gou=new test000(); gou.isok("狗"); } } }
package test; import java.util.Scanner; public class test00{ //猫类 public String name; public String type; public String[] favorite={"鱼干","猫粮","水"}; public test00() { name="cat"; type="猫"; } public void isok(String s) { System.out.println("请输入你想喂的食物:"); String food=new Scanner(System.in).next(); for(int i=0;i<3;i++) { if(type.equals(s)&favorite[i].equals(food)) { System.out.println(name+type+"爱吃"+favorite[i]); break; } else if(i==2) { System.out.println(food+name+type+"不爱吃"); break; } } } }
package test; import java.util.Scanner; public class test000 { //狗类 public String name; public String type; public String[] favorite={"狗粮","骨头","水"}; public test000() { name="dog"; type="狗"; } public void isok(String s) { System.out.println("请输入你想喂的食物:"); String food=new Scanner(System.in).next(); for(int i=0;i<3;i++) { if(type.equals(s)&favorite[i].equals(food)) { System.out.println(name+type+"爱吃"+favorite[i]); break; } else if(i==2) { System.out.println(food+name+type+"不爱吃"); break; } } } }
package test; import java.util.Scanner; public class Test0_test { public static void main(String[] args) { System.out.println("请输入你想喂的动物:"); String CWname=new Scanner(System.in).next(); test0 woman=new test0(); woman.feed(CWname); } }