導航:首頁 > 方法技巧 > 如何去定義構造方法

如何去定義構造方法

發布時間:2022-02-14 00:06:07

⑴ java定義一個類是否必須寫構造方法,構造方法何時調用

不一定寫構造方法,有需求的時候才寫
在被實例化的時候調用(再被new的時候調用)

構造方法一般在靜態塊、非靜態塊之後調用

⑵ 定義一個類的構造方法有哪些要求並寫出一個類A的默認構造方法

類有一個默認的構造方法 A()
當有帶參數的構造方法時如:
public class A{
private String userName="";
public A(){}
public A(String name){
this.userName = name;
}
}
必須顯示寫上空構造方法 A(){}
還有,注意 類是沒有 ()的 作者:daqing15 的答案
class A(){
A(){
}
}
我不知道你怎麼能變異通過的。。。。。。。

⑶ java 構造方法裡面可以定義方法嗎

構造方法也是方法,方法裡面是不可以嵌套方法的,不過可以調用方法。

⑷ 構造方法的定義

在Java中,任何變數在被使用前都必須先設置初值.Java提供了為類的成員變數賦初值的專門方法。

⑸ JAVA構造方法

構造方法必須滿足以下語法規則:

(1) 方法名必須與類名相同。

(2)不要聲明返回類型。

(3)不能被static、final、synchronized、abstract和native修飾。構造方法不能被子類繼承,所以用final和

abstract修飾沒有意義。構造方法用於初始化一個新建的對象,所以用static修飾沒有意義。多個線程不會同時創建內存地址相同的同一個對象,因此用synchronized修飾沒有必要。此外,Java語言不支持native類型的構造方法。

例:

public class Sample {

private int x;

public Sample() { // 不帶參數的構造方法

this(1);

}

public Sample(int x) { //帶參數的構造方法

this.x=x;

}

public int Sample(int x) { //不是構造方法

return x++;

}

}

拓展資料:

構造方法的訪問級別

構造方法可以處於public、protected、默認和private這四種訪問級別之一。本節著重介紹構造方法處於private級別的意義。

當構造方法為private級別,意味著只能在當前類中訪問它:在當前類的其他構造方法中可以通過this語句調用它,此外還可以在當前類的成員方法中通過new語句調用它。

在以下場合之一,可以把類的所有構造方法都聲明為private類型。

(1)在這個類中僅僅包含了一些供其他程序調用的靜態方法,沒有任何實例方法。其他程序無需創建該類的實例,就能訪問類的靜態方法。例如 java.lang.Math類就符合這種情況,在Math類中提供了一系列用於數學運算的公共靜態方法,為了禁止外部程序創建Math類的實例, Math類的惟一的構造方法是private類型的:

private Math(){}

abstract類型的類也不允許實例化。也許你會問,把Math類定義為如下abstract類型,不是也能禁止Math類被實例化嗎?

public abstract class Math{…}

如果一個類是抽象類,意味著它是專門用於被繼承的類,可以擁有子類,而且可以創建具體子類的實例。而JDK並不希望用戶創建Math類的子類,在這種情況下,把類的構造方法定義為private類型更合適。

(2)禁止這個類被繼承。當一個類的所有構造方法都是private類型,假如定義了它的子類,那麼子類的構造方法無法調用父類的任何構造方法,因此會導致編譯錯誤。把一個類聲明為final類型,也能禁止這個類被繼承。這兩者的區別是:

1)如果一個類允許其他程序用new語句構造它的實例,但不允許擁有子類,那就把類聲明為final類型。

2)如果一個類既不允許其他程序用new語句構造它的實例,又不允許擁有子類,那就把類的所有構造方法聲明為private類型。

由於大多數類都允許其他程序用new語句構造它的實例,因此用final修飾符來禁止類被繼承的做法更常見。

(3)這個類需要把構造自身實例的細節封裝起來,不允許其他程序通過new語句創建這個類的實例,這個類向其他程序提供了獲得自身實例的靜態方法,這種方法稱為靜態工廠方法。

參考資料:java 構造函數

⑹ java用類定義,構造方法

publicclassUser{
privateStringuserID;
privateStringuserName;
privateintage;
privateStringsex;

publicUser(StringuserID,StringuserName,intage,Stringsex){
this.userID=userID;
this.userName=userName;
this.age=age;
this.sex=sex;
}

@Override
publicStringtoString(){
returnthis.userName+"userID為"+this.userID+",年齡"+this.age+"歲,性別"+this.sex+"。";
}

}

什麼叫做JAVA的構造方法(含義)

在Java中,每個類都需要至少一個的構造方法(可以有多個),它用於構造類的對象;在Java中構造方法必須與類名相同;構造方法可以不帶有參數、也可以帶有參數,不帶有參數的構造方法被稱為無參構造(no-arg)方法。

這里大家可能會覺得奇怪,我們之前的MainClass好像就沒有構造方法。其實是這樣的,如果我們不給類提供構造方法,編譯器會自動提供一個無參構造方法。

定義構造方法的語法如下:

Java代碼
constructorName (listOfArguments) {
[constructor body]
}
其中constructorName必須和你定義的類的名字相同,listOfArgumengs是構造方法的參數列表,當然,這里也可以不帶有任何參數。然後大括弧內是我們的方法體。這里提一下,構造方法也可以帶有訪問控制符,即public、protected、private和default(忽略情況下)。

下面的例子給出了一個構造方法的實例:

Java代碼
public class MainClass {
double radius;

// Class constructor
MainClass(double theRadius) {
radius = theRadius;
}
}
可以看出,我們給MainClass定義了一個構造方法,它的修飾符是默認的。後面的教程大家會學到這幾個訪問控制符的作用。我們的MainClass的構造方法帶有一個double參數,這里大家也可以看出,構造方法的參數可以用於初始化類的屬性,其實強制要求帶參數的構造方法可以保持類的狀態的完整性,即保證構造出的對象是符合要求的。

默認構造方法
前面我講過,如果沒有提供構造方法,編譯器會提供一個默認的構造方法(沒有參數)。這里其實也隱含著一個意思,即,如果我們提供了構造方法,那麼編譯器是不會提供默認的構造方法的。我們可以通過下面的代碼來驗證。

Java代碼
public class MainClass {
double radius;

// Class constructor
MainClass(double theRadius) {
radius = theRadius;
}

public static void main(String[] args) {
MainClass mc = new MainClass();
}
}
大家可以嘗試編譯上面的代碼,可以發現編譯會出錯,提示的錯誤信息為:

Java代碼
The constructor MainClass() is undefined
這個信息的意思是構造方法MainClass()沒有定義,即編譯器沒有給我們提供默認的構造方法。那麼如果我們還想繼續使用無參的構造方法的話,這就需要我們自己來提供了,如:

Java代碼
public class MainClass {
double radius;

MainClass() {

}

// Class constructor
MainClass(double theRadius) {
radius = theRadius;

}

}
上面的代碼我們自己手動的提供了一個無參的構造方法MainClass(),大家現在嘗試編譯代碼,會發現,代碼是可以通過編譯的。所以在自己實際的工作中,稍微注意這點。

多個構造方法
其實我們前面已經見過多構造方法的例子了,不過這里給大家提示下,Java支持一個類中定義多個構造方法,如:

Java代碼
class Sphere {
int radius = 0;

Sphere() {
radius = 1;
}

Sphere(int radius) {
this.radius = radius;
}
}
這里我們定義了球(Sphere)類,然後定義了它的半徑並提供了兩個構造方法。在默認的構造方法里,我們將半徑設置為1,然後在帶有半徑作為參數的構造方法中,我們設置了半徑為提供的值。

在一個構造方法中調用另一個方法
我們一直稱呼構造方法,那麼既然是方法,當然支持方法的調用。在Java中,我們可以從一個構造方法中調用另一個構造方法。要調用另一個方法,只要使用this關鍵字,然後後面跟著括弧,如果要調用的構造方法中帶有參數,只要將參數放到對應的位置即可。如:

Java代碼
class Sphere {
int radius = 0;
double xCenter;
double yCenter;
double zCenter;

Sphere() {
radius = 1;
}

Sphere(double x, double y, double z) {
this();
xCenter = x;
yCenter = y;
zCenter = z;
}

Sphere(int theRadius, double x, double y, double z) {
this(x, y, z);
radius = theRadius;
}
}
在使用這種方式的時候,稍微注意下,不要引起循環調用。在出現循環調用的時候,編譯器會出現類似於如下的提示來阻止類編譯通過:

Java代碼
Recursive constructor invocation MainClass(int)
它的意思是遞歸的構造方法調用,大家遇到這個問題的時候,稍微檢查下自己的代碼,看看構造方法是否出現遞歸調用了。

⑻ java構造方法

java構造方法也就是java構造函數,方法舉例如下圖:

java構造函數一般用來初始化成員屬性和成員方法的,即new對象產生後,就調用了對象了屬性和方法。

在現實生活中,很多事物一出現,就天生具有某些屬性和行為。比如人一出生,就有年齡、身高、體重、就會哭;汽車一出產,就有顏色、有外觀、可以運行等。這些,我們就可以將這些天然的屬性和行為定義在構造函數中,當new實例化對象時,也就具有這些屬性和方法了,沒必要再去重新定義了,從而加快了編程效率。

(8)如何去定義構造方法擴展閱讀:

java構造函數的特點:

1、函數名與類名相同

2、不用定義返回值類型。(不同於void類型返回值,void是沒有具體返回值類型;構造函數是連類型都沒有)

3、不可以寫return語句。(返回值類型都沒有,也就不需要return語句了)

⑼ java怎麼構造方法創建實例

構造方法是表明怎樣去創建一個東西。
就像一個汽車啟動說明書,告訴我們如何啟動,但是我們需要一些操作去啟動。
所以有了構造方法,我們還要實際去創建實例:
舉個例子:
有個Student類,構造方法是Student()
那麼創建實例的代碼是: 類名 實例名=new 構造方法;
Student a=new Student() //無參數構造方法
Student a=new Student(name)//有參數構造方法

⑽ Java 里的構造方法怎麼理解怎麼定義變數,怎麼調用

構造方法:

構造方法/函數 ,是一種特殊的方法 。主要用來在創建對象時初始化對象, 即為對象成員變數賦初始值,總與new運算符一起使用在創建對象的語句中 。特別的一個類可以有多個構造函數 ,可根據其參數個數的不同或參數類型的不同來區分它們 即構造函數的重載。
構造函數的特點編輯
1.構造函數的命名必須和類名完全相同。在java中普通函數可以和構造函數同名,但是必須帶有返回值;
2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態。它沒有返回值,也不能用void來修飾。這就保證了它不僅什麼也不用自動返回,而且根本不能有任何選擇。而其他方法都有返回值,即使是void返回值。盡管方法體本身不會自動返回什麼,但仍然可以讓它返回一些東西,而這些東西可能是不安全的;
3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用;而一般的方法是在程序執行到它的時候被調用的;
4.當定義一個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略,不過Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數的。而一般的方法不存在這一特點;
5.當一個類只定義了私有的構造函數,將無法通過new關鍵字來創建其對象,當一個類沒有定義任何構造函數,C#編譯器會為其自動生成一個默認的無參的構造函數。[1]
6.構造函數有回滾的效果,構造函數拋出異常時,構造的是一個不完整對象,會回滾,將此不完整對象的成員釋放(c++)

閱讀全文

與如何去定義構造方法相關的資料

熱點內容
如何打開雞蛋的方法 瀏覽:441
路由vpn怎麼設置方法 瀏覽:466
吊車頭的拉線安裝方法 瀏覽:80
番茄灰霉病治療土方法 瀏覽:423
oppo手機耳線的包裝方法 瀏覽:711
如何尋找正確的工作方法 瀏覽:736
羊布病普遍治療方法 瀏覽:894
研究方法論是誰寫的 瀏覽:530
嬰兒肚子脹怎麼辦有哪些方法 瀏覽:335
蘋果手機的感應在哪裡設置方法 瀏覽:614
香碗製作方法視頻 瀏覽:100
北京蛋白質組學分析方法 瀏覽:790
有哪些方法稀釋油漆 瀏覽:191
可以替代焊錫的sma頭連接方法 瀏覽:474
剪輯視頻的方法 瀏覽:599
如何用化學方法鑒別環己烷和苯胺 瀏覽:546
浙江菜烹飪方法有哪些 瀏覽:389
星戰模擬器怎麼找到自己的家正確方法 瀏覽:775
2020洪災原因和解決方法 瀏覽:833
長期失眠睡不著怎麼辦最好的方法 瀏覽:119