程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java入門:理解構造器 (轉)

Java入門:理解構造器 (轉)

編輯:JAVA編程入門知識

  Java入門:理解構造器
   譯者:東方一蛇  
  
   理解構造器--構造器和方法的區別  
  
   摘要  
  
   要學習Java,你必須理解構造器。因為構造器可以提供許多非凡的方法,這個對於初學者經常混淆。但是,構造器和方法又有很多重要的區別。  
  
   原作者:Robert Nielsen 原站:www.javaworld.com  
  
  
  
   我們說構造器是一種方法,就象講澳大利亞的鴨嘴獸是一種哺育動物。(按:老外喜歡打比喻,我也就照著翻譯)。要理解鴨嘴獸,那麼先必須理解它和其他哺育動物的區別。同樣地,要理解構造器,那麼就要了解構造器和方法的區別。所有學習java的人,尤其是對那些要認證考試的,理解構造器是非常重要的。下面將簡單介紹一下 ,最後用一個表作了些簡單的總結。  
  
  
   功能和作用的不同  
  
   構造器是為了創建一個類的實例。這個過程也可以在創建一個對象的時候用到:Platypus p1 = new Platypus();  
  
  
  
   相反,方法的作用是為了執行java代碼。  
  
  
   修飾符,返回值和命名的不同  
  
   構造器和方法在下面三個方便的區別:修飾符,返回值,命名。和方法一樣,構造器可以有任何訪問的修飾: public, protected, private或者沒有修飾(通常被package 和 friendly調用). 不同於方法的是,構造器不能有以下非訪問性質的修飾: abstract, final, native, static, 或者 synchronized。  
  
  
   返回類型也是非常重要的。方法能返回任何類型的值或者無返回值(void),構造器沒有返回值,也不需要void。  
  
  
   最後,談談兩者的命名。構造器使用和類相同的名字,而方法則不同。按照習慣,方法通常用小寫字母開始,而構造器通常用大寫字母開始。構造器通常是一個名詞,因為它和類名相同;而方法通常更接近動詞,因為它說明一個操作。  
  
  
   "this"的用法  
  
   構造器和方法使用要害字this有很大的區別。方法引用this指向正在執行方法的類的實例。靜態方法不能使用this要害字,因為靜態方法不屬於類的實例,所以this也就沒有什麼東西去指向。構造器的this指向同一個類中,不同參數列表的另外一個構造器,我們看看下面的代碼:  
  
  
   public class Platypus {  
  
  
   String name;  
  
  
   Platypus(String input) {  
  
   name = input;  
  
   }  
  
  
   Platypus() {  
  
   this("John/Mary Doe");  
  
   }  
  
  
   public static void main(String args[]) {  
  
   Platypus p1 = new Platypus("digger");  
  
   Platypus p2 = new Platypus();  
  
   }  
  
   }  
  
  
  
   在上面的代碼中,有2個不同參數列表的構造器。第一個構造器,給類的成員name賦值,第二個構造器,調用第一個構造器,給成員變量name一個初始值 "John/Mary Doe".  
  
   在構造器中,假如要使用要害字this,那麼,必須放在第一行,假如不這樣,將導致一個編譯錯誤。  
  
  
      
   "super"的用法  
  
   構造器和方法,都用要害字super指向超類,但是用的方法不一樣。方法用這個要害字去執行被重載的超類中的方法。看下面的例子:  
  
  
   class Mammal {  
  
   void getBirthInfo() {  
  
   System.out.println("born alive.");  
  
   }  
  
   }  
  
  
   class Platypus extends Mammal {  
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved