2017年5月16日 星期二

OOP入門-3 method in class

前一期(連結在此)提到了class的基本概念,並預告了這一期會介紹method(方法),就讓我們來好好了解一下吧


之前我們用class建造了一台車,車有三個變數,x,y,ori(代表orientation,方向的意思,我們假設這裡只有在X軸上移動),所以Java code 在增加了method 後如下,其中code 內還有一個重點,就是this的使用,在java內我們可以讓instance variable和costructor的參數名稱相同,只是需要使用this這個方法,還有就是private和public在這裡就能看出差別了!private表示定義的東西只有自己class可以用,而public則是能由其他class調用,之所以這樣區別,則是物件導向內一個很重要的概念,封裝(encapsulation),意思是我們不需要知道class的詳細內容,我們只需要知道如何操作就好(就像我們開車XD)
完整code如下:
public class Car{

  private int x;//instance variable
  private int y;
  private int ori;

/**below shows constrcutor**/
  public Car(int x,int y, int ori){
    this.x=x;
    this.y=y;
    this.ori=ori;
  }
  public void drive(int dis)
  {
    x=x+ori*dis;
  }
  
  public int showori(){
      return ori;
  }

}

public class test{
   
  public static void main(String[] args){
     Car car1=new Car(1,1,1);//create new car
     System.out.println(car1.showori());//show the orientation 
  }
}

這裡有個小問題歐,如果今天我們有一個method在class內,可是class內沒有object,那會是甚麼情形呢我們把這種method稱為static method,也就是在宣告的時候一定要加上static 關鍵字,否則就會compilation error(冏),另外還有一個很類似的詞,被稱為static variable,意思是在一個class內,不屬於object的性質,也就是不是instance variable啦,同樣也是宣告的時候要加上static!有了這兩個強力武器之後,我們對OOP就有一定程度的認識囉!其他的就下期再會吧!

沒有留言:

張貼留言