1. 程式人生 > >Java學習心得——物件與類

Java學習心得——物件與類

 Java 的類與物件

   Java作為一門面向物件的語言,它支援很多的概念,例如:封裝,多型,繼承,類,物件等等。這篇文章裡主要講的是物件與類。

什麼是類

   類比較好理解,可以與”種類“,”類別“等概念聯絡起來理解。它一種描述那一類物件的行為或狀態的模板,因此一個類可以有很多物件。對於類的描述,在《巴郎AP計算機A》中是這樣說的:“A class is a software blueprint for implementing objects of given type.”大體意思是類是實現一種物件的一個軟體藍圖。這裡則可以將其作為分類或歸類來理解。

什麼是物件

   物件是類的一個例項,它有特定的行為與狀態。舉個例子。一隻狗是一個物件,他的行為有吃飯,睡覺,吠叫,它的狀態有顏色,名字,品種。 在《巴郎AP計算機A》中對物件是這樣描述的:”Every program that you write involves at least one thing that is being created or manipulated by the program. This thing, together with the operations that manipulate it, is called an object.”

這段話大體意思就是說,每個程式中都至少包含著一個程式被程式所創造或操縱的東西,這個東西本身與操縱它的操作並稱為物件。在這裡,我們可以將操縱他的方法理解為他的行為,這個東西本身則包含了它的狀態(屬性)。

類與變數

  下面是一個類的例項:

public class Cat{
 String breed;
 String color; 
 int age;
 void walking(){ 
  }
 void sleeping(){ 
  }
}

 一個類中可以包含以下型別的變數

1. 區域性變數 :在方法,構造方法或語句塊中被定義的變數被稱為區域性變數。宣告變數與初始化都在方法中。方法結束後變數自動銷燬。

2. 成員變數 :成員變數是定義在類中,方法之外的變數。這種變數在建立物件時例項化。成員變數可以被類中方法,構造方法和特定語句塊訪問。

3. 類變數 :類變數也宣告在類中,方法體之外,但是必須宣告為static型別。

 #一個類可以有多個方法,上圖的walking(),sleeping() 都是Cat類的方法。

構造方法

   每個類都含有構造方法,如果沒有顯性的定義構造方法,編譯器會為該類提供一個預設的構造方法。在建立物件時至少需要呼叫一個構造方法,它的名字必須與類名一致。一個類可以有多個構造方法。下面是一個構造方法的示例。

public class Cat{
    public Cat(){
    }
    public Cat(String breed){
    }
}

 # 在這個例程中,breed的是構造器的唯一引數。

建立物件

 物件是根據類來建立的,建立物件所使用的關鍵詞為“new”。建立物件的步驟為以下三步:

1. 宣告 :宣告物件的名稱與型別。

2. 例項化 :使用關鍵字new創造物件。

3. 初始化 :在建立物件過後呼叫構造方法初始化物件。

下面是一個關於建立物件的例子:

public class Puppy{
   public Puppy(String name){
      //這個構造器僅有一個引數:name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String []args){
      // 下面的語句將建立一個Puppy物件
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

該程式的輸出結果為:

小狗的名字是 : tommy

例項化變數與方法的訪問

 我們可以通過已建立的物件來訪問成員變數及成員方法,具體方法如下:

/* 例項化物件 */
Classname ObjectReference = new Constructor();
/* 訪問類中的變數 */
ObjectReference.variableName;
/* 訪問類中的方法 */
ObjectReference.MethodName();

例項

 在本篇文章的最後,這個例子展示瞭如何建立物件,訪問成員變數與方法。

public class Workers{
   int workerAge;
   public Workers(String name){
      // 這個構造器僅有一個引數:name
      System.out.println("員工的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       workerAge = age;
   }
 
   public int getAge( ){
       System.out.println("員工的年齡為 : " + workerAge ); 
       return workerAge;
   }
 
   public static void main(String []args){
      /* 建立物件 */
     Workers workers = new Workers( "Jack" );
      /* 通過方法來設定age */
      workers.setAge( 20 );
      /* 呼叫另一個方法獲取age */
      workers.getAge( );
      /*你也可以像下面這樣訪問成員變數 */
      System.out.println("變數值 : " + workers.workerAge ); 
   }
}

 通過編譯並執行上面的程式,我們可以得到以下結果:

員工的名字是 : Jack
員工的年齡為 : 20
變數值 : 20
# 謝謝觀看,侵刪。