【Java學習】06. 面向物件
阿新 • • 發佈:2020-12-19
本篇部落格主要介紹面向物件的基本內容。
類的基礎知識:
面向物件有兩個最基本的概念:類和物件:
- 物件(不是男女朋友(~ ̄▽ ̄)~):物件是類的一個例項,有屬性和行為。
- 類:類是一個模板,它描述一類物件的屬性和行為。
- 屬性:一個物件具有的特徵,如大小,顏色等。
- 行為:一個物件能執行的動作
類的一般形式
class classname{
type instance-varible1;
...
type methodname(){
// code
}
}
一個簡單的類
例如下面我們建立一個類:
public class People{ String name; String sex; int age; void eat() { System.out.println("eat"); } void run() { System.out.println("run"); } void sleep(){ System.out.println("sleep"); } }
在上面這個類中我們建立了人類(相對於我們是女媧在計算機中造人哈)。對於人來說,有屬性:姓名、性別、年齡。有行為:吃、跑、睡。這些只是一個描述,而不具體的代表某一個人,我們要制定一個具體的人,就得知道一個人具體在哪裡。就是說會佔據一定的記憶體空間。
例項化(宣告)物件
下面我們來將上面的類進行例項化:
People li = new People();
這樣就例項化出來一個People li出來。
可以將上面的程式碼分為兩步:
People li; //將變數li宣告為對People物件的引用,但li的值仍為NUll,引用li會產生編譯錯誤。 li = new People(); //將引用物件賦值給了實際的物件,這裡儲存的是物件的地址
new運算子:為物件分配記憶體,當記憶體空間不足時會發送執行時異常
物件的變數賦值:
看一下這個例子:
People li = new People();
People zhao = li;
現在有這麼的一個問題:
li和zhao是同一個例項嗎?還是zhao是對li的副本的引用。
這一點如果將上面一個例子能理解,那麼就不會出什麼岔子了,這裡zhao得到的只是li的記憶體地址,所以指向的物件會是同一個物件。
方法
方法的一般形式
type name(parameter-list){
// code
return 值; // 返回值,可選。
}
其中type指定了返回方法的資料型別,不返回值,必須指定為void。
在上面的例項中,我們已經將三個方法放入到我們的類中。在例項化後我們可以通過對應的例項名稱.方法名
li.run();
返回值
當函式有返回值時才可以使用變數名進行接收。並且這個值的型別必須是在方法名前指定好的型別。並且接收返回值的變數必須是與返回值的型別相容的型別。
引數
方法接收引數在括號內接收引數列表,引數列表中的引數需要宣告引數型別。普通的新增引數就不多說了,來說一下可變長引數,舉一個例子如下:
public void print(String... args) {
for (int i = 0; i < args.length; i++) {
out.println(args[i]);
}
}
java使用...
接收可變長引數,並作為陣列返回。