1. 程式人生 > >java中的構造方法與其作用

java中的構造方法與其作用

  • 什麼是構造方法呢?

  1. 方法名和類名相同
  2. 沒有返回值型別,連void都不能寫
  3. 沒有具體的返回值

構造方法分為無參構造方法與有參構造方法。

 

  • 先來看一下最簡單的無參構造方法:

Student.java

1 package com.pr;
2 
3 public class Student {
4     public Student(){
5         System.out.println("這是一個構造方法");
6     }
7 }

StudentDemo.java

package com.pr;

public class StudentDemo { public static void main(String[] args){ Student s = new Student(); } }

輸出結果:這是一個構造方法

把Student.java的4-6行刪除了。可以發現StudentDemo.java沒有報錯。為什麼呢?

因為,如果我們沒有給出構造方法時,系統會提供一個預設的無參構造方法供我們使用。

 

  • 有參構造方法

Student.java

 1 package com.pr;
 2 
 3 public class
Student { 4 private String name; 5 private int age; 6 public Student(){} 7 public Student(String name){ 8 this.name = name; 9 } 10 public Student(int age){ 11 this.age = age; 12 } 13 public Student(String name,int age){ 14 this.name = name;
15 this.age = age; 16 } 17 public void show(){ 18 System.out.println("age:"+age+",name:"+name); 19 } 20 }

StudentDemo.java

 1 package com.pr;
 2 
 3 public class StudentDemo {
 4     public static void main(String[] args){
 5         Student s = new Student();
 6         s.show();
 7         Student s1 = new Student("小明");
 8         s1.show();
 9         Student s2 = new Student(20);
10         s2.show();
11         Student s3 = new Student("小明",18);
12         s3.show();
13     }
14 }

輸出結果為:

age:0,name:null
age:0,name:小明
age:20,name:null
age:18,name:小明

把Student.java的第6行刪除了,發現StudentDemo.java的第5行報錯了。為什麼呢?

因為,當我們給出了構造方法時,系統就不再提供預設的構造方法供我們使用。

所以,我們最好手動寫一下無參的構造方法。

還有需要注意的是,可以看出,構造方法可以被過載。

 

  • 構造方法的作用:

有了類,就是有了可以重用的程式碼,但是我怎麼產生這個物件呢。必須要例項化這個類(當然這不是唯一產生物件的途徑,比如單例模式,但本質上說所有途徑都是一樣的)。那麼就要用到構造方法。即告訴程式我現在要例項化一個物件了,你給我馬上分配記憶體。將記憶體的首地址賦給我指定的類物件。而且有時候你需要傳遞引數到函式裡面,有了建構函式就方便了。