JAVA初級(六)物件和類(1)基礎介紹和使用,構造方法介紹
我是導航
1,物件和類基本概念
物件:物件是類的一個例項(物件不是找個女朋友),有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個模板,它描述一類物件的行為和狀態。–來自菜鳥教程
比如,我們有一個蘋果手機,他有拍照,打電話等功能.有開機待機啥的狀態.有尺寸等屬性.還有appStore,這個iphone就能稱為是物件.而所有手機都有打電話等功能.手機就被稱為類
2,JAVA中物件和類的基礎使用
public class Phone { public double size=5.5; public void call(String phoneNum){ System.out.println("正在撥打電話:"+phoneNum); } public void size(){ System.out.println("這個電話的尺寸是:"+size); } public void picture(){ System.out.println("啟動拍照"); } }
定義一個類,就這麼寫 public class 類名
比如這這段程式碼定義一個手機類.
它有撥打電話的功能call();有拍照功能picture();有顯示尺寸的功能size();還有尺寸屬性.這樣我們就定義出了一個手機類。
但如果我們要使用這三個功能怎麼做?
public static void main(String[] args) { Phone phone = new Phone(); phone.call("10086");//撥打電話 phone.size();//顯示尺寸 phone.picture();//拍照 }
結果輸出:
正在撥打電話:10086
這個電話的尺寸是:5.5
啟動拍照
這段程式碼的意思就是,你想要使用這三個功能,你是不是首先得搞到一個手機?.那麼如何搞到這個手機呢?
Phone phone = new Phone(); 這樣就搞到一個手機了。這個過程稱為建立一個物件.就是從手機類中建立一個物件出來。
類名 物件名稱 = new 類名();這樣就能建立一個物件了.
new 這個關鍵字就是建立.
創建出來物件了,拿到手機了,那我們就能使用它的東西了.
直接物件名稱.方法() 就能直接使用功能了。就像上面的phone.size()直接顯示尺寸.
3,類的組成
那麼在JAVA中一個類主要由什麼組成?
構造方法,成員變數,方法.
1,構造方法
什麼是構造方法?就是在建立一個物件時同時會執行的方法.
也就是會自動呼叫的初始化方法.
在JAVA中怎麼寫?
public class Phone {
public Phone(){
System.out.println("建立了一個phone物件");
}
}
構造方法就在類裡面這麼寫, 修飾符 類名([引數]){}
[]表示可選
方法名和類名一致,沒有返回值.
然後直接執行以下這段程式碼
public static void main(String[] args) {
Phone phone = new Phone();
}
結果輸出
到這,應該就能初步瞭解構造方法了吧
那麼假如這個手機物件啟動時馬上就撥打我給他設定的電話。如何做?
public class Phone {
public Phone(String phoneNum){
System.out.println("正在撥打電話:"+phoneNum);
}
}
這樣,在構造方法裡面寫一個引數.
然後執行以下程式碼
public static void main(String[] args) {
Phone phone = new Phone("10086");
}
結果輸出
到這應該就能體會到構造方法的作用了吧?
但如果我有時候要它打電話有時候要它拍照怎麼辦?
public class Phone {
public Phone(String phoneNum){
System.out.println("正在撥打電話:"+phoneNum);
}
public Phone(){
System.out.println("啟動拍照");
}
}
這樣寫,
然後執行以下語句
public static void main(String[] args) {
Phone phone = new Phone();//我要它拍照
Phone phone1 = new Phone("10086");//我要它打電話給10086
}
結果輸出:
到這應該就能進一步的瞭解構造方法了吧?建立一個物件它只能執行一個構造方法.至於要執行哪一個,根據你的引數來選擇.
總結
1,構造方法是什麼?
建立物件時執行的方法
2,有多個構造方法時,如何選擇?
根據輸入的引數選擇
注意點:
1,如果你建立了一個帶引數的構造方法,比如上面的打電話.而沒有建立沒有引數的構造方法,那麼此時你這麼寫Phone phone = new Phone();會報錯.因為它沒有不帶引數的構造方法.
->因此,如果你需要這樣寫Phone phone = new Phone();不報錯,那就加上無參的構造方法.
2,你發現我一開始沒有寫構造方法,Phone phone = new Phone();它也不報錯.->總結,不寫構造方法時.系統會預設建立一個無參的構造方法.