类是封装对象属性和行为的载体,对象是类抽象出来的一个实例。
类:具有相同特性和行为的一类事物。
1、面向对象的特点
(1)封装
将对象的属性和行为封装起来。保证了类内部数据结构的完整性。
(2)继承
继承是关联的一种。
(3)多态
将父类对象应用于子类的特征。
由父类实现统一风格,实例化子类的对象。
多态的实现不依赖具体类,而是依赖抽象类和接口(由抽象方法组成的集合)。
2、类
(1)类的构造方法
与类同名,用于创建对象。
特点:没有返回值,与类同名。
格式:public book(){...}
this可以调用类的构造方法,必须在第一句
(2)类的主方法
主方法提供对象程序流向的控制。
public static void mani(String[] args){...}
主方法是静态的,在主方法中调用其他方法必须也是静态的。
(3)成员变量
对象的属性成为成员变量。
(4)成员方法
对象的行为成为成员方法。
格式:权限修饰符 返回值类型 方法名(参数类型 参数名){
......
return 返回值;
}
(5)局部变量
方法执行时创建,结束时销毁。
(6)静态变量、常量和方法
被static修饰的变量、常量和方法成为静态成员。静态成员属于所有类。用“类名.”访问
作用:提供共享数据或方法。
注意:a.在静态方法中不能使用this。
b.在静态方法中不能调用非惊天方法。
(7)权限修饰符
private、public、protected
(8)this关键字
this关键字被隐式的用于引用对象的成员变量和方法。此外还可以作为方法的返回值。
3、对象
(1)java中通过new操作符来创建对象。(通过new调用构造方法)
例:Test test = new Test("a");
(2)每个对象都是相互独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的声明周期,当生命周期结束后会被垃圾回收机制处理。
(3) 引用只是存放一个对象的内存地址,并非存放一个对象,
(4)对象的比较: == 与 equals
==:比较两个对象引用的地址是否相等。
equals:比较两个对象引用所指的内容是否相等。
(5)对象的销毁
垃圾:a.对象引用超出其作用范围 b.null
垃圾回收器只能回收new出来的对象,非new创建的对象用finalize()方法。
System.gc()强制启动垃圾回收器。