初识面向对象(猫咪项目)

蹲街弑〆低调 提交于 2020-02-22 03:56:41

学习总结:
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);
    	  }
}

运行结果:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!