Java基礎(chǔ)隨記2

Java 基礎(chǔ)隨記


- Java中的this

this是指當(dāng)前對象自己。在寫一個方法的時候曲楚,如果想在方法內(nèi)部獲得對當(dāng)前對象的引用就可以用this厘唾。this表示對“調(diào)用方法的那個對象”的引用。也就是說this指的是方法所屬的類的對象的引用龙誊。

  • 調(diào)用當(dāng)前對象中的成員變量或方法:this.當(dāng)前對象中的成員變量或方法
  • 調(diào)用當(dāng)前對象的構(gòu)造方法:this(參數(shù))

- 內(nèi)部類

  • 內(nèi)部類提供了更好的封裝抚垃,可以把內(nèi)部類隱藏在外部類之內(nèi),不允許同一個包中的其他類訪問該類趟大;

  • 內(nèi)部類的方法可以直接訪問外部類的所有數(shù)據(jù)鹤树,包括私有的數(shù)據(jù)。

  • 例子:

      //外部類HelloWorld
      public class HelloWorld {
    
       // 內(nèi)部類Inner逊朽,類Inner在類HelloWorld的內(nèi)部
      public class Inner {
      
          // 內(nèi)部類的方法
          public void show() {
              System.out.println("welcome to imooc!");
          }
      }
    
      public static void main(String[] args) {
      
          // 創(chuàng)建外部類對象
          HelloWorld hello = new HelloWorld();
          // 創(chuàng)建內(nèi)部類對象
          Inner i = hello.new Inner();
          // 調(diào)用內(nèi)部類對象的方法
          i.show();
      }
    
      }
    

- Java 中的靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類是 static 修飾的內(nèi)部類魂迄,這種內(nèi)部類的特點是:

  1. 靜態(tài)內(nèi)部類不能直接訪問外部類的非靜態(tài)成員,但可以通過 new 外部類().成員 的方式訪問

  2. 如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱相同惋耙,可通過“類名.靜態(tài)成員”訪問外部類的靜態(tài)成員;如果外部類的靜態(tài)成員與內(nèi)部類的成員名稱不相同熊昌,則可通過“成員名”直接調(diào)用外部類的靜態(tài)成員

  3. 創(chuàng)建靜態(tài)內(nèi)部類的對象時绽榛,不需要外部類的對象,可以直接創(chuàng)建 內(nèi)部類 對象名= new 內(nèi)部類();

  • 代碼:

      //外部類
      public class HelloWorld {
    
      // 外部類中的靜態(tài)變量score
      private static int score = 84;
      private  int scoree = 23;
      // 創(chuàng)建靜態(tài)內(nèi)部類
      public static  class SInner {
          // 內(nèi)部類中的變量score
          int score = 91;
      
          public void show() {
              // 只能訪問score婿屹,不能訪問scoree
              System.out.println("訪問外部類中的score:" + HelloWorld.score );
              System.out.println("訪問內(nèi)部類中的score:" + score);
          }
      }
    
      // 測試靜態(tài)內(nèi)部類
      public static void main(String[] args) {
          // 直接創(chuàng)建內(nèi)部類的對象
          SInner si = new SInner();
          // 調(diào)用show方法
          si.show();
      }
    
      }
    

繼承

  • 父類的private方法是無法被子類訪問或覆蓋的
  • 創(chuàng)建一個子類對象時灭美,程序內(nèi)部執(zhí)行順序為:
    • 父類屬性初始化
    • 父類構(gòu)造方法(super();
    • 子類屬性初始化
    • 子類構(gòu)造方法
  • super
  • 子類的構(gòu)造過程必須調(diào)用父類的構(gòu)造方法
  • 子類的構(gòu)造方法中如果沒有顯示調(diào)用父類構(gòu)造方法昂利,則默認(rèn)調(diào)用無參構(gòu)造
  • 顯示調(diào)用父類構(gòu)造方法必須在第一行
  • 如果沒有顯示調(diào)用届腐,而父類又沒有無參構(gòu)造方法,編譯時則報錯

Java中的final和static

- final

  • 聲明 final 字段有助于優(yōu)化器作出更好的優(yōu)化決定蜂奸,因為如果編譯器知道字段的值不會更改犁苏,那么它能安全地在寄存器中高速緩存該值。
  • final 字段還通過讓編譯器強制該字段為只讀來提供額外的安全級別扩所。
  • final可以修飾變量围详、方法及類;
  • 當(dāng)定義一個final變量時祖屏,jvm會將其分配到常量池中助赞,程序不可改變其值,相當(dāng)于一個常量袁勺,初始化可以在兩個地方雹食,一是其定義處,也就是說在final變量定義時直接給其賦值期丰,二是在構(gòu)造函數(shù)中群叶,不能不賦值吃挑;
  • 當(dāng)修飾一個方法時,該方法在子類中將不能被重寫盖呼;
  • 當(dāng)修飾一個類時儒鹿,該類不能被繼承。

- static

  • 靜態(tài)成員或類成員:它屬于整個類所有几晤,而不是某個對象所有约炎,即被類的所有對象所共享。靜態(tài)成員可以使用類名直接訪問蟹瘾,也可以使用對象名進行訪問圾浅。

  • 靜態(tài)方法或類方法:

  • 靜態(tài)方法中可以直接調(diào)用同類中的靜態(tài)成員,但不能直接調(diào)用非靜態(tài)成員憾朴。


  • 如果希望在靜態(tài)方法中調(diào)用非靜態(tài)變量狸捕,可以通過創(chuàng)建類的對象,然后通過對象來訪問非靜態(tài)變量众雷。


  • 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法灸拍,需要通過對象來訪問非靜態(tài)方法。


  • Java 中的 static 使用之靜態(tài)初始化塊

    • 例子:
    • 結(jié)果:
    • 結(jié)論:
      1. 程序運行時砾省,靜態(tài)初始化塊最先被執(zhí)行鸡岗,然后執(zhí)行普通初始化塊,最后才執(zhí)行構(gòu)造方法编兄。
      2. 靜態(tài)初始化塊只在類加載時執(zhí)行一次轩性,所以當(dāng)再次創(chuàng)建對象 hello2 時并未執(zhí)行靜態(tài)初始化塊。

- instanceof語句

  • A instanceof B
  • 用于判斷對象A是不是B類型狠鸳,進而判斷是否可以裝化揣苏。

- 抽象類abstract

  • 應(yīng)用場景:
  • 在某些情況下,某個父類只是知道其子類應(yīng)該包含怎樣的方法件舵,但無法準(zhǔn)確知道這些子類如何實現(xiàn)這些方法
  • 從多個具有相同特征的類中抽象出一個抽象類卸察,以這個抽象類做為子類的模板,從而避免子類設(shè)計的隨意性
  • 作用:限制規(guī)定子類必須實現(xiàn)某些方法芦圾,但不關(guān)注實現(xiàn)細(xì)節(jié)
  • 使用規(guī)則:
  1. abstract定義抽象類
  2. abstract定義抽象方法蛾派,只有聲明,不需要實現(xiàn)
  3. 包含抽象方法的類是抽象類
  4. 抽象類中可以包含普通的方法个少,也可以沒有抽象方法
  5. 抽象類不能直接創(chuàng)建洪乍,可以定義引用變量抽象方法沒有方法體以分號結(jié)束
  • 代碼例子:
  • 父類:


  • 則子類為:(自動添加父類中的方法)


  • 由例子可知可用于寫模板

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市夜焦,隨后出現(xiàn)的幾起案子壳澳,更是在濱河造成了極大的恐慌,老刑警劉巖茫经,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷波,死亡現(xiàn)場離奇詭異萎津,居然都是意外死亡,警方通過查閱死者的電腦和手機抹镊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門锉屈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人垮耳,你說我怎么就攤上這事颈渊。” “怎么了终佛?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵俊嗽,是天一觀的道長。 經(jīng)常有香客問我铃彰,道長绍豁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任牙捉,我火速辦了婚禮竹揍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘邪铲。我一直安慰自己鬼佣,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布霜浴。 她就那樣靜靜地躺著,像睡著了一般蓝纲。 火紅的嫁衣襯著肌膚如雪阴孟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天税迷,我揣著相機與錄音永丝,去河邊找鬼。 笑死箭养,一個胖子當(dāng)著我的面吹牛慕嚷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播毕泌,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼喝检,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撼泛?” 一聲冷哼從身側(cè)響起挠说,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎愿题,沒想到半個月后损俭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛙奖,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年杆兵,在試婚紗的時候發(fā)現(xiàn)自己被綠了雁仲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡琐脏,死狀恐怖攒砖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骆膝,我是刑警寧澤祭衩,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站阅签,受9級特大地震影響掐暮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜政钟,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一路克、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧养交,春花似錦精算、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鱼辙,卻和暖如春廉嚼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倒戏。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工怠噪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杜跷。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓傍念,卻偏偏與公主長得像,于是被迫代替她去往敵國和親葛闷。 傳聞我的和親對象是個殘疾皇子憋槐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法淑趾,內(nèi)部類的語法秦陋,繼承相關(guān)的語法,異常的語法治笨,線程的語...
    子非魚_t_閱讀 31,644評論 18 399
  • 一:java概述:1驳概,JDK:Java Development Kit赤嚼,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,654評論 0 11
  • 本文主要是慕課網(wǎng) Java入門第二季 這一課程的學(xué)習(xí)筆記顺又。 1. 類和對象 1. 類的重要性:所有Java程序都以...
    evansyangs閱讀 330評論 0 1
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法更卒,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,228評論 0 2
  • 當(dāng)遍地是iPhone的時候蹂空,你是否有時候想去改變點什么,是否相與眾不同果录,現(xiàn)在動手黨們的福利來了上枕,將自己的iPhon...
    科技圈閱讀 1,271評論 1 1