java對象構造
A. java之構造和對象問題
1.如果當用戶沒有定義構造方法時,編譯器會為類自動添加形如類名() 的無參構造方法,但是一但自己定義了構造 方法,編譯器將不再自動添加.
也就是說構造方法不是必須有的.如果你之前一直未自定義構造方法,當你new一個對象時,系統會自動調用默認的一個無參構造方法,給你對象的實例變數賦初值,比如int型默認為0.但一旦你自己定義了構造方法並new一個對象後,你再new一個對象時系統將不再為你自動提供默認的無參構造方法,那麼你必須自己定義一個構造方法,否則編譯出錯
2 構造器可以不只一個,這叫做方法的重載
3.構造方法不但是要給對象的實例變數賦初值,更重要的是還和new一起來創建對象 ,如果你的對象沒有實例變數,當然不用給對象的實例變數賦初值,也就不需要有參的構造器.但這在實際應用中,是毫無意義的.因為沒有實例變數的對象什麼也幹不了.
B. java中為什麼要有構造方法
一個對象被創建出來時,經常要先做一些事這個對象才能正常使用,也可以說是准備工作,比如給這個對象賦些初始值,或者先運行一些別的方法。x0dx0a把那些在創建時要做的事寫在構造方法里,每次創建就會被執行一遍。x0dx0ax0dx0a就你描述的情況,默認構造方法其實就什麼都沒做啊,但是會有對象創建的時候就要賦值一些成員變數的情況,這種就要自定義構造方法,重載啊。可能你會說為什麼非得要構造的時候就賦值呢,不能對象創建出來,set成員變數就得了。原因:1是麻煩。2是會有很多人創建了對象,忘記了set某些成員變數,然後直接去調用對象的別的方法,這時可能就會由於對象未賦值而拋出異常。
C. java面向對象中,構造方法要注意哪些方面
java面向對象中,構造方法要注意哪些方面
1.構造方法不能被子類繼承,但可以被子類調用,可以重載(同一個類)。
2.方法名與類名相同
3.不能聲明返回類型
4.不能被static、final、synchronized、abstarct修飾,不能有return語句返回值
5.有3種構造方法,分別為隱式無慘(默認構造方法)、顯示無參、顯示有參構造方法。
6.如果在類中自己編寫了一個構造方法,編譯器就不會提供那個默認無參構造方法,如果還想調用那個無參構造方法創建實例,就必須明確添加這個默認構造方法。
D. JAVA構造方法
構造方法的方法名必須與類名一樣。
構造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。
構造方法不能作用是完成對象的初始化工作,他能夠把定義對象時的參數傳遞給對象的域。
構造方法不能由編程人員調用,而要系統調用。
構造方法可以重載,以參數的個數,類型,或排序順序區分。
例子:
1;單個構造函數方法;』
E. java中構造函數的特點
1.構造函數的命名必須和類名完全相同。在此編譯器中普通函數可以和構造函數同名,但是必須帶有返回值。
2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態。這就保證了它不僅不用自動返回,而且根本不能有任何選擇。而其他方法都有返回值。
3.構造函數不能被直接調用,必須通過運算符在創建對象時才會自動調用。而一般的方法是在程序執行到它的時候被調用的。
4.當定義一個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略。不過此編譯器會提供一個默認的構造函數。此默認構造函數是不帶參數的,而一般的方法不存在這一特點。
F. java對象和構造方法的區別
對象可以說是一個類的實例化,類你可以一個模板,而構造方法就是這個模板提供的入口,你通過這個入口能new一個 對象舉個例子:
例如:Test是一個類,那麼 Test t = new Test();這個語句叫做類的實例化,即t是Test類的一個實例,這個t就是一個Test類型的對象,在這個實例化過程中,也就是new Test();系統會自動調用Test類中的構造方法,如果你在定義Test類的時候寫了無參構造方法Test(),那麼就調用這個方法,如果你沒寫構造方法系統會默認有一個無參構造方法,如果你寫了有參構造,那麼new Test();會報錯,必須寫成:new Test(參數);構造方法的作用就是規定在創建這個實例的時候想做的事,比如你可以在這里給Test類的私有變數賦值
G. java中怎樣構造一個新文件對象
.代表當前目錄
File file = new File(「.」);
這句話的意思是創建一個文件夾,路徑是當前目錄。(File可以是文件也可以是文件夾)
File tempFile= file.createTempFile(「abc」,「.txt」,file);
這句話的意思是,在當前路徑文件夾下創建abc.txt文件。file在上面已經定義
H. Java中對象創建和構造方運行順序
new 對象的時候實際上就是執行了對應的構造方法。例如:Person p = new Person(); 實際上new Person()的時候就是在執行Person()構造器。下面用一個程序來說明:
public class Person {
private int i = 2;
public Person(){
System.out.println("執行了構造器......");
System.out.println("構造器執行完的當前時間:"+System.currentTimeMillis());
}
public static void main(String[] args) throws IOException {
System.out.println(new Person().i);
System.out.println("創建完對象的當前時間:"+System.currentTimeMillis());
}
}
首先程序從main方法開始執行,new Person()創建Person對象,但是程序不是直接列印對象的i的值,而是先列印「執行了構造器......」這句話。你還可以將 main方法裡面的內容改成如下所示:
public static void main(String[] args) throws IOException {
System.out.println("開始時間:"+System.currentTimeMillis());
new Person();
Person p = new Person();
System.out.println(p.i);
System.out.println("創建完對象的當前時間:"+System.currentTimeMillis());
}
這樣,你就很清楚的知道了。還有不懂得,可以繼續問。
I. Java創建對象為什麼要有構造函數
這么說吧, 每個方法都有它的功能, 那麼構造方法是什麼功能呢 ?
就是 初始化數據! 簡單來說 , 就是「初始化」功能,例如
public class Test {
public Test(){............初始化數據(包括屬性之類的,其實就是針對生成的「對象」,例如下面的me)........}
public static void main(String args[]){
Test me = new Test();
}
}