<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 內部類詳解 **內部類簡介** ~~~java /** * 在java文件中只能存在一個public修飾的類,但是可以存在多個類 * 外部類 */ public class JavaDemo { public static void main(String[] args) { Outer out = new Outer(); out.fun(); } } /** * 該類不屬于內部類,僅僅只是沒有被public修飾 * Outer相對于內部類來講,是外部類 */ class Outer { //定義私有 成員屬性 private String str = "Hello,world"; //定義普通方法 public void fun() { Inner in = new Inner();//實例化內部類對象 in.print();//通過內部類對象調用內部類方法 } //定義內部類,類名也要大寫 class Inner { int x = 10; //定義內部類方法 public void print() { //Outer.this.str 可以讀作 Outer類的對象的str屬性 System.out.println(Outer.this.str);//要打印Outer類的屬性 } } } ~~~ **成員內部類** ~~~java public class JavaInnerClass1 { public int a = 10; protected int b = 10; private int c = 10; int d = 10; public static int e = 10; final int f = 10; public static final int G = 10; public String fun2() { return "普通方法"; } public static String fun3() { return "靜態方法"; } class Inner{//成員內部類-沒有用static修飾,位于外部類的內部 int b1 = b; int c1 = c; int d1 = d; int e1 = e; int f1 = f; /*static*/ int g1 = G;//不能定義static成員 String s1 = fun2(); String s2 = fun3(); public static final int X = 10; int a = 20; int a2 = this.a; int a3 = JavaInnerClass1.this.a; } Inner in = new Inner();//創建外部類的屬性,在外部類中調用內部類實例化對象還和之前一樣 public void fun() { Inner i = new Inner();//不需要創建外部類實例 } public static void fun1() { /** * 內部類創建實例的語法: * [外部類.]內部類 變量名 = new 外部類構造器().new 內部類構造器(); */ JavaInnerClass1.Inner i = new JavaInnerClass1().new Inner();//需要先創建外部類的實例,再創建內部類的實例 } public static void main(String[] args) { JavaInnerClass1.Inner i = new JavaInnerClass1().new Inner(); System.out.println(i.b1); System.out.println(i.c1); System.out.println(i.d1); System.out.println(i.e1); System.out.println(i.f1); System.out.println(i.g1); System.out.println(i.s1); System.out.println(i.s2); System.out.println("=========="); System.out.println(i.a); System.out.println(i.a2); System.out.println(i.a3); } } ~~~ **靜態內部類** ~~~java public class Outer2 { Inner in = new Inner();//在外部類中不需要使用外部類引導 int x = 5; static int y = 5; public void fun() { //a = 5;在外部類中不可以直接訪問內部類的成員屬性 //b = 5;在外部類中不可以直接訪問內部類的靜態屬性 Inner.b = 2; } static class Inner {//靜態內部類-使用static修飾,位于外部類中 int a = 10;//成員屬性 static int b = 10;//靜態屬性 Outer2 o = new Outer2(); int t = o.x; int m = y; } public static void main(String[] args) { OutClass ot = new OutClass(); ot.fun2(); System.out.println("OntClass " + ot.in.a); System.out.println("OntClass " +Inner.b); } } class OutClass { /** * 靜態內部類實例創建語法: * 外部類.內部類 變量名 = new 外部類.內部類構造器(); */ Outer2.Inner in = new Outer2.Inner(); public void fun2() { //靜態內部類中靜態屬性的訪問語法:外部類.內部類.屬性 Outer2.Inner.b = 5; in.a = 3; } } ~~~ **方法內部類** ~~~java public class Outer3 { public int a = 5; static int b = 5; private int c = 5; //Inner in = new Inner(); //Outer3.Inner in = new Outer3.Inner(); //Outer3.Inner in = new Outer3().new Inner(); public void fun(int x) { int a = 10; /** * 方法內部類只能在方法中被使用 */ class Inner {//方法內部類-不可以用static以及訪問控制符修飾,位于方法中 int a1 = a; int b1 = b; int c1 = c; int d = x; int e = Outer3.this.a; } Inner in = new Inner(); System.out.println(in.a1); System.out.println(in.b1); System.out.println(in.c1); System.out.println(in.d); System.out.println(in.e); } public static void main(String[] args) { Outer3 ot3 = new Outer3(); ot3.fun(3); } } ~~~ **匿名內部類** ~~~java public class Outer4 { /** * 繼承一個類 * 實現一個接口 */ public static void main(String[] args) { Out ot = new Out() {//new Out(){} 是一個匿名類繼承了Out類 void show() { System.out.println("正在調用匿名內部類的show()方法"); } }; ot.show(); } } class Out { void show() { System.out.println("正在使用out類的show()方法"); } } ~~~ ~~~java public class ListSort { public static void main(String[] args) { Person xs = new Person("徐爽",23); Person xcl = new Person("徐春林",22); Person gjn = new Person("高峻楠",24); List<Person> list = new ArrayList<Person>(); list.add(xs); list.add(xcl); list.add(gjn); System.out.println(list); Collections.sort(list, new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { int age1 = o1.age; int age2 = o2.age; int result = age1 - age2; return result; } }); System.out.println(list); } } class Person { public String name; public int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public Person() { super(); } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看