Java

Java
2010年06月22日
     運行結果
  c:\>java PassTest
  Original Int Value is : 11
  Int Value after Change is: 11
  Original ptValue is: 101.0
  ptValue after Change is : 99.0
    [b]◇ 方法體[/b]
    方法體是對方法的實現,它包括局部變量的聲明以及所有合法的Java指令。方法體中聲明的局部變量的作用域在該方法內部。若局部變量與類的成員變量同名,則類的成員變量被隱藏。
    例3-2 說明了局部變量z和類成員變量z的作用域是不同的。
  【例3-2】
    import java.io.*;
    class Variable{
    int x=0,y=0,z=0;              //類的成員變量
    void init(int x,int y) {
    this.x=x; this.y=y;
    int z=5;                 //局部變量
    System.out.println("** in init**");
    System.out.println("x="+x+" y="+y+"**before init**");
    System.out.println("x="+v.x+" y="+ v.y+"**after init**");
    System.out.println("x="+v.x+ " y="+ v.y+"COLOR: red">運行結果
  c:\>java VariableTest
  **before init**
  x=0 y=0 z=0
  ** in init **
  x=20 y=30 z=5
  **after init**
  x=20 y=30 z=0
    上例中我們用到了this,這是因爲init()方法的參數名與類的成員變量x,y的名字相同,而參數名會隱藏成員變量,所以在方法中,爲了區別參數和類的成員變量,我們必須使用this。this-----用在一個方法中引用當前對象,它的值是調用該方法的對象。返回值須與返回類型一致,或者完全相同,或是其子類。當返回類型是接口時,返回值必須實現該接口。
   5.方法重載
   
    方法重載是指多個方法享有相同的名字,但是這些方法的參數必須不同,或者是參數的個數不同,或者是參數類型不同。返回類型不能用來區分重載的方法。
    參數類型的區分度一定要足夠,例如不能是同一簡單類型的參數,如int與long。
  【例3-3】
    import java.io.*;
    class MethodOverloading{
    void receive(int i) {
    System.out.println("Receive one int data");
    System.out.println("i="+i);
    }
    void receive(int x, int y) {
    System.out.println("Receive two int datas");
    System.out.println("x="+x+"COLOR: red">運行結果(編譯器會根據參數的個數和類型來決定當前所使用的方法)
  c:\>java MethodOverloadingTest
  Receive one int data
  i=1
  Receive two int datas
  x=2 y=3
   6. 構造方法
    [b]◇[/b] 構造方法是一個特殊的方法。Java 中的每個類都有構造方法,用來初始化該類的一個對象。
    [b]◇[/b] 構造方法具有和類名相同的名稱,而且不返回任何數據類型。
    [b]◇[/b] 重載經常用於構造方法。
    [b]◇[/b] 構造方法只能由new運算符調用
  【例3-4】
    class Point{
    int x,y;
    Point(){
    x=0; y=0;
    }
    Point(int x, int y){
    this.x=x;
    this.y=y;
      }
    }
  [b]3[/b][b].2.2 對象[/b]
    類實例化可生成對象,對象通過消息傳遞來進行交互。消息傳遞即激活指定的某個對象的方法以改變其狀態或讓它產生一定的行爲。一個對象的生命週期包括三個階段:生成、使用和消除。
   1. 對象的生成
    對象的生成包括聲明、實例化和初始化。
    格式爲:
    type objectName=new type([paramlist]);
    [b]◇ 聲明[/b]:type objectName
    聲明並不爲對象分配內存空間,而只是分配一個引用空間;對象的引用類似於指針,是32位的地址空間,它的值指向一箇中間的數據結構,它存儲有關數據類型的信息以及當前對象所在的堆的地址,而對於對象所在的實際的內存地址是不可操作的,這就保證了安全性。
    
    [b]◇ 實例化[/b]:運算符new爲對象分配內存空間,它調用對象的構造方法,返回引用;一個類的不同對象分別佔據不同的內存空間。
    [b]◇ 生成[/b]:執行構造方法,進行初始化;根據參數不同調用相應的構造方法。
   2. 對象的使用
    通過運算符"."可以實現對變量的訪問和方法的調用。變量和方法可以通過設定訪問權限來限制其它對象對它的訪問。
  [b]  ◇調用對象的變量[/b]
    格式:objectReference.variable[b][b]
[/b][/b]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章