1. 程式人生 > 程式設計 >java中構造方法和普通方法的區別說明

java中構造方法和普通方法的區別說明

1.普通方法:

定義:簡單的說方法就是完成特定功能的程式碼塊。

普通方法定義格式:

修飾符 返回值型別 方法名 (引數型別 引數名1,引數型別 引數名2,.........) { 函式體; return 返回值; }

返回值型別用於限定返回值的資料型別。

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

A.有明確返回值的方法的呼叫

可以單獨呼叫(無意義)、輸出呼叫、賦值呼叫(推薦)。

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

B.沒有明確返回值的方法呼叫(void型別方法的呼叫)

只能單獨使用。

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

2.構造方法

定義:簡單的來說是給物件的資料進行初始化的。

構造方法是類的一個特殊的成員,在類例項化時會自動呼叫。

構造方法定義格式:

修飾符 方法名() { }

注意:

1.方法名與類名相同。

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

構造方法分為:無參構造方法和有參構造方法。

A.無參構造方法

public class Student{
public Student(){          //無參構造方法
System.out.println("無參方法被呼叫");
}
}
public class Test {
public static void main (String[] args){
Student  stu = new Student(); //例項化Student物件
}
}//該方法是無參的構造方法,即構造方法不接收引數,執行後輸出即可,無參的構造方法被呼叫。

B.無參構造方法

為一個屬性賦值有兩種方法:①、直接訪問物件屬性 ②、通過setXxx()方法

如果想在例項化物件的同時就為這個物件的屬性進行賦值,可以通過帶引數的構造方法來實現

public class Student{
private String name;
private int age;
public Student(String name,int age){       //有參構造方法
  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);   //例項化物件的同時賦值
stu.show();
}
}

構造方法注意事項:

1.java中的每一個類都至少有一個構造方法,如果我們沒有建立,系統會為我們建立一個預設的無參構造方法。(不顯示程式碼)

2.但是如果我們定義了構造方法,系統就不會再為我們提供預設的無參構造方法了。這個時候想使用無參構造方法必須自己定義。因為例項化物件時,不一定會輸入引數,那麼沒有無參的構造方法,又不輸入引數,就會出錯。

3.構造方法需要用public來修飾,若使用private,在其他類中無法將其例項化。

4.構造方法是可以過載的。

補充知識:java中 concat()方法,"+"和append()方法的區別?

由下面的例子可看出,"+"和append()方法都可以對任意型別資料進行拼接,而concat()方法則需要將其他型別的資料則要轉化為字串後才能拼接

package 練習題;
import java.util.ArrayList;
import java.util.List;

public class 練習題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)); //執行後報空指標異常NullPointerException
 String str2=null;
 System.err.println(str2.concat("asdf"));//執行後報空指標異常NullPointerException
 }
}

輸出結果:

100日衝刺,決勝高考!

100日衝刺,決勝高考!

Exception in thread "main" java.lang.NullPointerException

concat()方法:String類的concat()方法(只能用於拼接字串,不能拼接其他型別的資料)將指定的字串拼接到該字串的末尾。並且字串本身和拼接的字串都不能為null,否則執行程式後會報空指標異常NullPointerException(編譯時沒有報錯)。

"+":可以對字元,數字,字串等資料型別的拼接

append()方法:可以對字元,數字,字串等資料型別的拼接,結果返回一個StringBuffer型別的物件

以上這篇java中構造方法和普通方法的區別說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。