類(lèi)
在標(biāo)題為面向?qū)ο蟮木幊谈拍钫n程中對(duì)面向?qū)ο蟾拍畹慕榻B以自行車(chē)課為例,以賽車(chē),山地自行車(chē)和雙人自行車(chē)為子類(lèi),下面是可能實(shí)現(xiàn)Bicycle類(lèi)的示例代碼,為你提供類(lèi)聲明的概述,本課程的后續(xù)部分將逐步備份和解釋類(lèi)聲明,目前,不要關(guān)心細(xì)節(jié)。
public class Bicycle { // the Bicycle class has // three fields public int cadence; public int gear; public int speed; // the Bicycle class has // one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } // the Bicycle class has // four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } }
作為Bicycle的子類(lèi)的MountainBike類(lèi)的類(lèi)聲明可能如下所示:
public class MountainBike extends Bicycle { // the MountainBike subclass has // one field public int seatHeight; // the MountainBike subclass has // one constructor public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) { super(startCadence, startSpeed, startGear); seatHeight = startHeight; } // the MountainBike subclass has // one method public void setHeight(int newValue) { seatHeight = newValue; } }
MountainBike繼承了Bicycle的所有字段和方法,并增加了seatHeight和設(shè)置它的方法(山地自行車(chē)有座位,可以根據(jù)地形要求上下移動(dòng))。
聲明類(lèi)你已經(jīng)看到以下列方式定義的類(lèi):
class MyClass { // field, constructor, and // method declarations }
這是一個(gè)類(lèi)聲明,類(lèi)主體(大括號(hào)之間的區(qū)域)包含為從類(lèi)創(chuàng)建的對(duì)象的生命周期提供的所有代碼:用于初始化新對(duì)象的構(gòu)造函數(shù),提供類(lèi)及其對(duì)象狀態(tài)的字段的聲明,以及實(shí)現(xiàn)類(lèi)及其對(duì)象行為的方法。
前面的類(lèi)聲明是最小的,它僅包含類(lèi)聲明所需的那些組件,你可以在類(lèi)聲明的開(kāi)頭提供有關(guān)該類(lèi)的更多信息,例如其超類(lèi)的名稱,是否實(shí)現(xiàn)任何接口等等,例如:
class MyClass extends MySuperClass implements YourInterface { // field, constructor, and // method declarations }
表示MyClass是MySuperClass的子類(lèi),它實(shí)現(xiàn)了YourInterface接口。
你也可以在最開(kāi)始添加public或private等修飾符 — 這樣你就可以看到類(lèi)聲明的開(kāi)頭行可能變得非常復(fù)雜,public和private修飾符決定了其他類(lèi)可以訪問(wèn)MyClass的內(nèi)容,本課程稍后將對(duì)此進(jìn)行討論。關(guān)于接口和繼承的課程將解釋如何以及為什么在類(lèi)聲明中使用extends和implements關(guān)鍵字,目前你不需要擔(dān)心這些額外的。
通常,類(lèi)聲明可以按順序包含這些組件:
修飾符,例如public、private以及稍后你將遇到的許多其他修飾符。
類(lèi)名,首字母大寫(xiě)。
類(lèi)的父級(jí)(超類(lèi))的名稱(如果有)以關(guān)鍵字extends開(kāi)頭,一個(gè)類(lèi)只能extend(子類(lèi))一個(gè)父類(lèi)。
由類(lèi)實(shí)現(xiàn)的以逗號(hào)分隔的接口列表(如果有),前面是關(guān)鍵字implements,一個(gè)類(lèi)可以implement多個(gè)接口。
類(lèi)體,被括號(hào)圍繞,{}。
聲明成員變量有幾種變量:
類(lèi)中的成員變量 — 這些變量稱為字段。
方法或代碼塊中的變量 — 這些變量稱為局部變量。
方法聲明中的變量 — 這些變量稱為參數(shù)。
Bicycle類(lèi)使用以下代碼行來(lái)定義其字段:
public int cadence; public int gear; public int speed;
字段聲明按順序由三個(gè)部分組成:
零個(gè)或多個(gè)修飾符,例如public或private。
該字段的類(lèi)型。
該字段的名稱。
Bicycle的字段被命名為cadence、gear和speed,并且都是整數(shù)數(shù)據(jù)類(lèi)型(int),public關(guān)鍵字將這些字段標(biāo)識(shí)為公共成員,可由任何可以訪問(wèn)該類(lèi)的對(duì)象訪問(wèn)。
訪問(wèn)修飾符使用的第一個(gè)(最左側(cè))修飾符允許你控制哪些其他類(lèi)可以訪問(wèn)成員字段,目前,只考慮public和private,其他訪問(wèn)修飾符將在后面討論。
public修飾符 — 可以從所有類(lèi)訪問(wèn)該字段。
private修飾符 — 該字段只能在其自己的類(lèi)中訪問(wèn)。
本著封裝的精神,將字段設(shè)為private是很常見(jiàn)的,這意味著它們只能從Bicycle類(lèi)直接訪問(wèn),但是,我們?nèi)匀恍枰L問(wèn)這些值,這可以通過(guò)添加為我們獲取字段值的公共方法間接完成:
public class Bicycle { private int cadence; private int gear; private int speed; public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } public int getCadence() { return cadence; } public void setCadence(int newValue) { cadence = newValue; } public int getGear() { return gear; } public void setGear(int newValue) { gear = newValue; } public int getSpeed() { return speed; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } }類(lèi)型
所有變量都必須具有類(lèi)型,你可以使用原始類(lèi)型,如int、float、boolean等,或者你可以使用引用類(lèi)型,例如字符串、數(shù)組或?qū)ο蟆?/p> 變量名
所有變量(無(wú)論是字段、局部變量還是參數(shù))都遵循“語(yǔ)言基礎(chǔ)”課程“變量命名”中介紹的相同命名規(guī)則和約定。
在本課程中,請(qǐng)注意相同的命名規(guī)則和約定用于方法和類(lèi)名稱,除了:
類(lèi)名的第一個(gè)字母應(yīng)該大寫(xiě)。
方法名稱中的第一個(gè)(或唯一)單詞應(yīng)該是動(dòng)詞。
定義方法以下是典型方法聲明的示例:
public double calculateAnswer(double wingSpan, int numberOfEngines, double length, double grossTons) { //do the calculation here }
方法聲明中唯一必需的元素是方法的返回類(lèi)型、名稱、一對(duì)圓括號(hào)()和大括號(hào)之間的主體{}。
更一般地,方法聲明有六個(gè)組件,順序如下:
修飾符 — 例如public、private和其他你將在稍后了解的內(nèi)容。
返回類(lèi)型 — 方法返回的值的數(shù)據(jù)類(lèi)型,如果方法未返回值,則返回void。
方法名稱 — 字段名稱的規(guī)則也適用于方法名稱,但約定略有不同。
括號(hào)中的參數(shù)列表 — 以逗號(hào)分隔的輸入?yún)?shù)列表,前面是數(shù)據(jù)類(lèi)型,括在括號(hào)中(),如果沒(méi)有參數(shù),則必須使用空括號(hào)。
一個(gè)異常列表 — 稍后討論。
括號(hào)之間的方法體 — 方法的代碼,包括局部變量的聲明,在這里。
修飾符、返回類(lèi)型和參數(shù)將在本課程的后面部分討論,異常將在后面的課程中討論。
定義:方法聲明的兩個(gè)組件包括方法簽名 — 方法的名稱和參數(shù)類(lèi)型。
上面聲明的方法的簽名是:
calculateAnswer(double, int, double, double)命名方法
雖然方法名稱可以是任何合法標(biāo)識(shí)符,但代碼約定限制方法名稱,按照慣例,方法名稱應(yīng)該是小寫(xiě)的動(dòng)詞或以小寫(xiě)的動(dòng)詞開(kāi)頭的多單詞名稱,后跟形容詞、名詞等。在多單詞名稱中,第二個(gè)和后面每個(gè)單詞的第一個(gè)字母應(yīng)該大寫(xiě),這里有些例子:
run runFast getBackground getFinalData compareTo setX isEmpty
通常,方法在其類(lèi)中具有唯一名稱,但是,由于方法重載,方法可能與其他方法具有相同的名稱。
重載方法Java編程語(yǔ)言支持重載方法,Java可以區(qū)分具有不同方法簽名的方法,這意味著如果類(lèi)中的方法具有不同的參數(shù)列表,則它們可以具有相同的名稱(有一些條件,將在標(biāo)題為“接口和繼承”的課程中討論)。
假設(shè)你有一個(gè)類(lèi)可以使用書(shū)法來(lái)繪制各種類(lèi)型的數(shù)據(jù)(字符串、整數(shù)等),并且包含繪制每種數(shù)據(jù)類(lèi)型的方法,為每個(gè)方法使用新名稱很麻煩 — 例如,drawString、drawInteger、drawFloat等等。在Java編程語(yǔ)言中,你可以對(duì)所有繪圖方法使用相同的名稱,但是為每個(gè)方法傳遞不同的參數(shù)列表,因此,數(shù)據(jù)繪圖類(lèi)可能會(huì)聲明四個(gè)名為draw的方法,每個(gè)方法都有一個(gè)不同的參數(shù)列表。
public class DataArtist { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } }
重載方法由傳遞給方法的參數(shù)的數(shù)量和類(lèi)型區(qū)分,在代碼示例中,draw(String s)和draw(int i)是不同且唯一的方法,因?yàn)樗鼈冃枰煌膮?shù)類(lèi)型。
你不能聲明具有相同名稱和相同數(shù)量和類(lèi)型的參數(shù)的多個(gè)方法,因?yàn)榫幾g器無(wú)法區(qū)分它們。
在區(qū)分方法時(shí)編譯器不考慮返回類(lèi)型,因此即使它們具有不同的返回類(lèi)型,也不能聲明具有相同簽名的兩個(gè)方法。
注意:應(yīng)謹(jǐn)慎使用重載方法,因?yàn)樗鼈儠?huì)使代碼的可讀性降低。為你的類(lèi)提供構(gòu)造函數(shù)
類(lèi)包含被調(diào)用以從類(lèi)藍(lán)圖創(chuàng)建對(duì)象的構(gòu)造函數(shù),構(gòu)造函數(shù)聲明看起來(lái)像方法聲明 — 除了它們使用類(lèi)的名稱并且沒(méi)有返回類(lèi)型,例如,Bicycle有一個(gè)構(gòu)造函數(shù):
public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; }
要?jiǎng)?chuàng)建一個(gè)名為myBike的新Bicycle對(duì)象,new運(yùn)算符將調(diào)用構(gòu)造函數(shù):
Bicycle myBike = new Bicycle(30, 0, 8);
new Bicycle(30, 0, 8)為對(duì)象創(chuàng)建內(nèi)存空間并初始化其字段。
雖然Bicycle只有一個(gè)構(gòu)造函數(shù),但它可能有其他構(gòu)造函數(shù),包括一個(gè)無(wú)參構(gòu)造函數(shù):
public Bicycle() { gear = 1; cadence = 10; speed = 0; }
Bicycle yourBike = new Bicycle();調(diào)用無(wú)參構(gòu)造函數(shù)來(lái)創(chuàng)建一個(gè)名為yourBike的新Bicycle對(duì)象。
兩個(gè)構(gòu)造函數(shù)都可以在Bicycle中聲明,因?yàn)樗鼈兙哂胁煌膮?shù)列表,與方法一樣,Java平臺(tái)根據(jù)列表中的參數(shù)數(shù)量及其類(lèi)型來(lái)區(qū)分構(gòu)造函數(shù)。你不能為相同類(lèi)編寫(xiě)兩個(gè)具有相同參數(shù)數(shù)量和類(lèi)型的構(gòu)造函數(shù),因?yàn)槠脚_(tái)無(wú)法區(qū)分它們,這樣做會(huì)導(dǎo)致編譯時(shí)錯(cuò)誤。
你不必為你的類(lèi)提供任何構(gòu)造函數(shù),但在執(zhí)行此操作時(shí)必須小心,編譯器自動(dòng)為沒(méi)有構(gòu)造函數(shù)的任何類(lèi)提供無(wú)參數(shù)的默認(rèn)構(gòu)造函數(shù),此默認(rèn)構(gòu)造函數(shù)將調(diào)用超類(lèi)的無(wú)參數(shù)構(gòu)造函數(shù),在這種情況下,如果超類(lèi)沒(méi)有無(wú)參數(shù)構(gòu)造函數(shù),編譯器將會(huì)報(bào)錯(cuò),因此你必須驗(yàn)證它是否有,如果你的類(lèi)沒(méi)有顯式的超類(lèi),那么它有一個(gè)隱式的超類(lèi)Object,它有一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。
你可以自己使用超類(lèi)構(gòu)造函數(shù),本課開(kāi)頭的MountainBike類(lèi)就是這樣做的,稍后將在有關(guān)接口和繼承的課程中對(duì)此進(jìn)行討論。
你可以在構(gòu)造函數(shù)的聲明中使用訪問(wèn)修飾符來(lái)控制哪些其他類(lèi)可以調(diào)用構(gòu)造函數(shù)。
注意:如果另一個(gè)類(lèi)不能調(diào)用MyClass構(gòu)造函數(shù),則無(wú)法直接創(chuàng)建MyClass對(duì)象。將信息傳遞給方法或構(gòu)造函數(shù)
方法或構(gòu)造函數(shù)的聲明聲明該方法或構(gòu)造函數(shù)的參數(shù)的數(shù)量和類(lèi)型,例如,以下是根據(jù)貸款金額、利率、貸款期限(期數(shù))和貸款的未來(lái)價(jià)值計(jì)算住房貸款的每月付款的方法:
public double computePayment( double loanAmt, double rate, double futureValue, int numPeriods) { double interest = rate / 100.0; double partial1 = Math.pow((1 + interest), - numPeriods); double denominator = (1 - partial1) / interest; double answer = (-loanAmt / denominator) - ((futureValue * partial1) / denominator); return answer; }
此方法有四個(gè)參數(shù):貸款金額、利率、未來(lái)價(jià)值和期數(shù),前三個(gè)是雙精度浮點(diǎn)數(shù),第四個(gè)是整數(shù),參數(shù)在方法體中使用,并且在運(yùn)行時(shí)將采用傳入的參數(shù)的值。
注意:參數(shù)是指方法聲明中的變量列表,參數(shù)是調(diào)用方法時(shí)傳遞的實(shí)際值,調(diào)用方法時(shí),使用的參數(shù)必須與聲明參數(shù)的類(lèi)型和順序匹配。參數(shù)類(lèi)型
你可以將任何數(shù)據(jù)類(lèi)型用于方法或構(gòu)造函數(shù)的參數(shù),這包括原始數(shù)據(jù)類(lèi)型,如在computePayment方法中看到的雙精度數(shù)、浮點(diǎn)數(shù)和整數(shù),以及引用數(shù)據(jù)類(lèi)型,如對(duì)象和數(shù)組。
這是一個(gè)接受數(shù)組作為參數(shù)的方法示例,在此示例中,該方法創(chuàng)建一個(gè)新的Polygon對(duì)象,并從Point對(duì)象數(shù)組中初始化它(假設(shè)Point是一個(gè)表示x,y坐標(biāo)的類(lèi)):
public Polygon polygonFrom(Point[] corners) { // method body goes here }
注意:如果要將方法傳遞給方法,請(qǐng)使用lambda表達(dá)式或方法引用。任意數(shù)量的參數(shù)
你可以使用名為可變參數(shù)的構(gòu)造將任意數(shù)量的值傳遞給方法,當(dāng)你不知道將多少特定類(lèi)型的參數(shù)傳遞給該方法時(shí),你可以使用可變參數(shù),這是手動(dòng)創(chuàng)建數(shù)組的快捷方式(前一種方法可以使用可變參數(shù)而不是數(shù)組)。
要使用可變參數(shù),你通過(guò)省略號(hào)跟隨最后一個(gè)參數(shù)的類(lèi)型(三個(gè)點(diǎn),...),然后是空格和參數(shù)名稱,然后可以使用任何數(shù)量的參數(shù)調(diào)用該方法,包括無(wú)參數(shù)。
public Polygon polygonFrom(Point... corners) { int numberOfSides = corners.length; double squareOfSide1, lengthOfSide1; squareOfSide1 = (corners[1].x - corners[0].x) * (corners[1].x - corners[0].x) + (corners[1].y - corners[0].y) * (corners[1].y - corners[0].y); lengthOfSide1 = Math.sqrt(squareOfSide1); // more method body code follows that creates and returns a // polygon connecting the Points }
你可以看到,在方法內(nèi)部,corners被視為數(shù)組,可以使用數(shù)組或參數(shù)序列調(diào)用該方法,在任何一種情況下,方法體中的代碼都會(huì)將參數(shù)視為數(shù)組。
你最常見(jiàn)的是使用打印方法的可變參數(shù),例如,這個(gè)printf方法:
public PrintStream printf(String format, Object... args)
允許你打印任意數(shù)量的對(duì)象,它可以像這樣調(diào)用:
System.out.printf("%s: %d, %s%n", name, idnum, address);
或者像這樣:
System.out.printf("%s: %d, %s, %s, %s%n", name, idnum, address, phone, email);
或者還有不同數(shù)量的參數(shù)。
參數(shù)名向方法或構(gòu)造函數(shù)聲明參數(shù)時(shí),為該參數(shù)提供名稱,此名稱在方法體內(nèi)用于引用傳入的參數(shù)。
參數(shù)的名稱在其范圍內(nèi)必須是唯一的,它不能與同一方法或構(gòu)造函數(shù)的另一個(gè)參數(shù)的名稱相同,也不能是方法或構(gòu)造函數(shù)中的局部變量的名稱。
參數(shù)可以與類(lèi)的某個(gè)字段具有相同的名稱,如果是這種情況,則稱該參數(shù)遮蔽該字段,遮蔽字段可能使你的代碼難以閱讀,并且通常僅在設(shè)置特定字段的構(gòu)造函數(shù)和方法中使用,例如,考慮以下Circle類(lèi)及其setOrigin方法:
public class Circle { private int x, y, radius; public void setOrigin(int x, int y) { ... } }
Circle類(lèi)有三個(gè)字段:x,y和radius,setOrigin方法有兩個(gè)參數(shù),每個(gè)參數(shù)與其中一個(gè)字段具有相同的名稱,每個(gè)方法參數(shù)都會(huì)影響共享其名稱的字段,因此,在方法體內(nèi)使用簡(jiǎn)單名稱x或y是指參數(shù),而不是字段。要訪問(wèn)該字段,你必須使用限定名稱,這將在本課程后面的“使用this關(guān)鍵字”一節(jié)中討論。
傳遞原始數(shù)據(jù)類(lèi)型參數(shù)原始參數(shù)(如int或double)按值傳遞給方法,這意味著對(duì)參數(shù)值的任何更改都僅存在于方法的范圍內(nèi),方法返回時(shí),參數(shù)消失,對(duì)它們的任何更改都將丟失,這是一個(gè)例子:
public class PassPrimitiveByValue { public static void main(String[] args) { int x = 3; // invoke passMethod() with // x as argument passMethod(x); // print x to see if its // value has changed System.out.println("After invoking passMethod, x = " + x); } // change parameter in passMethod() public static void passMethod(int p) { p = 10; } }
運(yùn)行此程序時(shí),輸出為:
After invoking passMethod, x = 3傳遞引用數(shù)據(jù)類(lèi)型參數(shù)
引用數(shù)據(jù)類(lèi)型參數(shù)(如對(duì)象)也按值傳遞給方法,這意味著當(dāng)方法返回時(shí),傳入的引用仍然引用與以前相同的對(duì)象,但是,如果對(duì)象的字段的值具有適當(dāng)?shù)脑L問(wèn)級(jí)別,則可以在該方法中更改它們的值。
例如,考慮任意類(lèi)中移動(dòng)Circle對(duì)象的方法:
public void moveCircle(Circle circle, int deltaX, int deltaY) { // code to move origin of circle to x+deltaX, y+deltaY circle.setX(circle.getX() + deltaX); circle.setY(circle.getY() + deltaY); // code to assign a new reference to circle circle = new Circle(0, 0); }
使用這些參數(shù)調(diào)用該方法:
moveCircle(myCircle, 23, 56)
在方法內(nèi)部,circle最初引用的是myCircle,該方法將circle引用的對(duì)象(即myCircle)的x和y坐標(biāo)分別改變23和56,方法返回時(shí),這些更改將保持不變。然后circle被賦予新的Circle對(duì)象的引用,其中x = y = 0,但是,這種重新分配沒(méi)有永久性,因?yàn)橐檬前粗祩鬟f的,不能更改,在該方法中,circle指向的對(duì)象已更改,但是,當(dāng)方法返回時(shí),myCircle仍然引用與調(diào)用方法之前相同的Circle對(duì)象。
上一篇:控制流語(yǔ)句 下一篇:對(duì)象文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72306.html
Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...
摘要:反射非常強(qiáng)大和有用。另外,反射可以用在映射結(jié)果集的列名到對(duì)象的方法。本教程將深入介紹反射。本教程還將清除一些關(guān)于范型信息在運(yùn)行時(shí)可用性的認(rèn)知混淆。類(lèi)對(duì)象使用反射時(shí),起點(diǎn)通常是需要使用反射檢視的類(lèi)的對(duì)象。 Java反射可以在運(yùn)行時(shí)檢視類(lèi)、接口、屬性和方法,而無(wú)需在編譯時(shí)知道類(lèi)名、方法名等等。它也同樣使用反射支持實(shí)例化新的對(duì)象、調(diào)用方法和get/set屬性值。 Java反射非常強(qiáng)大和有用...
摘要:所以看出和兩個(gè)的對(duì)應(yīng)指針數(shù)一樣,一個(gè)為一個(gè)為這就引出了變量的知識(shí)點(diǎn),如手工畫(huà)的圖二為啥強(qiáng)制子類(lèi)父類(lèi)變量名不同阿里巴巴手冊(cè)是這樣寫(xiě)的強(qiáng)制避免在子父類(lèi)的成員變量之間或者不同代碼塊的局部變量之間采用完全相同的命名方式,那會(huì)導(dǎo)致代碼可讀性降低。 摘要: 原創(chuàng)出處 https://www.bysocket.com 「公眾號(hào):泥瓦匠BYSocket 」歡迎關(guān)注和轉(zhuǎn)載,保留摘要,謝謝! 目錄 父子...
使用包成員 組成包的類(lèi)型稱為包成員。 要從其包外部使用公共包成員,你必須執(zhí)行以下操作之一: 通過(guò)其完全限定名稱引用該成員 導(dǎo)入包成員 導(dǎo)入成員的整個(gè)包 每種情況都適用于不同的情況,如以下各節(jié)所述。 通過(guò)其完全限定名稱引用包成員 到目前為止,本教程中的大多數(shù)示例都通過(guò)簡(jiǎn)單名稱引用類(lèi)型,例如Rectangle和StackOfInts,如果你編寫(xiě)的代碼與該成員位于同一個(gè)包中,或者已導(dǎo)入該成員,則可以...
管理源文件和類(lèi)文件 Java平臺(tái)的許多實(shí)現(xiàn)依賴于分層文件系統(tǒng)來(lái)管理源文件和類(lèi)文件,盡管Java語(yǔ)言規(guī)范不要求這樣做,策略如下。 將類(lèi)、接口、枚舉或注解類(lèi)型的源代碼放在文本文件中,該文件的名稱是類(lèi)型的簡(jiǎn)單名稱,其擴(kuò)展名為.java,例如: //in the Rectangle.java file package graphics; public class Rectangle { ... ...
自動(dòng)裝箱和拆箱 自動(dòng)裝箱是Java編譯器在基元類(lèi)型和相應(yīng)的對(duì)象包裝類(lèi)之間進(jìn)行的自動(dòng)轉(zhuǎn)換,例如,將int轉(zhuǎn)換為Integer,將double轉(zhuǎn)換為Double,依此類(lèi)推,如果轉(zhuǎn)換是另一種方式,則稱為拆箱。 以下是自動(dòng)裝箱的最簡(jiǎn)單示例: Character ch = a; 本節(jié)中的其余示例使用泛型,如果您還不熟悉泛型的語(yǔ)法,請(qǐng)參閱泛型課程。 考慮以下代碼: List li = new ArrayLis...
閱讀 917·2023-04-25 18:51
閱讀 1870·2021-09-09 11:39
閱讀 3283·2019-08-30 15:53
閱讀 2099·2019-08-30 13:03
閱讀 1310·2019-08-29 16:17
閱讀 582·2019-08-29 11:33
閱讀 1884·2019-08-26 14:00
閱讀 2124·2019-08-26 13:41