本章重点:
1、类与对象
2、构造方法
3、访问权限
4、继承
5、多态
6、抽象和接口
7、内存分析
面向对象和面向过程
面向过程:侧重的是过程
优点:简单
缺点:代码量大了后,维护性非常差
面向对象:侧重的是对象
优点:可扩展性非常强,维护成本低
缺点:新手上手难
成员变量与局部变量
成员变量:直接写在类里的变量为成员变量
局部变量:写在方法里的变量为局部变量
this关键字
this:当前类的对象
this可以在方法内部获取到对象中的属性信息
this还可以区分局部变量和成员变量
构造方法
在创建对象的时候,自动调用的方法
语法:
public 类名(传参){
}
static:静态
静态的内容在内存中是保留一份的,且各个对象之间共享
推荐使用雷鸣去访问静态的内容
特点:
1、数据共享
2、属于类的,并不属于对象
3、优先于对象产生的
通用构造器、静态构造器
创建对象的过程(简单):
1、静态构造器
2、通用构造器
3、构造方法---->创建对象
访问权限:
1、public:公共的,所有人都可以访问
2、default:包访问权限,在自己包内可以随意访问
3、private:私有的
继承
继承:子类可以自动拥有父类中除了私有内容外的其他所有内容
作用:简化代码的开发
子类对父类进行扩展
super关键字
super:表示父类的内容
this:表示子类的内容
用super和this来区分父类和子类中重名的内容
创建对象的过程:先创建父类的对象
多态
多态:同一个对象拥有多种形态
作用:把不同的数据类型进行统一,让程序有超强的可扩展性
小知识点:
1、把子类的对象赋值给父类的变量->向上转型
缺点:向上转型会屏蔽掉子类中特有的方法
2、把父类的变量转化回子类的变量->向下转型
向下转型可能有风险,java要求必须要写强制类型转换
(转换之后的数据类型)变量
final(不可变)
1、被final修饰的变量不可以被改变,又被称为常量
2、被final修饰的方法不可以被重写
3、被final修饰的类不可以被继承
抽象
抽象:在java中,只声明,不实现
抽象方法:使用abstract来修饰,不可以有方法体,直接用分号结束即可
抽象类:如果一个类中有抽象方法,这个类必须是一个抽象类
特点:
1、抽象类不可以创建对象
2、抽象类的子类必须重写父类中的抽象方法,否则,子类必须也是抽象类
通过抽象类可以强制要求子类中必须有哪些方法
注意:抽象类中可以有正常的方法
接口
接口实际上是一种特殊的抽象类
接口中所有的方法都是抽象方法
接口使用interface来声明
类只能单继承,接口支持多实现
接口同样具有多态性
接口可以把很多不想关的内容进行整合
特点:
1、接口中所有的方法都是抽象方法,都是公开的
2、接口中所有的变量都是全局静态常量(public static final)