溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何辨別java中的構(gòu)造方法和普通方法

發(fā)布時(shí)間:2020-11-07 15:50:49 來(lái)源:億速云 閱讀:249 作者:Leah 欄目:開發(fā)技術(shù)

如何辨別java中的構(gòu)造方法和普通方法?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

1.普通方法:

定義:簡(jiǎn)單的說方法就是完成特定功能的代碼塊。

普通方法定義格式:

修飾符 返回值類型 方法名 (參數(shù)類型 參數(shù)名1,參數(shù)類型 參數(shù)名2,.........) { 函數(shù)體; return 返回值; }

返回值類型用于限定返回值的數(shù)據(jù)類型。

普通方法分為:有明確返回值的方法和沒有明確返回值的方法。

A.有明確返回值的方法的調(diào)用

可以單獨(dú)調(diào)用(無(wú)意義)、輸出調(diào)用、賦值調(diào)用(推薦)。

public static int sum (int a , int b)
{
  int c =a+b;
  return c ;
}
public static void main(String[] args)
{
      //sum(10,20); //單獨(dú)調(diào)用
      //System.out.println(sum(10,20)); //輸出調(diào)用
      int sum01 =sum(10,20); //賦值調(diào)用
}

B.沒有明確返回值的方法調(diào)用(void類型方法的調(diào)用)

只能單獨(dú)使用。

(如果一個(gè)方法沒有明確的返回值類型,方法定義中的“返回值類型”就用void代替,表示該方法無(wú)返回值類型。)

2.構(gòu)造方法

定義:簡(jiǎn)單的來(lái)說是給對(duì)象的數(shù)據(jù)進(jìn)行初始化的。

構(gòu)造方法是類的一個(gè)特殊的成員,在類實(shí)例化時(shí)會(huì)自動(dòng)調(diào)用。

構(gòu)造方法定義格式:

修飾符 方法名() { }

注意:

1.方法名與類名相同。

2.沒有返回值類型。 3.沒有具體的返回值。

構(gòu)造方法分為:無(wú)參構(gòu)造方法和有參構(gòu)造方法。

A.無(wú)參構(gòu)造方法

public class Student{
public Student(){          //無(wú)參構(gòu)造方法
System.out.println("無(wú)參方法被調(diào)用");
}
}
public class Test {
public static void main (String[] args){
Student  stu = new Student(); //實(shí)例化Student對(duì)象
}
}//該方法是無(wú)參的構(gòu)造方法,即構(gòu)造方法不接收參數(shù),執(zhí)行后輸出即可,無(wú)參的構(gòu)造方法被調(diào)用。

B.無(wú)參構(gòu)造方法

為一個(gè)屬性賦值有兩種方法:①、直接訪問對(duì)象屬性 ②、通過setXxx()方法

如果想在實(shí)例化對(duì)象的同時(shí)就為這個(gè)對(duì)象的屬性進(jìn)行賦值,可以通過帶參數(shù)的構(gòu)造方法來(lái)實(shí)現(xiàn)

public class Student{
private String name;
private int age;
public Student(String name,int age){       //有參構(gòu)造方法
  this name = name;
  this age = age ;
}
public void show (){
System.out.println("姓名:"+name+"年齡:"+age);
}
}
public class Test02(){
public static void main (String[]  args)
{
Student stu = new Student("王小五",25);   //實(shí)例化對(duì)象的同時(shí)賦值
stu.show();
}
}

構(gòu)造方法注意事項(xiàng):

1.java中的每一個(gè)類都至少有一個(gè)構(gòu)造方法,如果我們沒有創(chuàng)建,系統(tǒng)會(huì)為我們創(chuàng)建一個(gè)默認(rèn)的無(wú)參構(gòu)造方法。(不顯示代碼)

2.但是如果我們定義了構(gòu)造方法,系統(tǒng)就不會(huì)再為我們提供默認(rèn)的無(wú)參構(gòu)造方法了。這個(gè)時(shí)候想使用無(wú)參構(gòu)造方法必須自己定義。因?yàn)閷?shí)例化對(duì)象時(shí),不一定會(huì)輸入?yún)?shù),那么沒有無(wú)參的構(gòu)造方法,又不輸入?yún)?shù),就會(huì)出錯(cuò)。

3.構(gòu)造方法需要用public來(lái)修飾,若使用private,在其他類中無(wú)法將其實(shí)例化。

4.構(gòu)造方法是可以重載的。

補(bǔ)充知識(shí):java中 concat()方法 , "+"和append()方法的區(qū)別?

由下面的例子可看出,"+"和append()方法都可以對(duì)任意類型數(shù)據(jù)進(jìn)行拼接,而concat()方法則需要將其他類型的數(shù)據(jù)則要轉(zhuǎn)化為字符串后才能拼接

package 練習(xí)題;
import java.util.ArrayList;
import java.util.List;

public class 練習(xí)題29 {

 public static void main(String[] args) {
 List<Object> list=new ArrayList<Object>();
 list.add(100);
 list.add('日');
 list.add("沖刺,決勝高考!");
 
 StringBuffer sb=new StringBuffer();
 for(char i=0;i<list.size();i++){
  sb.append(list.get(i));
 }
 System.err.println(sb);
 
 String s1="";
 for(char i=0;i<list.size();i++){
  s1=s1+list.get(i);
 }
 System.err.println(s1);
 
 String s2="";
 for(char i=0;i<list.size();i++){
  s2=s2.concat( list.get(i).toString());
 }
 System.err.println(s2); 
 
 String str1="";
 System.err.println(str1.concat(null)); //運(yùn)行后報(bào)空指針異常NullPointerException
 String str2=null;
 System.err.println(str2.concat("asdf"));//運(yùn)行后報(bào)空指針異常NullPointerException
 }
}

輸出結(jié)果:

100日沖刺,決勝高考!

100日沖刺,決勝高考!

100日沖刺,決勝高考!

Exception in thread "main" java.lang.NullPointerException

concat()方法:String類的concat()方法(只能用于拼接字符串,不能拼接其他類型的數(shù)據(jù))將指定的字符串拼接到該字符串的末尾。并且字符串本身和拼接的字符串都不能為null,否則運(yùn)行程序后會(huì)報(bào)空指針異常NullPointerException(編譯時(shí)沒有報(bào)錯(cuò))。

"+":可以對(duì)字符,數(shù)字,字符串等數(shù)據(jù)類型的拼接

append()方法:可以對(duì)字符,數(shù)字,字符串等數(shù)據(jù)類型的拼接,結(jié)果返回一個(gè)StringBuffer類型的對(duì)象

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI