Java基礎班學習筆記(10)

來源:互聯網
上載者:User

標籤:

知識要點:運動員和教練案例分析 1:形式參數和傳回值的問題(理解) (1) 形式參數:  類名:需要該類的對象  抽象類別名:需要該類的子類對象  介面名:需要該介面的實作類別對象 (2) 傳回值類型:  類名:返回的是該類的對象  抽象類別名:返回的是該類的子類對象  介面名:返回的是該介面的實作類別的對象 (3)鏈式編程  對象.方法1().方法2().......方法n();   這種用法:其實在方法1()調用完畢後,返回的應該是一個對象;         方法2()調用完畢後,應該返回一個對象。      方法n()調用完畢後,可能是對象,也可以不是對象。  2:包(理解) (1)其實就是檔案夾 (2)作用:  A:區分同名的類  B:對類進行分類管理   a:按照功能分   b:按照模組分 (3)包的定義(掌握)  package 包名;   多級包用.分開。 (4) 注意事項:(掌握)  A:package語句必須在檔案中的第一條有效語句  B:在一個java檔案中,只能有一個package  C:如果沒有package,預設就是無包名 (5)帶包的編譯和運行  A:手動式   a:編寫一個帶包的java檔案。   b:通過javac命令編譯該java檔案。   c:手動建立包名。   d:把b步驟的class檔案放到c步驟的最底層包   e:回到和包根目錄在同一目錄的地方,然後運行    帶包運行。     B:自動式   a:編寫一個帶包的java檔案。   b:javac編譯的時候帶上-d即可    javac -d . HelloWorld.java   c:回到和包根目錄在同一目錄的地方,然後運行    帶包運行。  3:導包(掌握) (1)我們多次使用一個帶包的類,非常的麻煩,這個時候,Java就提供了一個關鍵字import。 (2)格式:  import 包名...類名;  另一種:   import 包名...*;(不建議) (3)package,import,class的順序( #面試題#)  package > import > class  4:許可權修飾符(掌握) (1)許可權修飾符
 

public

protected

預設

private

同一類中

同一包子類,其他類

 

不同包子類

   

不同包其他類

     
 (2)這四種許可權修飾符在任意時刻只能出現一種。  public class Demo {}  5:常見的修飾符(理解) (1)分類:  許可權修飾符:private,預設,protected,public  狀態修飾符:static,final  抽象修飾符:abstract (2) 常見的類及其組成的修飾   類:   預設,public,final,abstract      常用的:public    成員變數:   private,預設,protected,public,static,final      常用的:private      構造方法:   private,預設,protected,public      常用的:public    成員方法:   private,預設,protected,public,static,final,abstract      常用的:public (3)另外比較常見的:  public static final int X = 10;(靜態常量)  public static void show() {}    (靜態方法)  public final void show() {}        (最終方法)  public abstract void show();  6:內部類(理解) (1)把類定義在另一個類的內部,該類就被稱為內部類。  舉例:把類B定義在類A中,類B就被稱為內部類。 (2) 內部類的訪問規則  A:內部類可以直接存取外部類的成員,包括私人。  B:外部類要想訪問內部類成員,必須建立對象 (3) 內部類的分類  A:成員內部類  B:局部內部類 (4) 成員內部類  A:private 為了資料的安全性  B:static 為了訪問的方便性(注意:static只可以修飾內部類,不可以修飾外部類)    成員內部類不是靜態:    外部類名.內部類名 對象名 = new 外部類名.new 內部類名();   成員內部類是靜態:    外部類名.內部類名 對象名 = new 外部類名.內部類名(); (5) 成員內部類的面試題(填空)  30,20,10   class Outer {   public int num = 10;      class Inner {    public int num = 20;       public viod show() {     int num  = 30;          System.out.println(num);     System.out.println(this.num);     //System.out.println( new Outer().num);     System.out.println( Outer.this.num);    }   }  } (6) 局部內部類     可以直接存取外部類的成員     可以建立內部類對象,通過對象調用內部類方法,來使用局部內部類功能   A:局部內部類訪問局部變數必須加final修飾。(#面試題#)  B:為什麼呢?   因為局部變數是隨著方法的調用而調用,隨著調用完畢就消失,而堆記憶體的資料並不會立即消失。   所以,堆記憶體還是用該變數,而改變數已經沒有了。   為了讓該值還存在,就加final修飾。   通過反編譯工具我們看到了,加入final後,堆記憶體直接儲存的是值,而不是變數名。  (7)匿名內部類(掌握)  A:是局部內部類的簡化形式  B:前提    存在一個類或者介面  C:格式:   new 類名或者介面名() {    重寫方法;   }  D:本質:    其實是繼承該類或者實現介面的子類匿名對象 (8) 匿名內部類在開發中的使用  我們在開發的時候,會看到抽象類別,或者介面作為參數。  而這個時候,我們知道實際需要的是一個子類對象。  如果該方法僅僅調用一次,我們就可以使用匿名內部類的格式簡化。 (首先回顧我們曾經講過的方法的形式參數是參考型別的情況,重點是介面的情況,我們知道這裡需要一個子類對象。而匿名內部類就是一個子類匿名對象,所以,可以使用匿名內部類改進以前的做法。)  interface Person {   public abstract void study();  }   class PersonDemo {   public void method(Person p) {    p.study();   }  }   class PersonTest {   public static void main(String[] args) {    PersonDemo pd = new PersonDemo();    pd.method(new Person() {     public void study() {      System.out.println("好好學習,天天向上");     }    });   }  }   (9)匿名內部類的面試題(補齊代碼)  interface Inter {   void show();  }   class Outer {   //補齊代碼   public static Inter method() {    return new Inter() {     public void show() {      System.out.println("HelloWorld");     }    };   }  }   class OuterDemo {   public static void main(String[] args) {    Outer.method().show(); //"HelloWorld"   }  }

Java基礎班學習筆記(10)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.