一方面,做爲外部類的成員:this
>調用外部類的結構
>能夠被static修飾
>能夠被4種不一樣的權限修飾spa
另外一方面,做爲一個類:3d
> 類內能夠定義屬性、方法、構造器等
> 能夠被final修飾,表示此類不能被繼承。言外之意,不使用final,就能夠被繼承
> 能夠被abstract修飾code
因爲成員內部類的覺得外部類的成員的方式存在,因此類修飾能夠用 private public protect 無權限的修飾符修飾來表示內部的訪問權限的問題。而外部內不能夠。對象
public class test { public static void main(String[] args) { //建立靜態的成員內部類的對象 Person.Inner2 inner2 = new Person.Inner2(); //建立非靜態的成員內部類的對象 Person p = new Person(); Person.Inner1 inner1 = p.new Inner1(); inner1.show();//name = 小張, age = 23 inner2.show();//靜態成員內部類 } } class Person{ String name; int age; //非靜態成員內部類 class Inner1{ public void show(){ name = "小張"; age = 23; System.out.println("name = " + name + ", age = "+ age); } } //靜態成員內部類 static class Inner2{ public void show(){ System.out.println("靜態成員內部類"); } } public void eat(){ System.out.println("人吃飯"); } }
class Person{ String name = "小明"; public void eat(){ } //非靜態成員內部類 class Bird{ String name = "杜鵑"; public void display(String name){ System.out.println(name);//方法的形參 System.out.println(this.name);//內部類的屬性 System.out.println(Person.this.name);//外部類的屬性 //Person.this.eat(); } } }
做者:Java之美blog
日期:2020-03-30繼承