猫咪项目)"/>
初识面向对象(猫咪项目)
学习总结:
1、方法中定义的局部变量无初始值(未初始化),不能输出;当变量作为属性时,系统自动赋于初始值。
int ——>0
double——>0.0
String——>Null
2、通过类实例化对象,通过对象分别调用相应的属性和方法
3、方法重载:在同一个类中,相同方法名不同参数列表的方法。
4、单一职责原则:一个类中有且只有一个引起功能变化的原因。一个类中所承担的功能越多,交融耦合性就越高,被复用性越低。在程序设计中,尽量把不同的职责(原因)封装在不同的类中。
5、实例化对象的过程可以分为两步:
(1)声明对象 Cat one—— 栈
(2)实例化对象 new Cat()——堆
将堆空间的内存地址存到了栈中(声明对象指向实例化的具体空间)
new的出现相当于在堆中开辟了一段内存空间
注:Cat one=new Cat();
Cat two=new Cat();
即使内部信息一样,但是他两在堆中的不同内存地址中存放,改变one的值,不影响two的值。
Cat two=one;将one在栈中的内存地址给了two,任何一个的变化,都会引起双方的变化。
package com.animals;public class Cat {//成员属性:昵称、年龄、体重、品种String name;int month;double weight;String species;//方法:跑到、吃东西
public void run(){System.out.println("小猫快跑"); }
public void run(String name){System.out.println(name+"快跑");
}
public void eat(){System.out.println("小猫吃鱼");
}
}
package com.animals;public class CatTest {public static void main(String[] args){Cat one=new Cat(); Cat two=new Cat();one.eat();one.run();one.name="花花";one.month=2;one.weight=1000;one.species="英国短猫猫";two.name="凡凡";two.month=1;two.weight=800;two.species="中华田园猫";System.out.println("昵称:"+one.name);System.out.println("年龄:"+one.month);System.out.println("体重:"+one.weight);System.out.println("品种:"+one.species);System.out.println("----------------------");System.out.println("昵称:"+two.name);System.out.println("年龄:"+two.month);System.out.println("体重:"+two.weight);System.out.println("品种:"+two.species);}
}
运行结果:
更多推荐
初识面向对象(猫咪项目)
发布评论