日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java构造方法基础_Java 基础:构造方法

發(fā)布時間:2025/3/20 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java构造方法基础_Java 基础:构造方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄:

一、 概述

二、 構造方法的重載

三、 類的初始化過程

四、this 關鍵字

五、子父類中的構造方法

六、 super 關鍵字

七、 static 關鍵字

八、 final 關鍵字

一、 概述

1. 構造方法作用和定義

構造方法作用:new 對象的同時給成員變量賦值,給對象屬性進行 初始化

構造方法定義:

修飾符 構造方法名 (參數(shù)列表){

}

2. 構造方法的特點

構造方法 沒有返回值類型,連 void 也沒有

也不需要寫返回值。因為它是為構建對象的,對象創(chuàng)建完,方法就執(zhí)行結束。

構造 方法名 必須和 類名 保持一致

只有在 創(chuàng)建對象 的時候 自動 調用執(zhí)行,而且只執(zhí)行 一次

3. 注意事項

每一 class 類都 必須有一個構造方法,如果自己不寫,系統(tǒng)會給出 默認 構造方法

編譯 的時候,系統(tǒng)會自動檢查類中是否有構造方法,如果沒有編譯器就會自動添加一個構造方法

如果你提供了構造方法,系統(tǒng)將不再提供默認的構造方法

構造方法也是可以 重載 的

在創(chuàng)建對象時,會調用與 參數(shù)列表對應 的構造方法

構造方法的內存圖

構造方法

二、 構造方法的重載

一個類中可以有 多個 構造方法,多個構造方法是以 重載 的形式存在的

意義在于:可以根據(jù)不同的需求,定義不同的構造方法,靈活地初始化對象的成員變量

構造方法是可以被 private 修飾,作用是:其他程序無法創(chuàng)建該類的對象

class Person {

private int age;

private String name;

// 私有無參數(shù)的構造方法,即外界不能通過new Person();語句創(chuàng)建本類對象

private Person() {

}

// 多個構造方法是以重載的形式存在

Person(int a) {

age = a;

}

Person(String nm, int a) {

name = nm;

age = a;

}

}

三、 類的初始化過程

Student s = new Student(); 在內存中做了哪些事情?

加載 Student.class 文件進入內存

在棧內存為 s 開辟空間

在堆內存為學生對象開辟空間

對學生對象的成員變量進行默認初始化

對學生對象的成員變量進行顯示初始化

通過構造方法對學生對象的成員變量賦值

學生對象初始化完畢,把對象地址賦值給 s 變量

類的初始化過程內存圖

完整對象初始化過程

四、this 關鍵字

1. this 關鍵字:本類對象的引用

this 是在方法中使用的,哪個對象調用了該方法,那么, this 就代表調用該方法的對象引用

this 什么時候存在的? 當創(chuàng)建對象的時候, this 就存在了

this 的作用:用來區(qū)別同名的成員變量與局部變量(this .成員變量)

2. 成員變量隱藏

在局部變量作用域中,如果定義了一個和成員變量同名的局部變量,此時,在局部變量作用域中,就無法用變量名訪問到成員變量,而只能訪問到同名的局部變量

當需要訪問成員變量是,只需要在成員變量前面加上 this. 即可

調用其他構造方法的語句 必須 定義在構造方法的 第一行,原因是初始化動作要 最先執(zhí)行。

五、子父類中的構造方法

1. 調用

在創(chuàng)建子類對象時,父類的構造方法會 先執(zhí)行,因為子類中所有構造方法的第一行有默認的隱式 super(); 語句,它是用來訪問父類中的空參數(shù)構造方法,進行父類成員的初始化操作

this()是調用本類的構造方法,super() 是調用父類的構造方法, 且兩條語句 不能同時存在

無論如何,子類的所有構造方法,直接或間接 必須調用 到父類構造方法; 子類的構造方法什么都不寫,默認 的構造方法第一行super()

子類初始化內存圖:

子類初始化

2. 當父類中沒有無參數(shù)構造方法的時候,怎么辦?

通過super(參數(shù)) 訪問父類有參構造方法

通過 this(參數(shù)) 訪問本類中其他構造方法

注意:本類中的其他構造方法必須已經能夠正常訪問父類構造方法

3. 為什么子類對象創(chuàng)建都要訪問父類中的構造方法?

因為子類繼承了父類的內容,所以創(chuàng)建對象時,必須要先看父類是如何對其內容進行初始化的。

所以子類在初始化時,必須先到父類中去執(zhí)行父類的初始化動作。這樣,才可以使用父類中的內容。

總結:子類的初始化要保證,在初始化子類成員之前,必須首先初始化父類成員,因為,子類功能的實現(xiàn),常常會依賴父類,所以在初始化的時候,保證先初始化父類,再初始化子類

4. 創(chuàng)建子類對象過程的細節(jié)

如果子類的構造方法 **第一行寫了 this **調用了本類其他構造方法,那么 super 調用 父類的語句還有嗎?

這時是沒有的,因為 this() 或者 super(),只能定義在構造方法的第一行,因為初始化動作要先執(zhí)行。

父類構造方法中是否有隱式的 super 呢?

也是有的。只要是構造方法默認第一行都是 super();

六、 super 關鍵字

指的是父類的存儲空間(理解為父類的引用)

調用父類的成員變量:

super.成員變量;

調用父類的構造方法:

super(參數(shù));

調用方法的成員方法:

super.成員方法();

關鍵字super 可以在任意的非靜態(tài)方法中使用

七、 static 關鍵字

1. static 特點

被 static 修飾的成員變量 屬于類,不屬于這個類的某個對象。優(yōu)先于對象存在,被類的所有對象共享

也就是說,多個對象在訪問或修改 static 修飾的成員變量時,其中一個對象將 static 成員變量值進行了修改,其他對象中的 static 成員變量值會跟著改變,即多個對象共享同一個 static 成員變量

被 static 修飾的成員可以并且建議通過 類名 直接訪問

訪問靜態(tài)成員的格式:

類名.靜態(tài)成員變量名

類名.靜態(tài)成員方法名(參數(shù))

對象名.靜態(tài)成員變量名 ------不建議使用該方式,會出現(xiàn)警告

對象名.靜態(tài)成員方法名(參數(shù)) -----不建議使用該方式,會出現(xiàn)警告

2. static 注意事項

靜態(tài)內容是優(yōu)先于對象存在的,只能訪問靜態(tài) 。靜態(tài)修飾的內容存于內存的 靜態(tài)區(qū)。

main 方法為靜態(tài)方法,僅僅為程序執(zhí)行入口,它不屬于任何一個對象,可以定義在任意類中

靜態(tài)上下文中,不能引用非靜態(tài)的成員變量或成員方法

靜態(tài)方法中無法訪問普通成員; 靜態(tài)成員方法中,不能調用非靜態(tài)的成員方法(靜態(tài)只能訪問/調用靜態(tài))

在靜態(tài)上下文中,無法使用 this/super 關鍵字, 因為 this/super 指代的是對象

3. 靜態(tài)變量和成員變量的區(qū)別

所屬不同

靜態(tài)變量屬于 類,所以也稱為為 類變量。

成員變量屬于 對象,所以也稱為 實例變量(對象變量)

內存中位置不同

靜態(tài)變量存儲于方法區(qū)的靜態(tài)區(qū)

成員變量存儲于堆內存

內存出現(xiàn)時間不同

靜態(tài)變量隨著 類 的加載而加載,隨著類的消失而消失

成員變量隨著 對象 的創(chuàng)建而存在,隨著對象的消失而消失

調用不同

靜態(tài)變量可以通過類名調用,也可以通過對象調用

成員變量只能通過 對象名 調用

靜態(tài)變量和方法的初始化內存圖:

靜態(tài)變量和方法的初始化

4. 定義靜態(tài)常量

public static final 修飾的變量來完成定義,此時 變量名用全部大寫,多個單詞使用 下劃線 連接

public static final 數(shù)據(jù)類型 變量名 = 值;

當我們想 使用類的靜態(tài)成員 時,不需要創(chuàng)建對象,直接使用類名 來訪問即可

接口中的每個成員變量都 默認 使用public static final 修飾。

所有接口中的成員變量已是 靜態(tài)常量,由于接口沒有構造方法,所以必須 顯示 賦值。可以直接用 接口名 訪問。

八、 final 關鍵字

1. 概述

繼承的出現(xiàn)提高了代碼的復用性,并方便開發(fā)。但隨之也有問題,有些類在描述完之后,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。可是當子類繼承了這些特殊類之后,就可以對其中的方法進行重寫,那怎么解決呢?

要解決上述的這些問題,需要使用到一個關鍵字 final , final 的意思為最終,不可變。 final 是個修飾符,它可以用來修飾 類,類的成員,以及局部變量

2. 特點

final 修飾 類 不可以被繼承,但是可以繼承其他類。

final 修飾的 方法不可以被覆蓋,但父類中沒有被 final 修飾方法,子類覆蓋后可以加 final

final 修飾的 變量 稱為常量,這些變量只能賦值一次。

final 修飾的 引用類型的變量 值為對象地址值,地址值不能更改,但是地址內的對象屬性值可以修改

final 修飾 成員變量 ,需要在創(chuàng)建對象前賦值,否則報錯。(當沒有顯式賦值時,多個構造方法的均需要為其賦值。)

3. 自定義常量的初始化

自定義常量的初始化,可以通過 構造方法 來初始化

注意事項: 如果通過構造方法,來對自定義常量進行初始化,要保證,每一個構造方法中 都必須有初始化自定義常量的初始化語句

總結

以上是生活随笔為你收集整理的java构造方法基础_Java 基础:构造方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99精品人妻无码专区在线视频区 | 欧美激情在线免费 | 伊人久久久久久久久 | 香蕉久久久久久久av网站 | 欧洲-级毛片内射 | 区一区二区三 | 在线免费观看a视频 | 超碰97在线免费观看 | 男生舔女生的屁股 | 国产av一区二区三区传媒 | 婷婷激情在线 | av老司机在线播放 | 久久久久久综合网 | 欧美中文字幕一区 | 欧美v亚洲 | 日韩三级中文字幕 | 日韩色中色 | 理论片大全免费理伦片 | 国产精品99久久久久久久久久久久 | 一个人看的视频www 色就是色网站 | 亚洲成年 | 香蕉黄色片| 三级毛毛片 | 久久国产精品二区 | 天天爽夜夜 | 欧美成本人视频 | 亚洲中文在线一区 | 日韩精品一区二区三区无码专区 | 日韩高清在线一区 | 综合视频在线 | 国产精品1区2区3区 在线看黄的网站 | 波多野结衣中文字幕在线播放 | 性感美女在线 | 精品乱码一区内射人妻无码 | 国产a免费| 亚洲天堂av线| 日日夜夜精品视频免费 | 成人黄色一级视频 | 综合网五月 | 欧美一级淫 | 男女毛片视频 | 竹菊影视一区二区三区 | 中文字幕色图 | 艳妇臀荡乳欲伦交换在线播放 | 网友自拍第一页 | www天天操 | 国产精品二区一区二区aⅴ污介绍 | 超碰com| 人操人操| 日韩经典一区 | 婷婷在线免费 | 美女露出粉嫩尿囗让男人桶 | 日本视频黄色 | 伊人9 | 特大黑人娇小亚洲女mp4 | 自拍偷拍福利视频 | 欧美电影一区 | 激情综合五月网 | 日本亚洲色大成网站www久久 | 免费无码国产v片在线观看 三级全黄做爰在线观看 | 在线a | 成人av免费观看 | 91福利视频在线观看 | 日本在线视频免费观看 | 一本视频 | 日日操网站 | av一区二| 精品久久久999 | 久一在线视频 | 四季av中文字幕 | 91偷拍网站 | 亚洲国产精品99久久久久久久久 | 亚洲大尺度网站 | 久久久久国产一区二区 | 婷婷影院在线观看 | 禁漫天堂免费网站 | 99爱在线视频 | 日本丰满大乳奶做爰 | 国产99自拍 | 91n视频 | 亚洲 小说 欧美 激情 另类 | 中国精品毛片 | 中国黄色录像一级片 | 91香蕉国产 | 黄页网站免费在线观看 | a视频免费 | 18成人免费观看网站下载 | 98色| 成人小视频免费看 | 新超碰97 | www.久久综合 | 真人真事免费毛片 | 野战少妇38p | 手机在线观看免费av | 黄色av网站在线看 | 国产欧美视频在线观看 | 韩国精品久久久 | 极品粉嫩小仙女高潮喷水久久 | 亚洲综合成人亚洲 |