内部类
成员内部类
Outer.java
public class Outer {
private int id = 10;
public void out(){
System.out.println("这是外部类的方法");
}
public class Inter{
public void in(){
System.out.println("这是内部类的方法");
}
//获取外部类的私有属性
public void getId(){
System.out.println(id);
}
}
}
Application.java
public class Application {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inter inter = new Outer().new Inter();
Outer.Inter inter1 = outer.new Inter();
inter.getId();
}
}
成员内部类的两种创建在Application类中,成员内部类可以获取外部类的私有属性
静态内部类
Outer.java
public class Outer {
private int id = 10;
public void out(){
System.out.println("这是外部类的方法");
}
public static class Inter{
public void in(){
System.out.println("这是内部类的方法");
}
}
}
成员内部类加上static关键字修饰就是静态内部类
静态内部类不可以使用外部类的私有属性,因为静态内部类比私有属性先创建
局部内部类
在方法中创建的类叫局部内部类
Outer.java
public class Outer {
private int id = 10;
public void out(){
public class Inter{
public void in(){
System.out.println("这是内部类的方法");
}
}
System.out.println("这是外部类的方法");
}
}
匿名内部类
Outer.java
public class Outer {
private int id = 10;
public void out(){
new Apple().eat();
}
}
class Apple{
public void eat(){
System.out.println("eat apple");
}
}
同一个java文件中可以有多个类,但只能有一个public修饰的类
new Apple().eat();就是匿名内部类的用法
让我们一起变得更强