1.外部类实例化内部类
public class InnerDemo {
public static void main(String[] args) {
//外部类实例化非静态内部类
InnerDemo in = new InnerDemo();
InnerDemo.Dog dog = in.new Dog();
System.out.println(dog.name);
//外部类实例化静态内部类
InnerDemo.Bird bird = new InnerDemo.Bird();
System.out.println(bird.name);
}
class Dog{
private String name = "哈士奇";
}
static class Bird{
private String name = "燕子";
}
}
2.内部类使用外部类的同名属性
public class InnerDemo {
private String name = "Lets go!";
public static void main(String[] args) {
//外部类实例化非静态内部类
InnerDemo in = new InnerDemo();
InnerDemo.Dog dog = in.new Dog();
System.out.println(dog.name);
dog.whichName();
//外部类实例化静态内部类
InnerDemo.Bird bird = new InnerDemo.Bird();
System.out.println(bird.name);
}
class Dog{
private String name = "哈士奇";
public void whichName(){
//内部类调用内部类的同名属性
System.out.println(this.name); //输出哈士奇
System.out.println(InnerDemo.this.name); //输出lets go
}
}
static class Bird{
private String name = "燕子";
}
}