Java三大特征:继承、封装、多态
类(虚拟模型):确定对象将拥有的特征(属性)和行为(方法);--- 抽象的概念/模板
对象(实物--猫):类的实例表现;--- 具体实体
【总结】:类 是 对象的类型,对象 是特定类型的数据;
属性:对象所具有的各种静态特征(对象有什么)---名字、毛色、年龄、体重....
方法:对象具有的各种动态行为(对象能做什么)---跑、跳、叫....
(实例化)
类-------------------->对象
***类和对象***
Cat one = new Cat( );
(声明对象) (实例化对象)
//将实例化对象在内存中所在地址 给 对象one,即one指向cat的某一个对象
【声明对象】:在 内存的 栈空间里,开辟了一块区域 取名为one,这时里边是空,这时进行属性和方法的调用是不被允许的;
【实例化对象】:在 内存的 堆空间里,完成具体对象的初始化操作;
栈:被调用时处于存储空间中,调用完毕后立即释放;(一般存放变量名)
堆:由java垃圾回收机制决定;(一般存放对象)
【注意】:类中定义的方法--成员方法,类中定义的属性变量--成员变量(系统会给出默认初始值),方法中的属性--局部变量(必须指定默认值)
***构造方法/构造函数*** public 构造方法名( ) { }
【注意】:不能被对象单独调用,只能在对象实例化new的时候被调用,不能使用类.方法名调用;
【注意】:通常会在 构造方法中,完成 类属性的 实例化;
String name;
int age;
public Cat(String name,int age){
name=name; ??//这里不会报错,但是会警告,因为“就近原则”
age=age; ??//并没有把值赋值给成员变量name、age
}
***this关键字***
1、this.方法名( ) / this.属性名,引用当前对象的成员;
2、构造方法 只能在 构造方法之间被调用,不能在普通方法中被调用;
3、在构造方法中,使用this关键字调用其他构造方法,位置只能放在方法第一条语句;