Java的自學之路-構造方法 的作用以及與set方法的區別
阿新 • • 發佈:2019-01-30
在java中,我們建立一個類時需要對類中的成員變數進行私有化,private..這樣可以提高程式碼的安全性,那麼在new 一個物件時,我們就不能對類中的成員變數直接賦值,此時可以在類中寫一個
方法,這個方法即set()方法,可以用物件的引用來呼叫set()方法,在set方法裡給成員變數進行賦值,如下程式碼所示:
class Demo_This { public static void main(String[] args) { System.out.println("Hello World!"); Person p = new Person(); p.setName("fengfeilin"); p.run(); } } class Person { private String name; private int age;
//<span style="color:#ff0000;">建立一個set方法,對private 成員變數賦值</span>
public void setName(String name){
this.name = name;
}
//<span style="color:#ff0000;">建立get方法,獲取private 成員變數的值</span> public String getName(){ return name; } public void setAge(int age){ age = ag; } public int getAge(){ return age; } public void run (){ System.out.println(name+"....."+age); } }
而構造方法不用建立 set(),get()方法,直接 在類中構造方法即可.所以構造方法的作用也是對成員變數進行初始化值.構造方法的格式:
a:方法名與類名相同
b:沒有返回值型別,連void都沒有
c:沒有具體的返回值 .可以不寫return語句,或者可以寫return;
如果在一個類中沒有構造方法,系統會預設幫我們寫一個無參的構造方法,裡面的語句是空語句,當我們用建立了有參的構造方法,此時系統是不會幫我們生成一個無參的構造方法,所以我們寫有參的構造方法,必須要把無參的構造方法寫上去.
class Demo_Construct { public static void main(String[] args) { Person p1 = new Person(); p1.show(); System.out.println("......................"); Person p2 = new Person("馮飛林",23); p2.show(); } } class Person { private String name; private int age;
//<span style="color:#ff0000;">無參的構造方法</span>
public Person(){
System.out.println("這是一個無參的構造方法");
}
//<span style="color:#ff0000;">有參的構造方法</span>
public Person(String name,int age){
this.name = name ;
this.age = age;
System.out.println("這是一個有參的構造方法");
}
public void show(){
System.out.println(name+"....."+age);
}
}
那麼構造方法與set(),get()方法的區別呢?
使用構造方法的理由:
1:構造方法注入使用強依賴規定,如果不給足夠的引數,物件則無法建立
2:由於Bean的依賴都通過構造方法設定了,那麼就不用寫更多的set方法,有助於減少程式碼量。
使用set(),get()方法的理由:
1:如果Bean有很多的依賴,那麼構造方法的引數列表會變的很長。
2: 如果一個物件有多種構造方法,構造方法會造成程式碼量增加。
3:如果構造方法中有兩個以上的引數型別相同,那麼將很難確定引數的用途.