面向对象(2)

1.关键字this, static, package和import语句
this:(this表示当前对象)
--在类的方法定义中使用this关键字代表使用该方法的对象的引用
--当必须指出当前使用方法的对象是谁时要使用this
--有时this可以处理方法中成员变量和参数重名的情况
--this可以看作是一个变量, 它的值是当前对象的引用
static(不在堆里面也不在栈里面, 在数据区(data seg)):
--类名直接 . 出来的变量是静态变量, 每个类里面的静态变量只有一份, 是公用的(赋值后每个实例化的类都可使用)
--静态方法中不可访问非静态成员
--静态变量和静态方法不需要实例化
package:
便于管理大型软件系统中数目众多的类, 解决类名重名的现象

2.访问控制, 权限修饰符(public private default protected)
puclic class 类名 {
private 类型 属性1;
private 类型 属性2;

set, get
}

3.面向对象的三大特性: 封装, 继承, 多态
封装:
(以上讲的内容大部分都是封装)
继承:
子类拥有父类的属性和方法, 任何一个类都继承 Object (不管是java定义的还是自己定义的)
Object.finalize()-->调用这个方法来释放资源
多态(执行期间(执行期间-->你在控制台上写 java 类名 运行某个文件的时候叫执行期间)的动态绑定, 池绑定):
重载(overload):
方法名相同, 只有参数类型不同或者参数个数不同, 返回值不同是不能构成重载的
重写(overwrite / override):
将父类的方法重新定义
--在子类中可以根据需要从父类中集成来的方法进行重写
--重写方法必须和被重写的方法具有相同的方法名, 参数列表和返回类型
--重写方法不能使用比被重写方法更严格的访问权限
toString方法的重写
equals方法的重写

4.super, final关键字
super: 指向父类的引用
final的变量值不能改变
final的方法不能被重写
final的类不能被继承

5.对象转型(casting)
--父类的引用可以指向其子类的对象
--父类的引用不可以访问其子类对象新增的成员(包括属性和方法), 如果硬要访问-->强转
--可以使用instanceof关键字来判断一下这个变量是不是这个类或者是这类的子类

6.抽象类(方法)
--使用abstract关键字修饰的类(方法)
--含有抽象方法的类必须被声明为抽象类
--抽象类不能被实例化(因为是不完美的)
--抽象方法只需要声明, 不需要被实现
抽象方法:
定义方法, 没有实现

原文地址:https://www.cnblogs.com/angangxiaofa/p/6894645.html