? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?面向?qū)ο?br>
          注:

          看此篇時強烈建議有一定的面向?qū)ο笏枷牖A(chǔ),有一定的基礎(chǔ)后先翻到下面看第九條:
          ? ? ? 9.面向?qū)ο螅?從未封裝→封裝→繼承→多態(tài)→抽象類→接口的代碼演變

          按這個邏輯去看,,哪有不理解的再回頭看知識點,這是掌握理解最好最快的方法,切記切記

          ?

          萬物皆對象

          ? ? ? ? ? ? 描述一個物質(zhì)都可以通過兩方面說明:數(shù)據(jù)模型(屬性)、行為模型(行為)。

          ? ? ? ? ? ? 在Java編程中,我們使用成員變量表示數(shù)據(jù)模型,用成員方法表示行為模型。

          ? ? ? ? ? ? 使用類表示某些具有相同屬性和行為的事物。

          ?

          1. 方法:

          ? ? ? ? 構(gòu)造方法? ? ?

          ? ? ? ? ? ? ? ? ? ? ?語法:

          ? ? ? ? ? ? ?[訪問修飾符]? 類名(){ }

          ? ? ? ? ? ? ? ? ? 注意:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ?當類中沒有顯式的構(gòu)造方法,實例化該類的對象時,程序會自動創(chuàng)建一個公開的無參構(gòu)造方法;

          ? ? ? ? ? ? ? ? ? ? ? ? ? ?如果類中有顯示的構(gòu)造方法,程序就不會創(chuàng)建無參構(gòu)造;

          ? ? ? ? ? ? ? ? ?構(gòu)造方法,一般是用于為成員屬性賦初始化值;? ? ? ? ? ? ? ? ?

          ? ? ? ? 靜態(tài)方法

          ? ? ? ? ? ? ? ? ? ? ? ?static
          關(guān)鍵字用來聲明獨立于對象的靜態(tài)方法。靜態(tài)方法不能使用類的非靜態(tài)變量。靜態(tài)方法從參數(shù)列表得到數(shù)據(jù),然后計算這些數(shù)據(jù)。

          ? ? ? ? ? ? ? ? ? 對類變量和方法的訪問可以直接使用?classname.variablename?和?
          classname.methodname?的方式訪問。

          ?

          ? ? ? ? ? ? ? ? ? 如下例所示,static修飾符用來創(chuàng)建類方法和類變量:
          public class InstanceCounter { private static int numInstances = 0; protected
          static int getCount() { return numInstances; } private static void
          addInstance() { numInstances++; } InstanceCounter() {
          InstanceCounter.addInstance(); }public static void main(String[] arguments) {
          System.out.println("Starting with " + InstanceCounter.getCount() + " instances"
          );for (int i = 0; i < 500; ++i){ new InstanceCounter(); } System.out.println("
          Created" + InstanceCounter.getCount() + " instances"); } }
          ?
          運行結(jié)果: Starting with 0 instances Created 500 instances
            

          ? ? ? ? 成員方法(實例方法)

          2. 變量:

          ? ? ? ? 成員變量(實例變量)

          *
          *
          * 聲明在所有方法體和代碼塊之外,并且沒有使用static修飾的變量,叫做實例變量;
          * 可以使用訪問修飾符和final修飾;
          * 使用final修飾時,一定要賦值;
          * 實例變量是在對象被創(chuàng)建時創(chuàng)建,對象被銷毀時銷毀;
          * 作用域范圍在整個類中;
          ? ? ? ? 局部變量? ? ? ? ? ? ? ? ? ? ??

          *
          *
          * 聲明在構(gòu)造方法、靜態(tài)方法、實例方法、代碼塊中的變量,都是局部變量;
          * 不能使用static和訪問修飾符修飾;
          * 可以使用final修飾,即為常量,不必在聲明語句中賦值;
          * 當執(zhí)行局部變量所在的方法或代碼塊時,才有機會被創(chuàng)建,在方法或代碼塊執(zhí)行結(jié)束后被自動銷毀;
          * 局部變量在內(nèi)存的棧區(qū)分配;
          * 局部變量在使用之前必須要先賦值;
          ? ? ? ? 靜態(tài)變量(類的變量)

          *
          *
          *
          * 聲明在所有方法體和代碼塊之外,并且使用static修飾的變量;
          * 可以使用訪問修飾符修飾;
          * 一般配合final使用,即public? static? fianl,標識符使用大寫;
          * 類變量被分配在靜態(tài)存儲區(qū),是被所有該類的對象共享數(shù)據(jù);
          * 類變量是在程序開始時被創(chuàng)建,程序結(jié)束時銷毀;
          ?

          3. 修飾符

          ? ? ? ? 訪問修飾符? ? ??

          ? ? ? ? ? ? ? ? ? Java中,可以使用訪問控制符來保護對類、變量、方法和構(gòu)造方法的訪問。Java 支持 4 種不同的訪問權(quán)限。

          *
          *
          *
          *
          default?(即缺省,什么也不寫): 在同一包內(nèi)可見,不使用任何修飾符。使用對象:類、接口、變量、方法。

          *
          private?: 在同一類內(nèi)可見。使用對象:變量、方法。?注意:不能修飾類(外部類)

          *
          public?: 對所有類可見。使用對象:類、接口、變量、方法

          *
          protected?: 對同一包內(nèi)的類和所有子類可見。使用對象:變量、方法。?注意:不能修飾類(外部類)

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? 我們可以通過以下表來說明訪問權(quán)限:

          ?修飾符 當前類 同包的類 同包的子孫類 異包類 異包的子孫類
          public? √ √ √ √ √
          protected √ √ √ × ×
          default √ √ √ × ×
          private √ × × × ×
          ?

          ? ? ? ? ? 非訪問修飾符

          ? ? ? ? ? ? ? ? ? ? ?為了實現(xiàn)一些其他的功能,Java 也提供了許多非訪問修飾符。

          ? ? ? ? ? ? ? ? ? ? ? static 修飾符,用來修飾類方法和類變量。

          ? ? ? ? ? ? ? ? ? ? ??final 修飾符,用來修飾類、方法和變量,final
          修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,是不可修改的。? ? ? ? ? ? ?

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? final 變量:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? final 表示"最后的、最終的"含義,變量一旦賦值后,不能被重新賦值。被 final
          修飾的實例變量必須顯式指定初始值。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? final 修飾符通常和 static 修飾符一起使用來創(chuàng)建類常量。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
          //實例 public class Test{ final int value = 10; // 下面是聲明常量的實例 public static final
          int BOXWIDTH = 6; static final String TITLE = "Manager"; public void
          changeValue(){ value= 12; //將輸出一個錯誤 } }
          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ?final 方法:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 類中的 final 方法可以被子類繼承,但是不能被子類修改。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 聲明 final 方法的主要目的是防止該方法的內(nèi)容被修改。

          ? ? ?如下所示,使用 final 修飾符聲明方法:
          public class Test{ public final void changeName(){ // 方法體 } }
            

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? final 類:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?final 類不能被繼承,沒有類能夠繼承 final 類的任何特性。
          //實例 public final class Test { // 類體 }
            

          ? ? ? ? ? ? ? ? ? ? ? ? 注意:

          *
          *
          *
          * 當final修飾類時,當前類不能被繼承;
          * 當final修飾方法時,該方法不能被重寫;
          * 當final修飾變量時,變量的值不能被修改,即為常量;
          ?

          ? ? ? ? ? ? ? ? ? ?abstract 修飾符,用來創(chuàng)建抽象類和抽象方法。

          ? ? ? ??

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 抽象類:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?抽象類不能用來實例化對象,聲明抽象類的唯一目的是為了將來對該類進行擴充。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?一個類不能同時被 abstract 和 final
          修飾。如果一個類包含抽象方法,那么該類一定要聲明為抽象類,否則將出現(xiàn)編譯錯誤。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?抽象類可以包含抽象方法和非抽象方法。

          ?

          ? ? ? ? ? ? ? ? ? ? ? ? ??規(guī)則:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ?含有抽象方法的類,一定是抽象類;

          *
          *
          *
          * 抽象類中可以聲明成員變量、常量、成員方法、抽象方法,抽象類中不一定要有抽象方法;
          * 抽象類不能被實例化;
          * 抽象類可以被繼承;
          * 可以通過兩種方式獲得抽象類對象:父類引用指向子類對象、匿名內(nèi)部類;
          * 子類必須重寫抽象父類的所有抽象方法,或者是把子類也定義為抽象類;
          * 如果一個類繼承的抽象父類還有上級抽象父類,那么子類中需要要重寫所有抽象父類的所有抽象方法;
          * 抽象類也可以繼承非抽象類,同時繼承了父類的所有非私有的屬性和方法; 實例 abstract class Caravan{ private double
          price;private String model; private String year; public abstract void goFast();
          //抽象方法 public abstract void changeColor(); }
          ? ? ? ? ? ? ? ? ? ? ? 抽象方法

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 抽象方法是一種沒有任何實現(xiàn)的方法,該方法的的具體實現(xiàn)由子類提供。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 抽象方法不能被聲明成 final 和 static。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 任何繼承抽象類的子類必須實現(xiàn)父類的所有抽象方法,除非該子類也是抽象類。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 如果一個類包含若干個抽象方法,那么該類必須聲明為抽象類。抽象類可以不包含抽象方法。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 抽象方法的聲明以分號結(jié)尾,例如:public abstract sample();。
          實例 public abstract class SuperClass{ abstract void m(); //抽象方法 } class SubClass
          extends SuperClass{ //實現(xiàn)抽象方法 void m(){ ......... } }
          ?

          ? ? ? ? ? ? ? ? ? ? ? ? ? synchronized 和 volatile 修飾符,主要用于線程的編程。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? synchronized 修飾符

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? synchronized
          關(guān)鍵字聲明的方法同一時間只能被一個線程訪問。synchronized 修飾符可以應用于四個訪問修飾符。
          實例 public synchronized void showDetails(){ ....... }
            

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?transient 修飾符

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 序列化的對象包含被 transient 修飾的實例變量時,java
          虛擬機(JVM)跳過該特定的變量。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 該修飾符包含在定義變量的語句中,用來預處理類和變量的數(shù)據(jù)類型。
          實例 public transient int limit = 55; // 不會持久化 public int b; // 持久化
            

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?volatile 修飾符

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?volatile
          修飾的成員變量在每次被線程訪問時,都強制從共享內(nèi)存中重新讀取該成員變量的值。而且,當成員變量發(fā)生變化時,? ? ? ? ? ? ? ? ? ? ? ? ? ?
          ? ? ? ? ?會強制線程將變化值回寫到共享內(nèi)存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一個 volatile 對象引用可能是 null。

          ?
          實例 public class MyRunnable implements Runnable { private volatile boolean
          active;public void run() { active = true; while (active) // 第一行 { // 代碼 } }
          public void stop() { active = false; // 第二行 } }
          ?

          ? ? ? ? ? ? ? 通常情況下,在一個線程調(diào)用 run() 方法(在 Runnable 開啟的線程),在另一個線程調(diào)用 stop() 方法。 如果?
          第一行?中緩沖區(qū)的 active 值被? ? ? ? ? ? ? ? ? ? ? ? ?使用,那么在?第二行?的 active 值為 false
          時循環(huán)不會停止。

          ? ? ? ? ? ? ?但是以上代碼中我們使用了 volatile 修飾 active,所以該循環(huán)會停止。

          ?

          4. this關(guān)鍵字

          ? ? ? ? ? ? ? ? ? ? ? ? ? ?this指當前對象,用法:

          *
          *
          *
          *
          * 當局部變量名和實例變量名同名時,使用this.變量名來表示實例變量;
          * this()表示當前類的構(gòu)造方法,只能在構(gòu)造方法中使用該寫法,并且是寫在構(gòu)造方法內(nèi)的第一行。
          ?

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 面向?qū)ο笕筇卣鳎悍庋b、繼承、多態(tài)

          5. 封裝

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?私有的屬性,公開的方法。

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?封裝的步驟:

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 聲明私有(private)的屬性;

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 聲明公開(public)的geter和seter方法;

          6. 繼承

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Java中的繼承是單繼承,可以實現(xiàn)多層繼承,繼承的關(guān)鍵字extends

          ? ? ? ? ? ? ? ? 語法:
          public class Son extends Father{ }
            

          ? ? ? ? ? ? ? ?規(guī)則:

          *
          *
          * 子類繼承父類非私有的所有屬性和方法,不能繼承父類的構(gòu)造方法;
          * 實例化子類對象的步驟:先執(zhí)行父類的構(gòu)造方法,再執(zhí)行子類的構(gòu)造方法;
          ? ? ? ? ? ? ? ??重寫定義:

          *
          *
          *
          * 子類重新聲明從父類繼承來的方法,稱為方法重寫;
          * 方法重寫時,方法的聲明部分要和父類保持一致(返回值類型,方法名,參數(shù));
          * 重寫方法的訪問權(quán)限要大于等于父類中方法的訪問權(quán)限;
          * 子類重寫父類方法,子類對象調(diào)用的是子類中重寫后的方法;
          * 使用static修飾的方法不能被重寫,但是可以被子類重寫聲明;
          * 不同包的子類可以重寫父類中protected修飾的方法,但是不能以繼承的形式,用子類對象直接調(diào)用父類的該方法;
          7. 多態(tài)

          ? ? ? ? ? ? ? ? 實現(xiàn)的必要條件:

          *
          *
          * 繼承
          * 重寫
          * 父類引用指向子類對象
          ?

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? instanceof關(guān)鍵字:

          ?
          語法: if (對象名 instanceof 類名) { 類型轉(zhuǎn)換代碼; }
          ?

            
          實例: Animal cat = new Cat(); if (cat instanceof Cat) {//返回結(jié)果為boolean類型 Cat c =
          (Cat) cat; c.eat(); }else{ System.out.println("類型不匹配"); }
          8. 接口
          語法: public interface ITest { }
            

          ? ? ? ? ? ? ? ? 規(guī)則:

          *
          *
          * 接口使用interface關(guān)鍵字修飾;
          * 接口是一個完全抽象的抽象類;
          * 接口中沒有構(gòu)造方法;
          * 接口不能被實例化對象;
          * 接口中可以聲明靜態(tài)常量、抽象方法、靜態(tài)方法;
          * 接口中不能聲明實例方法,聲明抽象方法時,不能使用static關(guān)鍵字修飾;
          * 聲明接口語句中,默認含有abstract關(guān)鍵字,抽象方法中也默認含有abstract關(guān)鍵字;
          * 接口可以被實現(xiàn),使用implements關(guān)鍵字,一個類實現(xiàn)一個接口,必須重寫該接口中所有的抽象方法;
          * 一個類可以實現(xiàn)多個接口,每個接口名用英文的逗號隔開,該類中必須重寫所有已實現(xiàn)接口中的抽象方法;
          ? ? ? ? ? ? ? ? ? ? ? ? ??接口可以繼承接口,接口與接口間是多繼承關(guān)系,接口不能繼承類;

          ?

          9.面向?qū)ο螅?從未封裝→封裝→繼承→多態(tài)→抽象類→接口的代碼演變:

          ? ? ? ? ? ? 未封裝:

          ?
          public class Person { int age;//年齡 String name;//姓名 public void print() {
          System.out.println("age:"+this.age+" "+"name:"+this.name); } } class Text{
          public static void main(String[] args) { Person person = new Person();//實例化對象
          person.age= -100;//賦值 person.name = "張三"; person.print();//執(zhí)行類中的方法 } }

          運行結(jié)果:
          age:-100 name:張三
            

          ? ? ? ? ? ? ? ?封裝:
          public class Person { private int age;//年齡 private String name;//姓名 public void
          setName(String name) {this.name = name; } public void setAge(int age) { this
          .age = age; } @Override public String toString() { return "Person{" + "age=" +
          this.age + ", name='" + this.name + '\'' + '}'; } }
          ?
          class Text{ public static void main(String[] args) { Person person = new
          Person(); person.setAge(20); person.setName("張三"); ; String s =
          person.toString(); System.out.println(s); } }
          ?
          運行結(jié)果: Person{age=20, name='張三'}
            

          ? ? ? ? ? ? ? ? ? 繼承:
          public class Office { public void print(){ System.out.println("打印"); } }
            
          class Word extends Office { @Override public void print() {
          System.out.println("Word打印"); } }
            
          class Test{ public static void main(String[] args) { Word word = new Word();
          word.print(); } }
            
          運行結(jié)果: Word打印
            一個Java源文件中可以聲明多個class類,但只能有一個public修飾的類。

          ? ? ? ?

          ? ? ? ? ? ? ? ? ? 多態(tài):
          public class Office { public void print(){ System.out.println("打印"); } }
            
          class Word extends Office { @Override public void print() {
          System.out.println("Word打印"); } }
            
          class Excle extends Office{ @Override public void print() {
          System.out.println("Excel打印"); } }
            
          class Ppt extends Office{ public void daYin() {//子類可以重寫父類方法,也可以自己定義方法
          System.out.println("PPT打印"); } }
            
          class Test{ public static void main(String[] args) { Office o = new Word();
          //多種形態(tài),即多態(tài) o.print(); } }
            
          運行結(jié)果: Word打印
            
          class Test{ public static void main(String[] args) { Office o = new Excle();
          o.print(); } }
            
          運行結(jié)果: Excel打印
            
          class Test{ public static void main(String[] args) { Office o = new Ppt();
          o.print(); } }
            
          運行結(jié)果: 打印
            為避免這種方法名稱多樣的情況,用一種約束叫抽象類
          public abstract class Office { public abstract void print(); } class Word
          extends Office { @Override public void print() { System.out.println("Word打印");
          } }class Excle extends Office{ @Override public void print() {
          System.out.println("Excel打印"); } } class Ppt extends Office{ @Override public
          void print() { System.out.println("PPT打印"); } } class Test{ public static void
          main(String[] args) {Office o = new Ppt();
          //父類引用指向子類對象,子類重寫父類方法,父類引用調(diào)用子類重寫后的方法,執(zhí)行的結(jié)果是子類重寫后的方法 o.print(); } } 運行結(jié)果: PPT打印
            接口是完全抽象的抽象類,并且可以多實現(xiàn)

          ?
          接口默認為: public class abstract interface Office {
          public abstract void print();
          }
            
          public interface Office { void print(); } class Word implements Office {
          @Overridepublic void print() { System.out.println("Word打印"); } } class Excle
          implements Office{ @Override public void print() { System.out.println("Excel打印"
          ); } }class Ppt implements Office{ @Override public void print() {
          System.out.println("PPT打印"); } } class Test{ public static void main(String[]
          args) { Office o= new Ppt(); o.print(); } } 運行結(jié)果為: PPT打印
          10. 內(nèi)部類

          ? ? ? ? ? ? ? ?成員內(nèi)部類

          ? ? ? ? ? ? ? ? ? ? ? ? ? 成員內(nèi)部類聲明在類中,方法體、代碼塊之外。和成員變量、成員方法在同一級別。

          ?
          語法: public class Out { //成員內(nèi)部類 public class Inner{ } }
            
          實例化成員內(nèi)部類: //先實例化外部類 Out o = new Out(); //使用外部類對象,再實例化內(nèi)部 Out.Inner inner =
          o.new Inner();
            
          實例: public class Out { //成員變量 public int a = 1; //成員內(nèi)部類 public class Inner{
          public int a = 2; //內(nèi)部類的成員方法 public void print(){ //執(zhí)行內(nèi)部類中的實例變量a
          System.out.println(a); //執(zhí)行外部類的實例變量a System.out.println(Out.this.a); } } }
            

          ? ? ? ? ? ? 靜態(tài)內(nèi)部類

          ? ? ? ? ? ? ? ? ? ? ? 聲明的位置參考成員內(nèi)部類。
          語法: public class Out { //靜態(tài)內(nèi)部類 public static class Inner{ } }
            
          實例化靜態(tài)內(nèi)部的對象: Out.Inner inner = new Out.Inner();
            
          實例: public class Out { public static int a = 1; public int b = 3; //靜態(tài)內(nèi)部類
          public static class Inner{ public static int a = 2; public static void print(){
          //執(zhí)行靜態(tài)內(nèi)部的靜態(tài)變量 System.out.println(a); //執(zhí)行外部類的靜態(tài)變量 System.out.println(Out.a);
          //執(zhí)行外部類的實例變量 Out o = new Out(); System.out.println(o.b); } } }
            

          ? ? ? ? ? ? ? ? ?局部內(nèi)部類

          ? ? ? ? ? ? ? ? ? ? ? ? ? ? 聲明在方法體或代碼塊內(nèi),作用域范圍在方法體或代碼塊內(nèi)。

          ?
          語法: public class Out { public void method(){ //局部內(nèi)部類 class Inner{ //局部內(nèi)部類的成員方法
          public void print(){ System.out.println("局部內(nèi)部類"); } } //實例化局部內(nèi)部類 Inner inner =
          new Inner(); inner.print(); } }
            
          執(zhí)行局部內(nèi)部類的方法: Test類: public static void main(String[] args) { Out o = new Out();
          o.method(); }
            

          ? ? ? ? ? ? ? ? ?匿名內(nèi)部類

          *
          *
          * 聲明位置同局部內(nèi)部類一樣,前提條件:必須繼承一個類或?qū)崿F(xiàn)一個接口,匿名內(nèi)部類的聲明和實例化對象是同時進行的;
          * 一般使用于獲得抽象類或接口對象; 語法: 父類名/接口名 對象名 = new 父類名/接口名(){ //匿名內(nèi)部類成員 };
            
          實例: 父類 public class Father { }
            
          匿名內(nèi)部類: public class Out { public void method(){ //匿名內(nèi)部類對象 Father f = new
          Father(){ }; } }
            

          ?

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                特级西西444WWw高清大胆 | 爱爱大片免费看 | 黄色插逼视频 | 嗯~用力啊~嗯~c我~文鑫 | 偷拍视频免费 |