java面向对象知识点总结适用进阶

java中面向对象贯穿整个java体系,是非常重要的,一下为我自己对面向对象一些知识点的总结,

内容是针对进阶学习的,可能不太适用于初学者

构造器  

名必须和类名一致/不能定义返回值类型

This

不能用于 static 方法中

普通的直接引用this是指向当前对象本身

形参与成员名字重名,用this来区分:

引用构造函数必须位于构造方法的第一句

super

普通的直接引用super是指向当前对象的父类用super.xxx来引用父类的成员

子类中的成员变量或方法与父类中的成员变量或方法同名

引用构造函数必须位于构造方法的第一句

instanceof 运算符是二元运算符

左边对象,右边类,判断对象是否是其本类或子类

方法重写

访问权限子类大于等于父类

返回值类型和声明异常类型子类小于等于父类

Final

变量不可变,类不能继承,方法只能重载不能重写

Static

在 static 方法中不可直接访问非 static 的成员

在类载入时被初始化静态变量只能初始化一次且只有一份

静态代码块

若一段代码想在使用某个类时就运行且只运行一次, 就可以写在静态代码块

构造代码块实例代码块

不能创建对象

先于构造方法执行,每次创建对象前都会被调用用于初始化实例成员的默认值

局部代码块

里面定义的变量方法不能用于外面

用于方法内部执行顺序由出现的位置决定

继承extends

Java 只有单继承

可以得到父类的全部属性和方法(除了构造器),但未必能用

没有调用 extends默认父类是:java.lang.Object

组合

将父类对象作为子类的属性就是创建对象

封装

修饰符   同一个类  同一个包中  子类  所有类

private      

default           

protected                   ☆

public                           

关于 protected 的两个细节

若父类和子类在同一个包中,子类可访问父类的 protected 成员,也可访问父类对象的 protected 成员

若子类和父类不在同一个包中,子类可访问父类的 protected 成员,不能访问父类对象 的 protected 成员

多态

出现多态3个必要条件继承/方法重写/向上转型

对象转型(类型转换异常使用 instanceof 运算符)

 接口interface    implements

抽象方法

使用 abstract 修饰的方法,没有方法体

抽象类

包含抽象方法的类就是抽象类

定义

JDK8前,接口只能静态常量/抽象方法

JDK8后,接口可有默认方法(扩展方法)/静态方法

接口的多继承

interface 接口名 [extends 父接口 1,父接口 2…]

内部类

内部类可直接访问外部类的私有属性,但外部类不能访问内部类的内部属性

内部类只是一个编译时概念,一旦编译成功,就会成为完全不同的两个类外部类内部类的成员变量/方法名可以相同

非静态内部类

静态内部类

静态内部类只可访问外部类的静态属性/方法 

匿名内部类(也可以用lambda表达式代替)

适合只需使用一次的类

匿名内部类对接口做实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月木@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值