java中的構造方法與其作用
阿新 • • 發佈:2018-12-26
-
什麼是構造方法呢?
- 方法名和類名相同
- 沒有返回值型別,連void都不能寫
- 沒有具體的返回值
構造方法分為無參構造方法與有參構造方法。
-
先來看一下最簡單的無參構造方法:
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 classStudent { 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行報錯了。為什麼呢?
因為,當我們給出了構造方法時,系統就不再提供預設的構造方法供我們使用。
所以,我們最好手動寫一下無參的構造方法。
-
構造方法的作用:
有了類,就是有了可以重用的程式碼,但是我怎麼產生這個物件呢。必須要例項化這個類(當然這不是唯一產生物件的途徑,比如單例模式,但本質上說所有途徑都是一樣的)。那麼就要用到構造方法。即告訴程式我現在要例項化一個物件了,你給我馬上分配記憶體。將記憶體的首地址賦給我指定的類物件。而且有時候你需要傳遞引數到函式裡面,有了建構函式就方便了。