java 中的內部類
阿新 • • 發佈:2021-08-03
內部類
1,新建Outer類
package oop.demo11; //外部類; public class Outer { // private int id = 19301041; private static int id = 19301041; public void out() { System.out.println("這是一個外部類 方法;"); } // 這是一個內部類 public class Inner { public void in() { System.out.println("這是一個內部類 方法;"); } // 內部類,訪問外部類的一些私有變數; // 獲得外部類的繫有屬性; public void getTd() { System.out.println("id:" + id); } } // 靜態內部類 // 這是一個內部類 public static class Inner2 { public void in() { System.out.println("這是一個內部類 方法;"); } // 內部類,訪問外部類的一些私有變數; // 獲得外部類的繫有屬性; public void getTd() { System.out.println("id:" + id); } } // 區域性內部類 public void method() { class Inner3 { public void in() { } } } } //一個Java類 中可以的多個class類 但是 只有一個 public class //內部類; class A { public static void main(String[] args) { } }
2,新建Test類
package oop.demo11; public class Test { public static void main(String[] args) { Apple apple = new Apple(); apple.eat(); //eat------------>Apple System.out.println("==========="); // 沒有名字初始化類、 匿名內部類;匿名物件的使用; 不用蔣例項儲存到變數中, new Apple().eat(); //eat------------>Apple UserService userService = new UserService() { @Override public void hell0() { } }; } } class Apple { public void eat() { System.out.println("eat------------>Apple"); } } interface UserService { void hell0(); }
3,新建Application類
package oop.demo11; public class Application { public static void main(String[] args) { //new Outer outer = new Outer(); outer.out(); //這是一個外部類 方法; // 通過這個外部內來例項化這個內部類; Outer.Inner inner = outer.new Inner(); inner.in(); //這是一個內部類 方法; inner.getTd(); //id:19301041 } }