Java面向?qū)ο笕馕鲋畉his關(guān)鍵字+構(gòu)造方法+標(biāo)準(zhǔn)JavaBean
Java面向?qū)ο缶v(二):this關(guān)鍵字+構(gòu)造方法+標(biāo)準(zhǔn)JavaBean|吃透封裝進(jìn)階語法
文章摘要
本文是Java面向?qū)ο笙盗械诙诵倪M(jìn)階,承接上篇類與對象、封裝知識,全覆蓋this關(guān)鍵字、構(gòu)造方法、標(biāo)準(zhǔn)JavaBean類三大核心考點(diǎn),也是企業(yè)開發(fā)與筆試面試的高頻內(nèi)容。從內(nèi)存原理角度拆解this關(guān)鍵字的本質(zhì)與用法,徹底講清構(gòu)造方法的初始化作用、重載規(guī)則及使用細(xì)節(jié),手把手教你編寫符合企業(yè)規(guī)范的標(biāo)準(zhǔn)JavaBean類,搭配完整可運(yùn)行代碼、內(nèi)存圖解析、開發(fā)快捷鍵技巧與易錯點(diǎn)避坑。內(nèi)容由淺入深、圖文結(jié)合,零基礎(chǔ)能看懂,進(jìn)階者能夯實(shí)。學(xué)完本文可獨(dú)立完成高規(guī)范的JavaBean類開發(fā),打通“封裝-初始化-標(biāo)準(zhǔn)化編碼”的邏輯閉環(huán),是吃透Java面向?qū)ο蟮年P(guān)鍵內(nèi)容。
? 適用人群 & 閱讀重點(diǎn)
?? Java零基礎(chǔ)入門者:重點(diǎn)看this關(guān)鍵字的基礎(chǔ)用法、構(gòu)造方法的定義格式、標(biāo)準(zhǔn)JavaBean的固定寫法,能照貓畫虎編寫規(guī)范代碼。
?? 在校學(xué)生/備考筆試者:重點(diǎn)吃透this關(guān)鍵字的本質(zhì)、構(gòu)造方法的特點(diǎn)與注意事項(xiàng)、JavaBean的規(guī)范要求,這些是筆試填空/簡答高頻考點(diǎn)。
?? 開發(fā)入門夯實(shí)基礎(chǔ)者:重點(diǎn)看構(gòu)造方法的重載、JavaBean開發(fā)快捷鍵、this在構(gòu)造方法中的使用,貼合企業(yè)實(shí)際開發(fā)規(guī)范。
?? 初學(xué)面向?qū)ο竺悦U?/strong>:重點(diǎn)看內(nèi)存圖解析、代碼示例的逐行講解,理解抽象語法背后的實(shí)際運(yùn)行邏輯。
?? 復(fù)習(xí)鞏固者:直接看「知識回顧+核心總結(jié)」,快速梳理知識點(diǎn),強(qiáng)化記憶易混點(diǎn)。
知識回顧(課前必看,快速銜接)
在上一篇內(nèi)容中,我們掌握了Java面向?qū)ο蟮幕A(chǔ):理解了面向?qū)ο蟮暮诵乃枷?,學(xué)會了設(shè)計類、創(chuàng)建對象、使用對象,并掌握了封裝的核心思想,通過private關(guān)鍵字私有化成員變量,提供public的setXxx/getXxx方法實(shí)現(xiàn)屬性的安全賦值與取值,保證了數(shù)據(jù)的安全性。
但在上篇的封裝代碼中,我們發(fā)現(xiàn)了一個問題:setXxx方法中出現(xiàn)了成員變量與局部變量同名的情況,此時該如何區(qū)分?創(chuàng)建對象時,能否在創(chuàng)建的同時直接給成員變量賦值,而非多次調(diào)用set方法?如何編寫一套符合企業(yè)全規(guī)范的實(shí)體類?這就是本文要解決的核心問題,讓我們的面向?qū)ο缶幋a更規(guī)范、更高效。
一、this關(guān)鍵字區(qū)分變量&指向?qū)ο?,封裝必備
1.1 為什么需要this關(guān)鍵字?(解決實(shí)際問題)
在封裝的setXxx方法中,我們會遇到成員變量(類中方法外)和局部變量(方法內(nèi)/形參)同名的情況,而Java中默認(rèn)遵循「局部變量優(yōu)先」的原則,此時直接寫變量名,程序會識別為局部變量,無法給成員變量賦值。
? 問題代碼示例
public class GirlFriend {
private String name; // 成員變量
// setName方法:形參name是局部變量,與成員變量同名
public void setName(String name) {
name = name; // 局部變量給局部變量賦值,成員變量未被賦值!
}
}
此時調(diào)用gf.setName("小潯潯"),成員變量name依然是默認(rèn)值null,這就是變量名沖突導(dǎo)致的問題,而this關(guān)鍵字就是解決這個問題的核心。
1.2 this關(guān)鍵字的基礎(chǔ)用法(必會語法)
當(dāng)成員變量和局部變量同名時,在成員變量名前加上this.,即可明確表示引用的是「類中的成員變量」,從而區(qū)分同名的局部變量。
? 解決問題后的代碼
public class GirlFriend {
private String name; // 成員變量
public void setName(String name) {
this.name = name; // this.name → 成員變量;name → 局部變量(形參)
}
}
此時調(diào)用gf.setName("小潯潯"),就能成功給成員變量name賦值,問題完美解決!
1.3 this關(guān)鍵字的本質(zhì)(必懂,理解內(nèi)存更重要)
很多同學(xué)只記住了this.的用法,卻不懂其本質(zhì),這會影響后續(xù)的進(jìn)階學(xué)習(xí),this的本質(zhì)是:當(dāng)前方法調(diào)用者的對象內(nèi)存地址值,是一個引用類型,指向當(dāng)前對象本身。
簡單來說:哪個對象調(diào)用了包含this的方法,this就代表哪個對象,this中存儲的就是這個對象的堆內(nèi)存地址。
1.4 this關(guān)鍵字的內(nèi)存圖解析(直觀理解,不再抽象)
以Student類的setName方法為例,結(jié)合內(nèi)存分布,徹底講清this的運(yùn)行邏輯:
示例代碼
public class Student {
private String name;
public void setName(String name) {
this.name = name; // 核心行
}
}
public class StudentTest {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("付小玲"); // s1調(diào)用setName方法
Student s2 = new Student();
s2.setName("橋小久"); // s2調(diào)用setName方法
}
}核心內(nèi)存運(yùn)行邏輯
- 執(zhí)行
new Student()時,JVM在堆內(nèi)存開辟空間,創(chuàng)建對象,分配唯一地址(如s1→0x00000012,s2→0x00000024); - 調(diào)用
s1.setName("付小玲")時,JVM在棧內(nèi)存創(chuàng)建setName方法的棧幀,自動將s1的地址0x00000012賦值給this; - 執(zhí)行
this.name = name時,通過this的地址找到堆中s1的對象,將形參的"付小玲"賦值給該對象的成員變量name; - 調(diào)用
s2.setName("橋小久")時,同理,this被賦值為s2的地址0x00000024,操作的是堆中s2的對象,與s1互不影響。
? 核心結(jié)論:this是方法的隱藏參數(shù),JVM會在調(diào)用對象方法時自動傳遞,無需程序員手動定義,其值就是調(diào)用者對象的地址。
1.5 this關(guān)鍵字的使用注意事項(xiàng)(易錯點(diǎn),避坑指南)
- this關(guān)鍵字只能在類的成員方法中使用,不能在靜態(tài)方法(static修飾)中使用(靜態(tài)方法無對象調(diào)用,后續(xù)會講);
- this可以直接訪問類的成員變量和成員方法,格式:
this.成員變量、this.成員方法(); - this關(guān)鍵字可以作為方法的返回值,返回當(dāng)前對象(進(jìn)階用法,后續(xù)講解);
- this在方法中可以省略,當(dāng)成員變量和局部變量不同名時,
this.可直接不寫,程序會默認(rèn)引用成員變量。
1.6 this關(guān)鍵字核心總結(jié)(必背)
- 基礎(chǔ)作用:區(qū)分同名的成員變量和局部變量,
this.指向成員變量; - 本質(zhì):當(dāng)前方法調(diào)用者的對象地址,哪個對象調(diào)用方法,this就指向哪個對象;
- 自動傳遞:JVM自動為成員方法分配this參數(shù),無需手動定義;
- 核心格式:
this.成員變量名、this.成員方法名()。
二、構(gòu)造方法對象初始化神器,開發(fā)必備
2.1 構(gòu)造方法的概述(必背定義)
構(gòu)造方法也叫構(gòu)造器、構(gòu)造函數(shù),是Java類中一種特殊的方法,其唯一作用是:在創(chuàng)建對象時,由JVM自動調(diào)用,為對象的成員變量完成初始化(賦值),是對象創(chuàng)建過程中的關(guān)鍵步驟。
? 核心認(rèn)知糾正(筆試高頻坑)
? 錯誤說法:構(gòu)造方法是用來創(chuàng)建對象的。
? 正確說法:new關(guān)鍵字才是真正創(chuàng)建對象的核心,構(gòu)造方法只是new創(chuàng)建對象時的其中一步,僅負(fù)責(zé)成員變量初始化,對象的創(chuàng)建還包括加載類、開辟堆空間、默認(rèn)初始化等步驟。
2.2 構(gòu)造方法的標(biāo)準(zhǔn)格式(固定寫法,直接套用)
構(gòu)造方法是特殊的方法,有嚴(yán)格的格式要求,必須完全遵守,否則編譯器會識別為普通方法:
public class 類名 {
// 構(gòu)造方法
修飾符 類名(參數(shù)列表) {
方法體; // 一般為成員變量賦值,完成初始化
}
}
構(gòu)造方法的三大核心特點(diǎn)(必背,筆試高頻)
- 方法名與類名完全一致:包括大小寫,比如類名
Student,構(gòu)造方法名也必須是Student; - 無返回值類型:連
void關(guān)鍵字都不能寫,這是與普通方法最直觀的區(qū)別; - 無具體返回值:方法體中不能用
return帶回任何結(jié)果數(shù)據(jù)(可寫空return)。
2.3 構(gòu)造方法的分類與使用(必會)
構(gòu)造方法分為無參構(gòu)造方法和帶參構(gòu)造方法,兩者配合使用,滿足不同的初始化需求。
① 無參構(gòu)造方法(空參構(gòu)造)
- 格式:無參數(shù),方法體可空,也可手動寫初始化邏輯;
- 作用:創(chuàng)建對象時,給成員變量賦默認(rèn)值(或手動指定的固定值)。
public class Student {
private String name;
private int age;
// 無參構(gòu)造方法
public Student() {
// 可空,也可手動初始化
// this.name = "未知姓名";
// this.age = 0;
}
}? ② 帶參構(gòu)造方法(有參構(gòu)造)
- 格式:包含參數(shù)列表,參數(shù)一般與成員變量對應(yīng);
- 作用:創(chuàng)建對象的同時,直接給成員變量賦指定值,無需后續(xù)調(diào)用set方法,簡化代碼。
public class Student {
private String name;
private int age;
// 帶參構(gòu)造方法(參數(shù)與成員變量對應(yīng))
public Student(String name, int age) {
this.name = name; // 用this區(qū)分同名變量,給成員變量賦值
this.age = age;
}
}? 構(gòu)造方法的調(diào)用(自動調(diào)用,無需手動)
構(gòu)造方法由JVM在創(chuàng)建對象時自動調(diào)用,無需程序員手動調(diào)用,創(chuàng)建一次對象,就調(diào)用一次構(gòu)造方法:
// 調(diào)用無參構(gòu)造,創(chuàng)建對象并默認(rèn)初始化
Student s1 = new Student();
// 調(diào)用帶參構(gòu)造,創(chuàng)建對象的同時賦值name="阿強(qiáng)",age=23
Student s2 = new Student("阿強(qiáng)", 23);
2.4 構(gòu)造方法的注意事項(xiàng)(高頻考點(diǎn),必背無遺漏)
這是筆試面試的高頻考點(diǎn),也是初學(xué)者的易混點(diǎn),必須逐條牢記,零失分 ??
- 默認(rèn)無參構(gòu)造:如果程序員沒有手動定義任何構(gòu)造方法,JVM會自動為類添加一個默認(rèn)的無參構(gòu)造方法,方法體為空;
- 默認(rèn)構(gòu)造失效:如果程序員手動定義了任意構(gòu)造方法(無參/帶參),JVM將不再提供默認(rèn)的無參構(gòu)造方法;
- 手動寫無參構(gòu)造:無論是否定義帶參構(gòu)造,推薦手動書寫無參構(gòu)造方法,避免后續(xù)創(chuàng)建對象時報錯;
- 構(gòu)造方法重載:多個構(gòu)造方法方法名相同(與類名一致),參數(shù)列表不同(個數(shù)/類型/順序),屬于方法重載,這是核心用法;
- 調(diào)用次數(shù):每
new一次對象,就會調(diào)用一次構(gòu)造方法,創(chuàng)建N個對象則調(diào)用N次; - 修飾符:構(gòu)造方法一般用
public修飾,保證外部類能創(chuàng)建對象(后續(xù)會講其他修飾符); - 不能手動調(diào)用:構(gòu)造方法只能由JVM在new對象時調(diào)用,不能通過
對象名.構(gòu)造方法名()手動調(diào)用。
2.5 構(gòu)造方法與setXxx方法的區(qū)別(易混點(diǎn),清晰區(qū)分)
很多同學(xué)分不清構(gòu)造方法和setXxx方法的使用場景,兩者都能給成員變量賦值,核心區(qū)別在賦值時機(jī)和使用目的:
| 對比維度 | 構(gòu)造方法 | setXxx方法 |
|---|---|---|
| 賦值時機(jī) | 創(chuàng)建對象時賦值,僅能賦值一次 | 創(chuàng)建對象后賦值,可多次賦值 |
| 核心目的 | 完成對象的初始化 | 完成對象屬性的修改/重新賦值 |
| 調(diào)用方式 | JVM自動調(diào)用,無需手動 | 程序員手動通過對象調(diào)用 |
| 參數(shù) | 可無參/帶參 | 必須帶參(要賦值的內(nèi)容) |
| 返回值 | 無返回值類型 | 無返回值(void) |
實(shí)際開發(fā)使用原則
- 創(chuàng)建對象時,確定屬性的初始值 → 使用帶參構(gòu)造;
- 創(chuàng)建對象后,需要修改屬性值 → 使用setXxx方法;
- 創(chuàng)建對象時,屬性值暫時不確定 → 使用無參構(gòu)造,后續(xù)用setXxx方法賦值。
2.6 構(gòu)造方法完整代碼示例(可直接運(yùn)行,企業(yè)級規(guī)范)
public class Student {
// 私有化成員變量
private String name;
private int age;
// 1. 手動編寫無參構(gòu)造方法(推薦)
public Student() {
System.out.println("無參構(gòu)造方法被調(diào)用,對象創(chuàng)建中...");
}
// 2. 帶參構(gòu)造方法(重載),初始化所有成員變量
public Student(String name, int age) {
this.name = name; // this區(qū)分同名變量
this.age = age;
System.out.println("帶參構(gòu)造方法被調(diào)用,對象初始化完成!");
}
// 3. get/set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
// 測試類
public class StudentTest {
public static void main(String[] args) {
// 調(diào)用無參構(gòu)造創(chuàng)建對象
Student s1 = new Student();
// 創(chuàng)建對象后用set方法賦值
s1.setName("阿珍");
s1.setAge(24);
System.out.println(s1.getName() + " " + s1.getAge()); // 阿珍 24
// 調(diào)用帶參構(gòu)造創(chuàng)建對象,同時賦值
Student s2 = new Student("阿強(qiáng)", 23);
System.out.println(s2.getName() + " " + s2.getAge()); // 阿強(qiáng) 23
// 創(chuàng)建對象后用set方法修改值
s2.setAge(25);
System.out.println(s2.getName() + " " + s2.getAge()); // 阿強(qiáng) 25
}
}? 運(yùn)行結(jié)果:構(gòu)造方法自動調(diào)用,賦值/修改邏輯正常,完全符合開發(fā)需求。
三、標(biāo)準(zhǔn)JavaBean類企業(yè)開發(fā)統(tǒng)一規(guī)范,必須掌握
3.1 什么是標(biāo)準(zhǔn)JavaBean類?
JavaBean類是我們上篇講的「描述一類事物的類」的企業(yè)級標(biāo)準(zhǔn)化版本,是Java項(xiàng)目中最基礎(chǔ)、最常用的實(shí)體類(Entity類),用于封裝數(shù)據(jù),所有的數(shù)據(jù)庫表、接口返回數(shù)據(jù)、業(yè)務(wù)實(shí)體,都對應(yīng)標(biāo)準(zhǔn)的JavaBean類。
標(biāo)準(zhǔn)JavaBean類是遵循Java官方制定的一套固定規(guī)范的類,所有程序員都按此規(guī)范編寫,保證代碼的統(tǒng)一性、可讀性和可維護(hù)性。
3.2 標(biāo)準(zhǔn)JavaBean類的硬性要求(必背,嚴(yán)格遵守)
這是Java開發(fā)的行業(yè)統(tǒng)一規(guī)范,無論是筆試還是企業(yè)開發(fā),都必須嚴(yán)格遵守,缺一不可
- 類名規(guī)范:見名知意,采用大駝峰命名法,首字母大寫,如
User、Student、Goods; - 成員變量規(guī)范:所有成員變量必須用private關(guān)鍵字私有化,隱藏內(nèi)部數(shù)據(jù);
- 構(gòu)造方法規(guī)范:必須提供兩個構(gòu)造方法,缺一不可:
- 無參構(gòu)造方法(空參構(gòu)造);
- 帶全部成員變量的帶參構(gòu)造方法;
- 成員方法規(guī)范:
- 為每個私有化的成員變量,提供對應(yīng)的public修飾的setXxx/getXxx方法;
- 如果類有其他業(yè)務(wù)行為,添加對應(yīng)的public成員方法;
- 其他規(guī)范:成員變量和方法的命名遵循小駝峰命名法,見名知意。
3.3 標(biāo)準(zhǔn)JavaBean類編寫示例(手把手教,企業(yè)級實(shí)戰(zhàn))
需求:編寫一個User類(用戶類),包含屬性:用戶名(name)、密碼(pwd)、郵箱(email)、性別(gender)、年齡(age),按標(biāo)準(zhǔn)JavaBean規(guī)范編寫。
標(biāo)準(zhǔn)JavaBean類 - User.java(可直接復(fù)制使用)
/**
* 用戶類 - 標(biāo)準(zhǔn)JavaBean
* 包含:用戶名、密碼、郵箱、性別、年齡
*/
public class User {
// 1. 私有化所有成員變量
private String name;
private String pwd;
private String email;
private String gender;
private int age;
// 2. 無參構(gòu)造方法
public User() {
}
// 3. 帶全部成員變量的帶參構(gòu)造方法
public User(String name, String pwd, String email, String gender, int age) {
this.name = name;
this.pwd = pwd;
this.email = email;
this.gender = gender;
this.age = age;
}
// 4. 為每個成員變量提供對應(yīng)的setXxx/getXxx方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}測試類 - UserTest.java(使用標(biāo)準(zhǔn)JavaBean)
public class UserTest {
public static void main(String[] args) {
// 方式1:無參構(gòu)造 + set方法
User u1 = new User();
u1.setName("張三");
u1.setPwd("123456");
u1.setEmail("zhangsan@163.com");
u1.setGender("男");
u1.setAge(20);
System.out.println(u1.getName() + " " + u1.getEmail()); // 張三 zhangsan@163.com
// 方式2:帶參構(gòu)造直接初始化
User u2 = new User("李四", "654321", "lisi@qq.com", "女", 22);
System.out.println(u2.getName() + " " + u2.getAge()); // 李四 22
}
}3.4 開發(fā)神器:快捷鍵生成標(biāo)準(zhǔn)JavaBean(效率翻倍,必會)
實(shí)際開發(fā)中,手動編寫setXxx/getXxx和構(gòu)造方法非常繁瑣,IDEA提供了快捷鍵一鍵生成,大幅提升編碼效率,這是開發(fā)必備技巧!
核心快捷鍵(IDEA)
- Windows/Linux:
Alt + Insert - Mac:
Alt + Fn + Insert
分步生成步驟
- 先編寫好類的私有化成員變量;
- 按下快捷鍵,選擇Constructor(構(gòu)造方法),生成無參構(gòu)造和帶全部參數(shù)的構(gòu)造方法;
- 生成無參構(gòu)造:直接選中無參選項(xiàng)回車;
- 生成帶全部參數(shù)構(gòu)造:按
Ctrl + A全選成員變量,回車;
- 再次按下快捷鍵,選擇Getter and Setter,按
Ctrl + A全選成員變量,回車,一鍵生成所有setXxx/getXxx方法; - 完成!標(biāo)準(zhǔn)JavaBean類一鍵生成,無需手動編寫。
進(jìn)階插件:PTG(1秒生成JavaBean)
如果覺得快捷鍵還不夠快,可以安裝IDEA插件PTG,支持根據(jù)屬性名一鍵生成完整的標(biāo)準(zhǔn)JavaBean類,快捷鍵:Ctrl + Shift + 豆子,開發(fā)效率拉滿!
3.5 標(biāo)準(zhǔn)JavaBean類核心總結(jié)(必背)
- 標(biāo)準(zhǔn)JavaBean是企業(yè)開發(fā)的統(tǒng)一規(guī)范,用于封裝數(shù)據(jù),是項(xiàng)目基礎(chǔ);
- 核心要求:私有化成員變量 + 無參構(gòu)造 + 帶全參構(gòu)造 + 全套setXxx/getXxx;
- 開發(fā)技巧:使用IDEA快捷鍵
Alt + Insert一鍵生成,避免手動編寫繁瑣代碼; - 核心作用:封裝數(shù)據(jù)、保證數(shù)據(jù)安全、提高代碼可維護(hù)性,適配企業(yè)團(tuán)隊(duì)開發(fā)。
? 核心知識點(diǎn)總結(jié)(精華提煉,查漏補(bǔ)缺)
this關(guān)鍵字核心
- 基礎(chǔ)用法:區(qū)分同名的成員變量和局部變量,
this.指向成員變量; - 本質(zhì):當(dāng)前方法調(diào)用者的對象地址,哪個對象調(diào)用,this就指向哪個對象;
- 自動傳遞:JVM為成員方法自動分配,無需手動定義。
構(gòu)造方法核心
- 特殊方法,方法名與類名一致,無返回值類型,由JVM自動調(diào)用;
- 核心作用:創(chuàng)建對象時為成員變量完成初始化;
- 分類:無參構(gòu)造、帶參構(gòu)造,支持重載;
- 關(guān)鍵注意:手動定義構(gòu)造方法后,默認(rèn)無參構(gòu)造失效,推薦手動編寫無參構(gòu)造;
- 與setXxx區(qū)別:構(gòu)造方法創(chuàng)建對象時賦值(一次),setXxx創(chuàng)建對象后賦值(多次)。
標(biāo)準(zhǔn)JavaBean核心
- 企業(yè)級統(tǒng)一規(guī)范:私有化成員變量 + 無參構(gòu)造 + 全參構(gòu)造 + 全套setXxx/getXxx;
- 開發(fā)技巧:IDEA快捷鍵
Alt + Insert一鍵生成構(gòu)造方法和set/get; - 核心作用:封裝數(shù)據(jù),適配團(tuán)隊(duì)開發(fā),保證代碼規(guī)范統(tǒng)一。
寫在最后
本文是Java面向?qū)ο蟮暮诵倪M(jìn)階內(nèi)容,也是企業(yè)開發(fā)的基礎(chǔ)規(guī)范內(nèi)容。this關(guān)鍵字、構(gòu)造方法、標(biāo)準(zhǔn)JavaBean類,這三個知識點(diǎn)看似獨(dú)立,實(shí)則緊密關(guān)聯(lián):this解決了變量名沖突問題,構(gòu)造方法實(shí)現(xiàn)了對象的高效初始化,標(biāo)準(zhǔn)JavaBean則將封裝、this、構(gòu)造方法整合,形成了企業(yè)開發(fā)的統(tǒng)一編碼規(guī)范。
很多同學(xué)初學(xué)這些知識點(diǎn)時,會覺得“規(guī)則太多、記不住”,這是正常的。Java是一門強(qiáng)規(guī)范的語言,面向?qū)ο蟮囊?guī)范更是如此,這些規(guī)則不是憑空制定的,而是為了解決實(shí)際開發(fā)中的問題、適配團(tuán)隊(duì)協(xié)作而總結(jié)的最佳實(shí)踐。
學(xué)習(xí)的關(guān)鍵不是死記硬背規(guī)則,而是理解規(guī)則背后的原因,多動手練習(xí):多寫幾個標(biāo)準(zhǔn)JavaBean類,用快捷鍵生成代碼,體會this和構(gòu)造方法的使用場景,慢慢的你就會發(fā)現(xiàn),這些規(guī)范會成為你的編碼習(xí)慣,寫代碼時會自然而然的遵循。
到此這篇關(guān)于Java面向?qū)ο螅簍his關(guān)鍵字+構(gòu)造方法+標(biāo)準(zhǔn)JavaBean的文章就介紹到這了,更多相關(guān)java this關(guān)鍵字 構(gòu)造方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot+vue制作后臺管理系統(tǒng)項(xiàng)目
本文詳細(xì)介紹了后臺管理使用springboot+vue制作,以分步驟、圖文的形式詳細(xì)講解,大家有需要的可以參考參考2021-08-08
微服務(wù)springcloud 03.Eureka實(shí)現(xiàn)高可用的過程
這篇文章主要介紹了微服務(wù)springcloud 03.Eureka實(shí)現(xiàn)高可用的相關(guān)資料,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
Java后端服務(wù)間歇性響應(yīng)慢的問題排查與解決
之前在公司內(nèi)其它團(tuán)隊(duì)找到幫忙排查的一個后端服務(wù)連接超時問題,問題的表現(xiàn)是服務(wù)部署到線上后出現(xiàn)間歇性請求響應(yīng)非常慢(大于10s),但是后端業(yè)務(wù)分析業(yè)務(wù)日志時卻沒有發(fā)現(xiàn)慢請求,所以本文給大家介紹了Java后端服務(wù)間歇性響應(yīng)慢的問題排查與解決,需要的朋友可以參考下2025-03-03
為Java應(yīng)用創(chuàng)建Docker鏡像的3種方式總結(jié)
Docker的使用可以將應(yīng)用程序做成鏡像,這樣可以將鏡像發(fā)布到私有或者公有倉庫中,在其他主機(jī)上也可以pull鏡像,并且運(yùn)行容器,運(yùn)行程,下面這篇文章主要給大家總結(jié)介紹了關(guān)于為Java應(yīng)用創(chuàng)建Docker鏡像的3種方式,需要的朋友可以參考下2023-06-06
基于mybatis batch實(shí)現(xiàn)批量提交大量數(shù)據(jù)
這篇文章主要介紹了基于mybatis batch實(shí)現(xiàn)批量提交大量數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05
Spring中過濾器和攔截器的區(qū)別及具體實(shí)現(xiàn)方式
在Spring框架中,和都是用于處理 HTTP 請求的中間件,但它們在作用范圍、實(shí)現(xiàn)方式和生命周期上有顯著區(qū)別,本文給大家介紹Spring中過濾器和攔截器的區(qū)別及具體實(shí)現(xiàn),感興趣的朋友一起看看吧2025-07-07
使用Spring Initializr創(chuàng)建Spring Boot項(xiàng)目沒有JDK1.8的解決辦法
很久沒創(chuàng)建springboot項(xiàng)目,今天使用idea的Spring Initializr 創(chuàng)建 Spring Boot項(xiàng)目時,發(fā)現(xiàn)java版本里,無法選擇jdk1.8,只有17、21、22,所以本文介紹了使用Spring Initializr創(chuàng)建Spring Boot項(xiàng)目沒有JDK1.8的解決辦法,需要的朋友可以參考下2024-06-06

