练习题目:创建一个动物类 他有名字name (String) 凶猛程度level (int)两个属性 有一个带参数的打架方法fight(int level) 有一个不带参数的方法叫 say()
fight方法里要拿自己的level和传进来的参数做比较 如果自己的大则输出 胜利 如果自己的小则输出 惜败
创建一个猫类 他继承自动物类 他的level为30 重写他的say方法,输出miao!
创建一个狗类 他继承自动物类 他的level为10
重写他的say方法,输出wang!
创建一个人类(就在这里写主函数吧)他有一只猫 一只狗 为猫取名Tom,为狗取名Jack。
输出 Tom和Jack相遇了!(这里的名字要通过对象调用。)
调用猫的对象的叫声
调用狗的对象的叫声
输出 Jack发起了挑战!(这里的名字通过对象调用。)
调用狗的对象的方法fight与猫对比。
首先呢,通过题目先建立四个类,animal,cat,dog,people,动物类里面包括了名字,凶猛程度两个属性以及两个方法。然后猫类和狗类继承自动物类,并且重写方法say,最后people类用来实现方法的调用及显示等,在人中抽象一只狗一只猫,那么这个人就有了一只狗一只猫,就可以实现相应的猫类和狗类里面的操作。
测试代码:
public class Animal {
String name;
int level;
void fight(int level){
if(this.level<level){
System.out.println("惜败");
}else {
System.out.println("胜利");
}
}
void say(){ }
}
class Cat extends Animal{
int level=30;
void say(){
System.out.println("miao!");
}
}
class Dog extends Animal{
int level=10;
void say(){
System.out.println("wang!");
}
}
class People{
public static void main(String[] args) {
Cat cat =new Cat();
Dog dog=new Dog();
cat.name="tom";
dog.name="jack";
System.out.println(cat.name+"和"+dog.name+"相遇了!");
cat.say();
dog.say();
System.out.println(dog.name+"发起了挑战");
dog.fight(cat.level);
}
}
整个问题首先分了四块来完成,如果说将四个类放入一个类来实现,一只猫一只狗还比较好实现,但如果一群猫一群狗来打架,比较凶猛程度,代码将会相当复杂,每多一只动物就要从新定义属性和方法,但面向对象将定义属性和方法交给了其他类,当需要的时候只需要创建一个新的对象,而不需要从新定义属性方法等,而新创建一个对象就属于猫类或者狗类中从而继续去实现具体方法过程,简便并且节约时间。
面向对象思想在写程序时,不需要了解具体的实现功能,只需要知道哪里可以实现这个功能并且指挥对象去实现就好了,这个实现的过程就是面向过程的思想,将步骤具体化成代码。