内部类
内部类: 将一个类写在了另一类或者方法中!
内部类的分类
01.成员内部类
可以访问我们外部类的所有属性和方法!
如果我们想访问内部类!必须要有外部类! 只能通过外部类来访问内部类!
001.创建外部类对象
FatherClass father=new FatherClass();
002.通过外部类对象创建内部类对象
FatherClass.Son son = father.new Son();
003.调用对应的方法
son.sayHello();
注意点:
01.内部类可以拥有private,protected访问权限修饰符!
02.如果外部类和内部类有相同的属性或者方法的时候, 默认是就近原则,取内部类的属性或者方法!
我们想调用外部类的属性和方法使用 ===>外部类名.this.属性/方法名
02.局部内部类
类被定义在一个方法体或者作用域中!
注意点:
001.这个类仅限于当前方法使用!
002.可以理解成局部变量
03.匿名内部类 *****
注意点
001.没有名字
002.只能使用一次
003.前提:必须继承一个类或者实现某个接口
004.接口或者抽象类中的所有抽象方法必须全部实现!
在我们的程序中,有一个类只使用了一次,那么我们没有必要单独去创建一个类!这时候就使用匿名内部类!
04.静态内部类
就是在内部类的修饰符上加了 static ! 静态了!不依赖于外部类了!
不能访问外部类的所有非静态的属性和方法!