成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java知識點總結(jié)(三個步驟)

syoya / 2431人閱讀

摘要:對于一個名為的外圍類和一個的內(nèi)部類,在編譯成功后,會出現(xiàn)這樣兩個文件和。

Java知識點總結(jié)(三個步驟)

@(Java知識點總結(jié))[Java, Java面向?qū)ο骫

[toc]

1-定義類 修飾符 訪問修飾符:

public

protected

default

private

其他修飾符

abstract:抽象類不能實例化,專門用于繼承的類
final:最終類不能被繼承

類名(駝峰命名法)

駝峰標識- 每個單詞首字母大寫

extends

Java中的繼承是單一繼承

繼承關(guān)系中,會調(diào)用父類的構(gòu)造方法來構(gòu)造子類對象

當父類存在無參構(gòu)造器時,子類構(gòu)造器中 Super 關(guān)鍵字,因為它會隱式的調(diào)用父類的無參構(gòu)造器

public Son(){
    //Super();
}

當父類沒有無參構(gòu)造器時,子類需要顯示的調(diào)用帶參構(gòu)造器,否則編譯不通過。

public Son(參數(shù)類型 參數(shù)名){
    Super(參數(shù)名);
    this.參數(shù)名 = 參數(shù)名;
}

implements

一個類可以實現(xiàn)多個接口來扮演多個角色
多個接口之間用逗號隔開

內(nèi)部類 內(nèi)部類:

內(nèi)部類定義:在一個類的內(nèi)部在定義一個類

內(nèi)部類可以用多個實例,每個實例都有自己的狀態(tài)信息,而且與其他外部對象的信息互相獨立

在單個外部類中,可以讓多個內(nèi)部類已不同的方式實現(xiàn)同一個接口,或者繼承同一個類

創(chuàng)建內(nèi)部類對象的時刻并不依賴于外部類對象的創(chuàng)建。

內(nèi)部類并沒有令人迷惑的"is-a"關(guān)系,他就是一個獨立的實體

內(nèi)部類提供更好的封裝,除了該外部類,其他類都不能訪問

內(nèi)部類是個編譯時的概念,一旦編譯成功后,它就與外部類屬于兩個完全不同的類(當然他們之間還是有聯(lián)系的)。對于一個名為OuterClass的外圍類和一個InnerClass的內(nèi)部類,在編譯成功后,會出現(xiàn)這樣兩個class文件:OuterClass.class和OuterClass$InnerClass.class。

成員內(nèi)部類

成員內(nèi)部類也是最普通的內(nèi)部類,它是外部類的一個成員,所以他是可以無限制的訪問外圍類的所有成員屬性和方法,盡管是private 的,但是外圍類要訪問內(nèi)部類的成員屬性和方法則需要通過內(nèi)部類的實例去訪問

在成員內(nèi)部類中要注意兩個點:

成員內(nèi)部類中不能存在任何static的變量和方法

成員內(nèi)部類是依附外部類的,所以只有先創(chuàng)建了外部類才能創(chuàng)建內(nèi)部類

public class OuterClass {
private String name = "張三" ;

public void outPrint(){

System.out.println("我是外部類的方法");

}

// 內(nèi)部類
public class InnerClass{ // 可以聲明成public或private

//private static int id;  //成員內(nèi)部類中不能存在任何static的變量和方法;

public void innerPrint(){
 //可以直接使用外部類的屬性和方法
 System.out.println(name+"你好,我是內(nèi)部類");
 outPrint();
}

}

public InnerClass getInnerClass(){

return new InnerClass();

}
public static void main(String[] args) {

//InnerClass innerClass = new InnerClass(); // 不能直接實例化內(nèi)部類對象

//通過外部類調(diào)用內(nèi)部類
InnerClass innerClass = new OuterClass().new InnerClass();

OuterClass.InnerClass innerClass2 = new OuterClass().new InnerClass();

//通過get方法來獲取內(nèi)部類(推薦)
InnerClass innerClass3 = new OuterClass().getInnerClass();
innerClass3.innerPrint();

/*張三你好,我是內(nèi)部類
我是外部類的方法*/

}

}

局部內(nèi)部類

局部內(nèi)部類是嵌套在方法和作用于域的,對于這個類的使用主要是應(yīng)用與解決比較復(fù)雜的問題想創(chuàng)建一個類來輔助我們的解決方案,到那時又不希望這個類是公共可用的,所以就產(chǎn)生了局部內(nèi)部類。

局部內(nèi)部類和成員內(nèi)部類一樣被編譯,只是它的作用域發(fā)生了改變,它只能在該方法和屬性中被使用,出了該方法和屬性就會失效

public class Outer {
  
  private String info = ",我是外部類的屬性";
  public void test(final String name){ // 方法中的參數(shù)要被內(nèi)部類訪問,必需加上final修飾
    // 定義于方法內(nèi)的類
    class Inner{
     public void print(){
       System.out.println(name+info); //使用外部類的屬性和方法中的參數(shù)
     }
    }
    new Inner().print();
  }
 
  public static void main(String[] args) {
    new Outer().test("張三");
    /*張三,我是外部類的屬性*/
  }
}

匿名內(nèi)部類

匿名內(nèi)部類:創(chuàng)建的對象沒有名字

匿名內(nèi)部類是不能加訪問修飾符

要使用匿名類,這個類是要先定義的

當所在的方法的形參需要被內(nèi)部類里面使用時,該形參必須為final修飾

(內(nèi)部類并不是直接調(diào)用方法傳進來的參數(shù),而是內(nèi)部類將傳進來的參數(shù)通過自己的構(gòu)造器備份到自己的內(nèi)部,外部類的方法修改)

public class Outer2 {
  
  public Inner2 getInner(final String name){
    return new Inner2(){
     private String info = ",我是內(nèi)部類屬性";
 
     @Override
     public void print() {
       System.out.println(name+info);
     }
     
     public void test(){
       System.out.println("我是接口中未定義的方法");
     }
    };
  }
 
  public static void main(String[] args) {
    Inner2 inner2 =new Outer2().getInner("張三");
    inner2.print();
    //inner2.test();  //不能調(diào)用接口中未定義的方法
  }
}
 
interface Inner2{
  void print();
}

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

使用static修飾的內(nèi)部類我們稱之為靜態(tài)內(nèi)部類,不過我們更喜歡稱之為嵌套內(nèi)部類

靜態(tài)內(nèi)部類與非靜態(tài)內(nèi)部類之間存在一個最大的區(qū)別,我們知道非靜態(tài)內(nèi)部類在編譯完成之后會隱式地保存著一個一引用,該引用是指向創(chuàng)建它的外部類,但是靜態(tài)內(nèi)部類卻沒有。沒有這個引用就意味著:

它的創(chuàng)建不需要依賴外部類

它不能使用任何外部類的非static成員變量和方法

public class Outer3 {
private String info1 = "我是外部類非靜態(tài)屬性";
private static String info2 = "我是外部類靜態(tài)屬性";
private String getInfo1(){

return "我是外部類非靜態(tài)方法";

}
private static String getInfo2(){

return "我是外部類靜態(tài)方法";

}

//靜態(tài)內(nèi)部類
public static class Inner3{

public void print(){
 //System.out.println(info1);
 System.out.println(info2);
 System.out.println(getInfo2());
}

}

public static void main(String[] args) {

new Inner3().print();  //不依賴于外部類,可以直接new 對象
/*我是外部類靜態(tài)屬性
我是外部類靜態(tài)方法*/

}
}

內(nèi)部繼承類
public class Test extends Outer4.inner{
 
  //Test 類必須存在外部類作為形參的構(gòu)造方法,否則編譯不通過
  Test(Outer4 out){
    out.super();
  }
}
 
class Outer4 {
  class inner{
    
  }
}
2-創(chuàng)建對象 new 構(gòu)造器(構(gòu)造方法)

構(gòu)造方法定義:

名字跟類名完全一致

沒有返回類型

支持重載

可以通過this調(diào)用當前類已有其他構(gòu)造器

隱式構(gòu)造器:如果一個類沒有寫任何構(gòu)造器,編譯器就會生成默認無參構(gòu)造器

3-給對象發(fā)送消息

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69150.html

相關(guān)文章

  • Java識點總結(jié)(JDBC-連接步驟及CRUD)

    摘要:知識點總結(jié)連接步驟及知識點總結(jié)連接數(shù)據(jù)庫步驟依序關(guān)閉使用的對象連接操作加載對應(yīng)驅(qū)動建立連接連接對象內(nèi)部包含了對象,是一個遠程連接。比較耗時這是對象管理的一個要點真正開發(fā)中,為了提高效率,都會使用連接池來管理連接對象張柏芝女張三執(zhí)行結(jié)果 Java知識點總結(jié)(JDBC-連接步驟及CRUD) @(Java知識點總結(jié))[Java, JDBC] 連接數(shù)據(jù)庫步驟 showImg(https://s...

    hankkin 評論0 收藏0
  • JAVA團隊開發(fā)手冊 - 3. 開發(fā)流程

    摘要:開發(fā)流程對于一個項目,最大的問題就是如何拆解為任務(wù),分配到合適的人手里,并在有限的時間內(nèi)完成它。但是我們把整個項目進行拆解的話,每個星期進行統(tǒng)計分析,就可以對癥下藥,提高開發(fā)效率。 開發(fā)流程 對于一個項目,最大的問題就是如何拆解為任務(wù),分配到合適的人手里,并在有限的時間內(nèi)完成它。 就像做建筑工程一樣,其實做IT也是可以量化的,可能有的人砌磚砌得慢一些,有的人快一些。 但是我們把整個項目...

    魏憲會 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學習一門新的編程語言吧!

    摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    caspar 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學習一門新的編程語言吧!

    摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運行在之上。它通過編輯類工具,帶來了先進的編輯體驗,增強了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    nihao 評論0 收藏0

發(fā)表評論

0條評論

syoya

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<