Java内部类

Java内部类

成员内部类

可以获得外部类的私有属性和私有方法

public class Outer {
   private int id = 99;
​
   public void out() {
       System.out.println("这是外部类方法");
  }
​
   public class Inner {
       public void inn() {
           System.out.println("这是内部类方法");
      }
​
       // 获得外部类的私有属性
       public void getID() {
           System.out.println(id);
      }
  }
}

 

静态内部类

无法访问外部类中非静态的属性和方法

public class Outer {
   private int id = 99;
​
   public void out() {
       System.out.println("这是外部类方法");
  }
​
   public static class Inner {
       public void inn() {
           System.out.println("这是内部类方法");
      }
​
       // 获得外部类的私有属性
       public void getID() {
           System.out.println(id);//error
      }
  }
}

 

一个Java类中可以有多个class类,但只能有一个public class

 

匿名内部类

不用将类的实例化对象保存到变量中,而是直接调用

public class Test {
   public static void main(String[] args) {
       Apple apple = new Apple();
       apple.eat();
​
       // 没有名字初始化类,不用将实例保存到变量中
       new Apple().eat();
​
       userService userService = new userService() {
​
           @Override
           public void show() {
​
          }
      };
  }
}
​
class Apple {
   public void eat() {
       System.out.println("eat");
  }
}
​
interface userService {
   void show();
}

 

posted @ 2021-04-09 11:17  木木彡坚持  阅读(53)  评论(0)    收藏  举报