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  木木彡坚持  阅读(41)  评论(0)    收藏  举报