final关键字

final修饰
类:不能被继承
方法:不能被重写
变量: 不能重新赋值

修饰变量:
局部变量
基本类型变量:
注意:循环内创建的变量,每一次都是新的变量,所以被final修饰时,可以进行第二次赋值
引用类型变量:
引用类型的局部变量,被final修饰时,只能指向一个对象,地址不能再更改,但是不影响对象内部的成员变量的修改
成员变量:
final修饰的成员变量,初始化的问题,只能是直接赋值,或者构造方法赋值

权限修饰符:
public: 公共的
producted 受保护的
default: 默认的
private: 私有的

同一类中:public producted default private
同一包中 :public producted default
不同包的子类:public producted
不同包的无关类: public

内部类:
成员内部类:
定义在类的内部方法的外部
访问的特点:
内部类可以直接访问外部类的成员,包括私有成员
外部类要访问内部的成员,必须要建立内部类对象
创建内部类对象的格式:
外部类名.内部类名 对象名 = new 外部类名 ().new 内部类名()

内部类仍然是一个独立的类,在编译之后 内部类会被编译成独立的.class 文件,但是前面冠以外部类的类名和 符 号 比 如 : P e r s o n 符号 比如:Person Person$Heart.class

匿名内部类(开发中最常用的):
是内部类的简化写法,他本质是一个带具体实现的父类或者父接口的匿名子类对象
()以接口举例,当你使用一个接口时,似乎得做如下几步操作, 1. 定义子类 2. 重写接口中的方法 3. 创建子类对象 4. 调用重写后的方法 我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快 捷方式。)

前提:匿名内部类必须继承一个父类或者实现一个父接口

格式:
new 父类名或接口名(){
@Override
public void method(){
//执行语句
}
}

引用类型用法总结
class作为成员变量
类作为成员变量时,对他进行赋值操作,实际上,是赋予给他该类的一个对象
interface作为成员变量
接口作为成员变量时,对它进行赋值操作,实际上,是赋给它该接口的一个子类对象
interface作为方法参数和返回值类型
传入的和返回的都是该接口的子类对象

例如:LIst接口的实现类ArrayList

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值