尚硅谷学习笔记
/**
*
* 一、面向对象思想的落地法则:
* 1、设计类、并设计类的成员(成员变量&成员方法)
* 2、通过类创建类的对象(也称作类的实例化)
* 3、通过“对象.属性”或者“对象.方法”来调用,完成相应的功能 ;
*
* 二、创建的多个对象,彼此各自拥有一套类的属性,当对其中一个对象的属性进行修改时,不会影响到其他对象的属值;
*
* 三、类的属性(成员变量)
* 成员变量VS局部变量
* 相同点:1、遵循变量的声明的格式 数据类型 变量名 = 初始化值 ;
* 2、都有作用域 ;
* 不同点:
* 1、声明的位置不同, 成员变量,声明的类里,方法外;
* 局部变量,生命在方法内,方法的形参部分,代码块内;
* 2、成员变量的修饰符有4个 ,public private protect 缺省;
* 局部变量没有修饰符,与所在的方法修饰符相同 ;
*
* 3、初始化值:一定会有初始化值;
* 成员变量:如果在声明的时候不显式的赋值,那么不同数据类型会有不同的默认初始化值;
* byte short int long ==> 0
* float double ==> 0.0
* chart ==> 空格
* boolean ==> false ;
* 引用数据类型 ==> null ;
* 局部变量一定要显式的赋值
* 4、二者在内存中存放的位置不同:成员变量存放在于堆空间中
*
* 总结:关于变量的分类: 1)按照数据类型的不同 基本数据类型8种 & 引用数据类型
* 2)按照声明的位置不同 成员变量& 局部变量 ;
*
*/
public class TestZoo {
public static void main(String[] args) {
//
// 基本数据类型的声明: 数据类型 变量名 = 初始化值 ;
int i = 10 ;
// 类的实例化:如下的a1就是实实在在的对象 ;
Animal a1 = new Animal() ;
a1.name = "大熊猫" ;
a1.age = 3 ;
System.out.println("name:"+a1.name +"age:"+a1.age);
a1.eat() ;
a1.sleep() ;
//
// 再创建一个类的对象 ;
Animal a2 = new Animal() ;
System.out.println("name:" + a2.name +"age:"+ a2.age);
a2.name = "小花" ;
System.out.println("name:"+a1.name +"age:"+a1.age);
System.out.println("name:" + a2.name +"age:"+ a2.age);
// a3不意味着相较于a1重新创建的一个对象,而是a1与a3共用一个对象实体;
Animal a3 = a1 ;
System.out.println("name:"+a3.name+"age:"+a3.age);// 与a1一样
a3.name = "维尼熊 " ;
System.out.println("a1.name:"+a1.name+"a1.age:"+a1.age );
}
}
class Animal{
// 1、属性 ;
String name ;
int age ;
// 2、方法
void eat(){
System.out.println("动物进食");
}
void sleep(){
System.out.println("动物睡觉 ");
}
}