1.final关键字
final代表最后的,最终的
可以用来修饰,类、方法、变量
2、final修饰类
被final修饰的类,不能被继承,太监了(不能有子类)
final不能和abstract共用
3、fianl修饰方法
不能被子类覆盖重写,但是可以重载
4、final修饰局部变量
局部变量(定义参数的位置,方法中的变量,静态代码块)
一旦赋值就不能再赋值,即使赋值相同
5、final修饰成员变量
成员变量在类中方法外;成员变量有默认值
加final需要在构造方法中进行赋值,或者直接赋值
final修饰的静态常量名要大写,多个单词间用_隔开
6、final修饰引用类型变量
变量为引用类型,加上final,只能赋值一次,但可以修改对象的内容
7、访问权限修饰符-概述和应用
前提在一个项目中
public 公有的:任何地方都可以进行访问
protected 受保护的:同包可以访问,不同包的子类也可以访问
default空 默认的:同包可以访问
private 私有的:只有本类可以访问
public | protected | default(空的) | private |
---|---|---|---|
同一类中 | √ | √ | √ |
同一包中(子类与无关类) | √ | √ | √ |
不同包的子类 | √ | √ | |
不同包中的无关类 | √ |
可见,public具有最大权限。private则是最小权限。
8、内部类概述及分类
一个类A中定义另一个类B
有了内部类才可以更好面向对象,用类描述事物
public class A{
public class B{
}
}
9、成员内部类格式
内部类在类中方法外
public class A{
public class B{
public void methodB(){
}
}
public void methodA(){
}
}
使用(创建内部类的对象)
外部类名.内部类名 对象名 = new 外部类名().new 内部类();
A.B 对象名 = new A().new B();
this.变量名;//内部类访问当前类中的成员变量
外部类名.this.变量名;//内部类访问外部类成员变量
10、局部内部类定义及使用
定义在类中方法中
public class 外部类名{
public void method(){
public class 内部类名{
}
}
}
只能在方法中使用,在开发中很少用
13、匿名内部类及使用方式
匿名内部类必须继承一个父类或者实现一个父接口
为了简化代码
格式
new 抽象类/接口(){
//覆盖重写抽象方法
}.成员方法名();
开发中会给new的对象赋值一个变量,表示起了一个名字,直接使用变量名.方法名调用重写的方法
开发中,new 接口名再使用alt+enter快捷键快速生成匿名内部类
复习
[ ] 描述final修饰的类的特点
被final修饰的类不能被继承
[ ] 描述final修饰的方法的特点
被final修饰的方法不能被重写,但可以被重载
[ ] 能够说出权限修饰符作用范围
public>protected>空>private
[ ] 说出内部类的概念
被定义在一个类中的类就是内部类
[ ] 能够理解引用类型作为成员变量
[ ] 能够理解引用类型作为方法参数
[ ] 能够理解引用类型作为方法返回值类型