物件導向程式設計

 

 

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

 

 


授課教師:陳慶瀚

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

E-mail : pierre@isu.edu.tw   

 


5.4 封裝(encapsulation)

保護資料成員:使用private

較不安全的設計方式:

     Car c = new Car("MO2078", 200);
      c.speed = 150.0;
    
較安全的設計方式:

    public class Car 

    {
      private String licensePlate; 
      private double speed;        
      private double maxSpeed;   
      public Car(String licensePlate, double maxSpeed) 

      {
        this.licensePlate = licensePlate; 
        this.speed  = 0.0;
        if (maxSpeed >= 0.0) this.maxSpeed = maxSpeed;
        else maxSpeed = 0.0;    
      }
      public String getLicensePlate() 

      {
        return this.licensePlate;
      }
      public double getMaxSpeed() 

      {
        return this.speed;
      }
      public double getSpeed() 

      {
        return this.maxSpeed;
      }
      public void setLicensePlate(String licensePlate) 

      {
        this.licensePlate = licensePlate;
      }
      public void floorIt() 

      {
        this.speed = this.maxSpeed;  
      }
      public void accelerate(double deltaV) 

      {
         this.speed = this.speed + deltaV;
         if (this.speed > this.maxSpeed) 

         {
           this.speed = this.maxSpeed; 
         }
         if (this.speed <  0.0) 

         {
           this.speed = 0.0; 
         }       
      }
    }

不同等級的存取成員變數權限

     

    任意兩個物件之間必定有下列四種關係之一:

    1. 兩個物件屬於同一個類別.

    2. 一個物件類別是另一個物件類別的子類別( subclass).

    3. 兩個物件類別位於同一package.

    4. 兩個物件類別是獨立的。

    想要讓所有物件都能存取的成員變數,就宣告 public.

    只有關係1的物件才能存取的成員變數 ,就宣告private.

    關係1,2,3都能 存取的成員變數 ,就宣告protected.

     

 


課堂練習:


 

物件導向程式設計

義守大學電機系 陳慶瀚

2001.11.06