java的構造方法 this 重載

  • java的構造方法

new +構造方法 去創建一個對象
跟普通方法的區別:
1.構造方法沒有返回值類型的聲明
2.每一個類至少有一個構造方法

如果沒有生命JVM會默認給一個無參數的構造方法,一旦聲明了構造方法就不在默認給你。

3.構造方法名稱必和須跟類名一致
4.構造方法的調用

public Person()
{
      System.out.printf("構造方法");
}
注意:如果寫成了public void Person() 就成了普通的方法了
      普通方法:對象存在,通過變量名.方法名()調用
      構造方法:new 構造方法名()調用,一旦new構造方法()就創建一個新的對象
      構造方法只存在對象創建的時候調用
  
      作用:語法規定通過new+當前類的構造方法去創建一個對應的類型的對象。
實際中對象是否創建時由new決定,構造方法是在對象創建成功之后執行的,用于做初始化設置,并且構造方法只在當前對象創建成功時執行一次,以后就不會執行。

注意:一般情況下我們會聲明參數的構造方法,在對象創建的對成員變量進行賦值(復用性)
  • 方法重載 overload
java中允許在一個類中聲明多個名稱一樣,但是參數不同的多個方法
作用:在創建對象的時候初始化的時候提供多種需求。
調用:
        根據實際傳入的參數來識別。
參數不同:
          1.參數的個數不同。
          2.參數的類型不同。
          3.參數類型的順序不同,也算不同(前后參數類型需要不同)

注意:在方法重載中,當嚴格匹配匹配不到方法時候,就會通過就近匹配方法。
就近匹配:按照參數的默認轉換的原則
注意:一旦就近匹配到多個方法的時候會出現語法的錯誤,就需要按照嚴格匹配。
注意:重載對個構造方法一般是為了在創建對象的時候,可以提供多種初始化設置供使用者選擇。

  • this
    1.隱含的局部變量
    在方法中指向調用該方法的對象()
    使用:當成員變量與局部變量同名的時候,通過this說明哪一個是成員變量。(this指向的是成員變量)
    F11進入調試狀態
    F5進入構造方法


    使用場景.png

    不加this 成員變量和局部變量同名,局部變量的優先級會比較高

這樣會能知道改填什么參數.png

2.作為當前類的構造方法名存在
作用:在構造方法第一句話去調用其他重載的構造方法(ps:放在第一句話是為了只聲明一個對象。)

實現代碼復用.png
  • 靜態修飾符 static
    作用:修飾成員變量、方法
    修飾成員變量,該成員變量就是靜態的成員變量,不在依賴與對象,是這個類所有對象共有的。
    注意:靜態的成員變量在類加載的時候會被創建(對象生成之前就創建了),并且只會被創建一次。
    使用:類名.靜態成員變量名(因為不論是哪一個對象改變靜態變量都會改變,所以可以直接類名來調用)
執行結果都為22.png
name指向相同的常量.png

2.修飾方法,該方法就變成靜態方法,不在依賴于某個對象(方法里面沒有使用到任何一個成員變量)。
使用:類名.靜態的方法名(參數);
與非靜態方法的區別:
非靜態的方法調用的前提:對象存在。

非靜態的方法什么都可以調用

靜態的方法不可調用非靜態的成員變量以及方法(成員變量不知道是哪一個變量)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,738評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,136評論 0 62
  • 1 面向對象No6 面向對象 OO Object Oriented 編程時以對象為單元,封裝數據和邏輯,以此提...
    征程_Journey閱讀 1,173評論 0 2
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,610評論 4 12
  • 0. 這是一場蒙眼游戲,被深愛蒙了眼的我看不清你的真心。 1. 獄寺隼人,一個號稱閉上眼睛也能嗅出十代目氣味的男人...
    牛奶殺手十三號閱讀 1,449評論 4 2