1. 程式人生 > 其它 >類與物件(面向物件程式設計的關鍵思想)

類與物件(面向物件程式設計的關鍵思想)

面向物件程式設計的重點:類與物件

類與物件的一些基本概念

  1. 類的定義格式:

    [修飾符] class [extents 父類名] [implements 介面列表]{

    ... //類體部分

    }

  2. 類體部分包括類的屬性和方法。

  3. 物件的建立及引用:定義Java類後,就可以使用“new+構造方法”來建立類的物件,並將建立的物件賦值給某個引用變數,進而通過”引用變數名.屬性(或方法)“來訪問物件的屬性(或方法)。

  4. 建立物件即為對類的例項化,當建立了一個物件時,系統將自動呼叫物件的構造方法,並給例項變數賦初值。

構造方法

  1. 構造方法的特點:

    • 方法名要與類名一致

    • 構造方法沒有返回值

  2. 構造方法的主要作用就是給物件的屬性賦值

  3. 需要注意的是:當類中沒有建立構造方法時,系統將自動建立一個無引數且為空的構造方法。若建立了有參的構造方法,系統將不再自動建立無參構造方法,此時需要自己建立,否則當建立的物件不含引數時,系統將報錯。

  4. 建立建構函式的快捷方式:Alt+ins

變數的作用域

1.  變數的作用域也稱變數的有效範圍,它是指程式中的一個區域,變數在其作用域內可以被訪問。作用域也決定Java執行系統什麼時候為變數建立和釋放記憶體。根據變數在程式中宣告的位置,可以將變數分為以下4種情形:

(1)成員變數:其作用域是整個類體。成員變數定義時系統會自動賦預設初值。成員變數包括:例項變數(例項變數又稱類的屬性,例項變數必須通過物件來訪問)、類變數(靜態變數)、常量。舉例:

public class Variable{
   public int a; //例項變數
   private String b;   //例項變數
   public static int c; //類變數(加了static修飾符)
   final String d="常量"; //常量
}

(2)區域性變數:在方法內部或一小段程式碼中定義的變數。方法內定義的變數在整個方法內有效,而迴圈內定義的區域性變數只在迴圈內有效。如:

public class Variable{
   public static void method{ //定義了一個method方法
       int a=1;
       int b=2; //變數a,b的作用域為method方法內
  for(i=0;i>9;i++){ //變數i由於實在迴圈塊中定義的,所以其作用域僅為整個for迴圈
           a++;
           b--;
      }
  }
}

注意:區域性變數在定義時,系統不會賦預設值。

(3)方法引數:作用域是整個方法(與區域性變數相同,只不過定義的位置不同,方法引數定義在形參表中,而區域性變數則定義於方法體內)。如:

public class Variable{
   public void method(int a){
       a++;
  } //方法參變數在整個方法內有效
}

(4)異常處理引數:與方法引數作用類似,其作用範圍是catch後面跟隨的異常處理塊。


  1. 變數的作用域舉例

    public class Scope{
       int x=1; //成員變數x
       int y; //成員變數y
       public void method(int a){ //方法參變數a
           int x=8; //區域性變數x,將成員變數x隱藏
           for(int i=1;i<a;i++) //控制迴圈體的區域性變數i
               y++;
           System.out.println("x="+x+",y="+y+",a="+a);
      }
       public static void main(String[] args){
           Scope x=new Scope(); //方法內定義的區域性變數
           x.method(6);
      }
    }

    【執行結果】
    x=8,y=5,a=6

類變數和靜態方法

用static修飾符修飾的屬性是僅屬於類的靜態屬性,相應的成員變數變數也稱類變數或靜態變數。

  1. 類變數的訪問形式

  • 類變數可以通過類或物件名作字首來訪問,在本類中可以直接以變數名訪問。

  • 靜態變數在儲存上歸屬類空間,不依賴如何物件,通過物件來訪問靜態變數實質上還是訪問類空間的那個變數。因此,類變數的值時統一的,對於同一類變數,如何地方對其值修改,其他地方的類變數也會隨之修改為相同值。

  1. 靜態方法

用static修飾符修飾的方法叫靜態方法。可通過類或物件訪問。在靜態方法的方法體內,可以處理類變數,也可以訪問其他靜態方法,但絕不能訪問如何歸屬物件空間的變數或方法(即非靜態變數或方法)。