1. 程式人生 > 實用技巧 >【Java學習】06. 面向物件

【Java學習】06. 面向物件

本篇部落格主要介紹面向物件的基本內容。

類的基礎知識:

面向物件有兩個最基本的概念:類和物件:

  • 物件(不是男女朋友(~ ̄▽ ̄)~):物件是類的一個例項,有屬性和行為。
  • 類:類是一個模板,它描述一類物件的屬性和行為。
    • 屬性:一個物件具有的特徵,如大小,顏色等。
    • 行為:一個物件能執行的動作

類的一般形式

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使用...接收可變長引數,並作為陣列返回。