物件導向程式設計

 

 

第五章、Java物件導向程式設計

 

 


授課教師:陳慶瀚

WWW : http://www.miat.ee.isu.edu.tw/java

E-mail : pierre@isu.edu.tw   

 


5.1 物件(object)與類別(class)

 

  • 類別是一群基本資料型態的變數和專屬函式的集合。

  • 物件是類別的一個instance。

  • 類別是一群具有共同屬性的物件的表示方法。

  • 類別是變數;物件是變數值。

  • 類別存在於設計階段;物件存在於執行階段。

  • 物件導向設計在於設計類別,物件僅在程式被執行時才會產生,當程式結束時,物件會被消滅。

  • 一個相同類別的不同物件具有相同的屬性,但可以有不同的屬性值;它們的方法和行為則相同。


Java物件類別發展流程


1.設計物件類別
public class Matrix
{
   void Matrix(int nrows, int ncols)
   {
       ......
   }
   ......
}


2.
宣告物件
public class Matrix
{
   void Matrix(int nrows, int ncols) 
   {
      ......
   }
   ......
}
 
public class ex
{
   public static void main(String[] args)
   {
      Matrix mat33;
   }
}

3.產生物件
public class Matrix
{
   void Matrix(int nrows, int ncols)
   {
      ......
   }
   ......
}
 
public class ex
{
   public static void main(String[] args)
   {
      Matrix mat33;
      mat = new Matrix(3,3);
   }
}
 
 
使用new配置物件的記憶體 

class Car 
{
   String licensePlate;
   double speed;
   double maxSpeed;
}

建造一個新物件的步驟:
Car c; //第一步驟:宣告一個Car的物件變數
c = new Car(); //第一步驟:使用new建造一個真實的物件

new 是建構運算子。

Car()是建構函式。 

可以把兩個步驟合併: 

Car c = new Car();


課堂練習:

 

設計一個Circle的物件類別。

 

從兩個方向分析Circle物件類別:

 

1. Circle的屬性─資料

2. Circle的功能─函式

 

Circle的屬性:圓心座標、半徑、...

Circle的功能:求圓週長、求面積、...

 

public class Circle

{

   public double x,y;

   public double r;

   public double getCirCumf( )

   { 

      return 2*3.14159*r;

   } 

   public double getArea( )

   {

      return 3.14159*r*r;

   }

}

 

請在Circle的物件類別加上一個平移(shift)的功能:

 

void shift(double dx, double dy)

 

 


 

物件導向程式設計

義守大學電機系 陳慶瀚

2001.11.06