文章目录
一.内部类
1,内部类概念
- 在一个类里面还有另外一个类
2,内部类定义格式
public class A{
public class B{
}
}
3,内部类注意事项
- 内部类可以直接访问外部类成员,外部类不能访问内部类成员
4,使用内部类成员(了解)
- 需要new内部类对象,根据外部类对象new内部类对象
格式:外部类对象.内部类对象 对象名 = new 外部类对象.new 内部类对象()。
二.匿名内部类
1,使用匿名内部类的优点?
不使用匿名内部类调用抽象对象中的方法:
- 创建子类,继承父类
- 重写方法
- 创建子类对象
- 调用重写方法
使用匿名内部类:无需创建子类直接new父类即可:
格式一:
new 父类(){
重写方法
}.重写的方法名
格式二:
父类 对象名 = new 父类(){
重写方法
}
对象名.重写的方法名
大大地简化了操作,如果只是想简单的调用这个抽象方法,就可以使用匿名内部类。
2,匿名内部类注意事项:
- new出来的父类其实代表的是子类对象
- 从开始的大括号到最后的大括号结束–>代表的是整个对象
三.权限修饰符
1,修饰符修饰成员的作用范围
(√代表可以访问到!×代表访问不到!)
public | protected | 默认的(什么都不写) | private | |
---|---|---|---|---|
同一个类中 | √ | √ | √ | √ |
同包不同类 | √ | √ | √ | × |
不同包的子父类 | √ | √ | × | × |
不同包非子类 | √ | × | × | × |
2,权限修饰符注意事项
- 成员变量一般情况使用private
- 构造方法使用public 方便创建对象
- 成员方法使用public 方便调用方法