权限修饰符
- 同一个类下:
- 同一个包子类、其他类:
- 不同包的子类:
- 不同包的其他类:
- 类及其成员修饰符
权限修饰符:private、默认的、protected、public
状态修饰符:static、final
抽象修饰符:abstract - 类:
权限修饰符:默认的、public
状态修饰符:final
抽象修饰符:abstract
最常用的是public成员变量:
权限修饰符:private、默认的、protected、public
状态修饰符:static、final
最常用的是public -
构造方法:
权限修饰符:private、默认的、protected、public
最常用的是public -
成员方法:
权限修饰符:private、默认的、protected、public
状态修饰符:static、final
抽象修饰符:abstract
最常用的是public内部类
- 把类定义在其他类的内部,这个类就被称为内部类
举例:在类A中定义了一个类B,类B就是内部类 - 内部类的访问特点:
- 内部类可以访问外部类的成员,包括私有
- 外部类如果想要访问内部类的成员,就必须要创建对象
- 内部类的位置:
按照内部类在类中定义的位置不同,分为如下两种格式
- 成员位置(成员内部类)
- 局部位置(局部内部类)
- 成员内部类:
- 内部类可以访问外部类的成员,包括私有
- 如何创建对象呢
外部类名.内部类名 对象名 = new 外部类名.new 内部类名
- 成员内部类常见修饰符:
private:为了保证数据的安全性
static:为了方便访问数据
注意事项:静态内部类访问的外部数据必须由静态修饰
匿名内部类
- 就是内部类的简化写法
- 前提:存在一个类或者接口
这里的类可以是具体类,也可以是抽象类 - 格式:new 类名或者接口名(){重写方法;}
- 本质是:是一个继承了这个类或者实现了这个接口的子类的匿名对象
example:
interface Inter{
public abstract void show();
public abstract void show2();
}
class Outer7{
public void fun() {
// new Inter() {
// public void show() {
// System.out.println("show()方法");
// }
// public void show2() {
// System.out.println("这是show2()方法");
// }
// }.show2();
// new Inter(){
// public void show(){
// System.out.println("这是show()方法");
// }
// public void show2(){
// System.out.println("这是show2()方法");
// }
// }.show();
//问题,如果我这个接口有很多方法,还需要使用匿名内部类的形式就很麻烦,怎么改进
Inter inter = new Inter(){
public void show() {
System.out.println("这是show方法");
}
public void show2() {
System.out.println("这是show2方法");
}
};
inter.show();
inter.show2();
}
}
public class Demo7 {
public static void main(String[] args) {
Outer7 outer7 = new Outer7();
outer7.fun();
}
}
//这是show方法
//这是show2方法
感谢观看,我是酷酷的涛。