Java 面向对象
1、简介
理解:物以类聚,把一个类,当做一个对象,而不仅仅是一些变量方法,杂乱无章。
本质:以类的方式组织代码,以对象的组织数据。
2、创建类
public class Person{
}
3、创建对象
对象类型 对象名 = 值
Person person = new Person();
new 关键字
分配内存空间,创建对象,初始化参数,调用构造器等
4、构造方法
public Person(){}
-
与类名字相同
-
没有返回值,也不能写void
5、三大特性
5.1、封装
数据隐藏,用盒子装起来,留一个小口,接口
高内聚,低耦合
高内聚:类的内部数据操作细节自己完成,不允许外部干涉。
低耦合:暴露少量方法给外部使用
5.2、继承
理解:儿子继承父亲,并且能拓展,减少代码重复
关键字 : extends,“扩展”
5.2.1、super this
-
this(),本身构造器
-
super(),父类构造器
两者不能同时调用,因为都必须在第一行,遵循构造器择一的原则
5.2.2、方法重写
- 方法名相同
- 参数列表相同
- 修饰符可扩大
- 抛出异常可缩小
5.2.3、方法重载
- 方法名称必须相同
- 参数列表必须不同
- 方法的返回类型可以相同也可以不相同
5.2.4、instanceof
instanceof 判断父子关系,间接也可以(爷孙)
5.3、多态
5.3.1、什么是多态?
现实中:不同类的对象对同一消息作出不同的响应就叫做多态。
编程中:不同的子类重写同一个父类的同一个方法叫做多态。
举例:上课铃响了,上体育课的去操场,上数学课的去教室。
5.3.2、多态的分类
编译时多态,即方法的重载,从JVM的角度来讲,这是一种静态分派(static dispatch)
运行时多态,即方法的重写,从JVM的角度来讲,这是一种动态分派(dynamic dispatch)
6、抽象类
概述:生来就是被继承的,没有自己的生命
作用:定义抽象方法,或普通方法、可以有构造器
- 不能 new(实例化)
- 子类必须实现抽象方法
- 被abstract关键字修饰
7、接口
接口是一种规范。
接口中有必要的方法,不能自己实现
-
interface 关键字
-
一个类可以多个接口
-
不能new(实例化),只能靠子类实现
-
方法都是public
-
必须实现接口的全部方法
-
可以定义常量,不能定义变量,全局静态常量都有(public static final 修饰 )和 初始值
-
不能有构造