java構造方法調用構造方法
⑴ java構造函數中調用構造函數的問題
不是,因為你初始化(即new)的時候調用的是無參構造函數,所以先調用的是無參構造函數,只不過你在無參構造函數中有調用了有參構造函數(即this(1)),所以當無參構造函數還沒有執行到System.out.println("3
Default!!");時,有參構造函數先執行了System.out.println("3
NotDefault!!");所以在輸出是會出現「3
NotDefault!!」在"3
Default!!"之前的情況.
⑵ Java中如何在無參構造方法中調用有參構造方法,希望最好有個例子,謝謝
一般正常的都是參數多的調用參數少的。有參數的調用無參數的居多。
當然你要無參調用的參的也可以。
你用無參,調用有參的。那你有參的參數你需要怎麼傳呢。當然如果換一個角度也可以。
我手寫下。沒經過IDE的。提供下思路。我有兩種思路,寫同一個功能。
public class Person{
private String name;
private int age;
//無參
public Person(){
this.name="張三";
this.age=20;
}
//有參
public Person(String name){
this.name=name;
}
//多參
public Person(String name,int age){
this(name);//調用一個參數的構造方法
this.age=age;
}
}
這是一種寫法比較常用的方法。寫第一種。用上面的例子直接寫
public Person(){
this("張三",20);//調用有參構造方法。設置默認值。和第一種方法功能一樣
}
public Person(String name,int age){
this.name=name;
this.age=age;
}
為了程序易讀性。一般。參數的擴展和構造方法的調用都是有一定的規律的。
有參調無參,多參調少參。。擴展參數的時候,最好保持原來的順序。
⑶ java構造方法
java構造方法也就是java構造函數,方法舉例如下圖:
java構造函數一般用來初始化成員屬性和成員方法的,即new對象產生後,就調用了對象了屬性和方法。
在現實生活中,很多事物一出現,就天生具有某些屬性和行為。比如人一出生,就有年齡、身高、體重、就會哭;汽車一出產,就有顏色、有外觀、可以運行等。這些,我們就可以將這些天然的屬性和行為定義在構造函數中,當new實例化對象時,也就具有這些屬性和方法了,沒必要再去重新定義了,從而加快了編程效率。
(3)java構造方法調用構造方法擴展閱讀:
java構造函數的特點:
1、函數名與類名相同
2、不用定義返回值類型。(不同於void類型返回值,void是沒有具體返回值類型;構造函數是連類型都沒有)
3、不可以寫return語句。(返回值類型都沒有,也就不需要return語句了)
⑷ 在一個類的構造方法中如何調用本類其他的構造方法
1,構造方法可以調用本類的其他方法。既然可以調用本類的屬性,那麼也就可以調用屬於本類的其他方法。
2,需要注意的是,如果要在構造方法里調用一個非靜態方法時,應該將該方法聲明為private。
因為如果這個類被其他類繼承成為父類時,這個方法不是private的又被子類所重載,這樣在實際創建子類的過程中遞歸調用到了父類的構造器時,父類構造器對這個方法的調用就會由於多態而實際上調用了子類的方法,當這個子類方法需要用到子類中實例變數的時候,就會由於變數沒有初始化而出現異常(子類中的實例變數沒有初始化這種情況還是會遇見的),這是Java不想看到的情況。
⑸ java 構造方法相互調用
可以的,但是構造方法的引用必須寫在當前構造函數的第一句:this();//有參數的要寫參數。
請採納答案,支持我一下。
⑹ java中如何實現構造方法的調用
public class Util {
public String name;
public Util(){
System.out.println("無參構造方法..");
}
public Util(String name){
this.name = name;
System.out.println("有參構造方法.."+name);
}
public static void main(String[] args) {
Util u1 = new Util();
Util u2 = new Util("小明");
}
}
⑺ 「java」中父類構造方法的調用怎麼操作
Father a = new Father(baba); 這跟直接調用另一個類並且實例化對象並沒多大區別把,不用繼承也能做到。調用父類的構造函數用super();關鍵字
public class Father {
public Father()
//{
//System.out.println("父類無參構造方法");
//} //不在父類中顯式聲明
public Father(String name)
{
System.out.println("父類有參構造方法");
}
}//父類
public class son extends Father {
public son()
{
super();
System.out.println("子類無參構造方法");
}//子類super();調用父類無參構造方法
public son(String name)
{
super(name);
System.out.println("子類有參構造方法");
}
}//子類
系統在Father類中默認一個無參構造函數,若不在父類中顯式的聲明,子類super();調用時提示父類的構造方法是未定義的。必須要顯式的聲明。不會調用默認的無參構造函數。用個編譯器具體編譯一下,看看到底報的什麼錯,對症下葯。
⑻ java在構造方法中怎麼調用其它構造方法
你好!
其實就是像調用函數一個調用傳入對應參數就可以了。
如:
ClassA{
intnum;
A()
{
A(5);
}
A(inta)
{
num=a;
}
}
⑼ java 構造方法調用。怎麼做
class A {
public A(){}
public A(String a){}
public A(String a,String b){
this();
}
public A(String a,String b,String c){
this(a,b);
......
}
不知道是不是想問的是這個。構造方法調用構造方法的話,可以採用「this」關鍵字來實現。
}
⑽ java怎麼在構造方法裡面調用另外一個構造方法啊,在線等,急
第三個 Students 不是構造方法,不能在其裡面調用另外的構造方法,正確如下:
classStudent{
intno;
Stringname;
intmath;
intjava;
intphy;
Student(intno,Stringname){
this(no,name,0,0,0); //調用構造方法
}
Student(intmath,intjava,intphy){
this(0,"",math,java,phy); //調用構造方法
}
Student(intno,Stringname,intmath,intjava,intphy){
this.no=no;
this.name=name;
this.math=math;
this.java=java;
this.phy=phy;
}
}