java 方法 函数 区别_Java中的构造函数和方法之间的区别
Java方法一種方法用于探索對象的行為。
我們可以在方法的前面加上訪問修飾符。
方法必須具有返回類型,例如void,任何原始類型(int,char,float等),任何Object類型(Integer,Float,String等)。
Java編譯器不會隱式調(diào)用方法,我們需要顯式調(diào)用。
讓我們假設(shè)如果我們有一個(gè)類,并且在該類中,我們沒有任何單個(gè)方法,那么在這種情況下,java編譯器默認(rèn)不包含其自身的任何方法。
它不是必須具有與其類名稱相同的方法名稱,或者換句話說,方法名稱可以與或不與類名稱相同。
方法有兩種:沒有參數(shù)方法
參數(shù)化方法
i)沒有參數(shù)方法
沒有參數(shù)或參數(shù)的方法,換句話說,這種方法不帶任何參數(shù)的方法稱為無參數(shù)方法。
示例class?NoArgumentMethod?{
//無參數(shù)方法定義
void?display()?{
System.out.println("We?are?in?no?argument?method");
}
}
class?Main?{
public?static?void?main(String[]?args)?{
//創(chuàng)建一個(gè)NoArgumentMethod類的對象
NoArgumentMethod?nam?=?new?NoArgumentMethod();
//調(diào)用display()方法
nam.display();
}
}
輸出:E:\Programs>javac?Main.java
E:\Programs>java?Main
We?are?in?no?argument?method
ii)參數(shù)化方法
具有參數(shù)的方法,換句話說,這種類型的方法接受任何參數(shù),稱為參數(shù)化方法。
示例class?ParameterizedMethod?{
String?name;
//參數(shù)化方法定義
void?display(String?name)?{
System.out.println("The?name?is?"?+?name);
}
}
class?Main?{
public?static?void?main(String[]?args)?{
//創(chuàng)建一個(gè)ParameterizedMethod類的對象
ParameterizedMethod?pm?=?new?ParameterizedMethod();
//調(diào)用display()方法
pm.display("Rahul");
}
}
輸出結(jié)果E:\Programs>javac?Main.java
E:\Programs>java?Main
The?name?is?Rahul
Java構(gòu)造函數(shù)構(gòu)造函數(shù)是一種特殊的方法,它在創(chuàng)建對象時(shí)由JVM(Java虛擬機(jī))隱式調(diào)用。
構(gòu)造函數(shù)的目的是初始化對象的實(shí)例變量。
我們也可以在訪問說明符前面加上構(gòu)造函數(shù)。
構(gòu)造函數(shù)不能具有返回類型,即它不返回任何東西。
構(gòu)造函數(shù)是一個(gè)隱式調(diào)用的特殊函數(shù)(即,對于我們不需要顯式調(diào)用的用戶而言是有益的)。
假設(shè)我們有一個(gè)名為“ Constructor”的類,并且在該類中,我們不包含任何構(gòu)造函數(shù),因此在這種情況下,java編譯器將包含一個(gè)自己的默認(rèn)構(gòu)造函數(shù)。
它的名稱必須與構(gòu)造函數(shù)的類名稱相同,或者換句話說,構(gòu)造函數(shù)名稱必須與類名稱相同。
我們有三種類型的構(gòu)造函數(shù):默認(rèn)構(gòu)造函數(shù)
參數(shù)化構(gòu)造函數(shù)
復(fù)制構(gòu)造函數(shù)
i)默認(rèn)構(gòu)造函數(shù)
如果我們在類中不包含任何構(gòu)造函數(shù),則此默認(rèn)構(gòu)造函數(shù)將由編譯器隱式調(diào)用。默認(rèn)構(gòu)造函數(shù)沒有參數(shù),或者說沒有參數(shù)構(gòu)造函數(shù)。
示例class?DefaultConstructor?{
//構(gòu)造函數(shù)定義????DefaultConstructor()?{
System.out.println("We?are?in?default?constructor");
}
}
class?Main?{
public?static?void?main(String[]?args)?{
//調(diào)用默認(rèn)構(gòu)造函數(shù)
DefaultConstructor?dc?=?new?DefaultConstructor();
}
}
輸出結(jié)果E:\Programs>javac?Main.java
E:\Programs>java?Main
We?are?in?default?constructor
ii)參數(shù)化構(gòu)造函數(shù)
具有參數(shù)的構(gòu)造函數(shù)稱為參數(shù)化構(gòu)造函數(shù)。如果我們想用我們的值初始化實(shí)例變量,而該構(gòu)造函數(shù)不會被編譯器隱式調(diào)用。
示例class?ParameterizedConstructor?{
String?name;
//構(gòu)造函數(shù)定義
ParameterizedConstructor(String?name)?{
this.name?=?name;
}
}
class?Main?{
public?static?void?main(String[]?args)?{
//調(diào)用參數(shù)化構(gòu)造函數(shù)
ParameterizedConstructor?pc?=?new?ParameterizedConstructor("Preeti");
System.out.println("The?name?is?:"?+?pc.name);
}
}
輸出結(jié)果E:\Programs>javac?Main.java
E:\Programs>java?Main
The?name?is?:?Preeti
iii)復(fù)制構(gòu)造函數(shù)
具有一個(gè)參數(shù)的構(gòu)造函數(shù),該參數(shù)是同一類的引用。
示例class?CopyConstructor?{
String?name;
//構(gòu)造函數(shù)定義
CopyConstructor(String?name)?{
this.name?=?name;
}
}
class?Main?{
public?static?void?main(String[]?args)?{
//調(diào)用構(gòu)造函數(shù)
CopyConstructor?cc1?=?new?CopyConstructor("Preeti");
//復(fù)制的cc1構(gòu)造函數(shù)
CopyConstructor?cc2?=?cc1;
System.out.println("The?value?of?cc1?is?:"?+?cc1.name);
System.out.println("The?value?of?cc2?is?:"?+?cc2.name);
}
}
輸出結(jié)果E:\Programs>javac?Main.java
E:\Programs>java?Main
The?value?of?cc1?is?:Preeti
The?value?of?cc2?is?:Preeti
總結(jié)
以上是生活随笔為你收集整理的java 方法 函数 区别_Java中的构造函数和方法之间的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java格式化星期_在Java中使用Si
- 下一篇: java 克隆对象工具类_关于dorad