⑴ java構造方法有什麼讓其它方法沒辦不到的JAVA為什麼要有構造方法
你下邊的問的來正好回答了第一源個問題..構造方法不能有返回值.其他的和普通方法一樣.不過構造方法其實是有返回值的.它返回一個新的對象 A a=new A(); 這個new A()就是A類的構造方法.這也就是你問的第二個問題了.只有調用構造方法才能產生對象.
⑵ java為什麼要提供默認構造方法作用是什麼
class Test {
int n;
}
這段沒有人為構造方法
class Test {
int n;
Test(int n) {
this.n=n
}
Test(){
this.n=1;
}
}
這段有人為(的兩種不同參數的)構回造方法
默認構造方法的答作用和人為構造方法作用差不多,就是假如你不聲明構造方法,他總得調用一個構造方法,但是他又找不到人為定義的,所以就用這個默認的不帶參數的空方法作為構造方法
作用大概就是這樣
⑶ 學習java一段時間了,突然就不明白為什麼要用構造函數了它有什麼作用呢
在new的時候自動調用,一般用來進行初始化,作用就是方便。
⑷ java中為什麼要有構造方法
你可以不使用構造方法 , 使用構造方法的好處是可以在對象初始的時候就對某些變數賦值等操作,大大的減少 了代碼量 , 能減少代碼量的東西誰會不用呢
⑸ Java中創建對象時,為什麼要調用構造方法構造方法的作用是什麼
初始化對象 (默認的構造器是可以不寫的) 構造器是可以帶參數的 通過參數能直接初始化一個你想要的對象
另外 將構造方法私有化 就可以防止其他的程序員亂NEW該類的對象
用處很多的 我不知道你想知道具體的什麼?
⑹ java中為什麼要使用構造方法
初始化class啊?!
⑺ 什麼叫做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為什麼需要構造方法
就好像不同的人有不同的行為一樣。如:
你在寫程序!
我什麼也沒有回做!
應該是以便於答重載吧如:
public class Hello
{
public Hello()
{
//do something
}
public Hello(String str)
{
//do others
}
public static void main(String[] args)
{
Hello hello = new Hello();//do something
Hello other = new Hello("hello world");//do others
}
}
⑼ 在java語言中為什麼有時候構造方法有時要構造一個沒有參數的方法
構造方法 是一個類要實例成對象 調用的方法; 是必須有 , 但是你創建一個專類, 經常不寫,屬 你不寫, 不代表你寫的類沒有, 只要你不寫,java底層都會生成一個默認的無參數的方法!
但是:如果你寫了一個構造方法, 不管有參無參, 系統就不會再默認生成 , 這時如果你寫的是有參的, 那無參的那一個就沒 了, 系統不會生成了, 你用的時候就不能直接new 類名(); 這個了
只能用 new 類名(參數);
所以:一般來說, 只要寫了有參的構造函數,都要寫一個無參的構造函數
⑽ java進行構造方法的時候,為什麼一定要有一個無參構造方法
1.子類繼承父抄類的時候會自動繼承父類的默認構造函數(也就是繼承那個無參數的構造函數)。
2.無參構造函數是所有構成函數的父類,如果沒有寫那個默認的不帶參數的構造函數的話,繼承的時候子類就會報錯,因為系統不知道要不繼承哪個構造函數,必須明確的使用super()關鍵字來描述。所以一般為了避免這種錯誤的發生,在有帶有多個構造函數的類裡面都會寫一個不帶參數的構造函數。
出自育知同創教育,望採納