【Java】對象和類

Java 對象和類

Java作爲一種面嚮對象語言。支持以下基本概念:(有學過C++的,應該也瞭解過對象和類)

  • 多態
  • 繼承
  • 封裝
  • 抽象
  • 對象
  • 實例
  • 方法
  • 重載

 

  • 對象對象是類的一個實例(要牢記這句話),有狀態和行爲。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行爲有:搖尾巴、叫、喫等。
  • :類是一個模板,它描述一類對象的行爲和狀態。

舉個簡單的例子:

男孩(boy)女孩(girl)類(class),而具體的每個人爲該類的實例,稱爲對象(object)

構造方法

每個類都有構造方法。如果沒有顯式地爲類定義構造方法,Java 編譯器將會爲該類提供一個默認構造方法。

在創建一個對象的時候,至少要調用一個構造方法。構造方法的名稱必須與類同名,一個類可以有多個構造方法。

下面是一個構造方法示例:

public class Programer{
    public Programer(){
    }
 
    public Programer(String name){
        // 這個構造器僅有一個參數:name
    }
}

創建對象

對象是根據類創建的。在Java中,使用關鍵字 new 來創建一個新的對象。創建對象需要以下三步:

  • 聲明:聲明一個對象,包括對象名稱和對象類型。
  • 實例化:使用關鍵字 new 來創建一個對象。
  • 初始化:使用 new 創建對象時,會調用構造方法初始化對象。

下面是一個創建對象的例子:

public class Programer{
   public Programer(String name){
      //這個構造器僅有一個參數:name
      System.out.println("程序員的名字是 : " + name ); 
   }
   public static void main(String[] args){
      // 下面的語句將創建一個Puppy對象
      Puppy myProgramer = new Programer( "Jerry" );
   }
}

訪問實例變量和方法

通過已創建的對象來訪問成員變量和成員方法,如下所示:

/* 實例化對象 */
Object referenceVariable = new Constructor();
/* 訪問類中的變量 */
referenceVariable.variableName;
/* 訪問類中的方法 */
referenceVariable.methodName();

源文件聲明規則

在本節的最後部分,我們將學習源文件的聲明規則。當在一個源文件中定義多個類,並且還有import語句和package語句時,要特別注意這些規則。

  • 一個源文件中只能有一個 public 類
  • 一個源文件可以有多個非 public 類
  • 源文件的名稱應該和 public 類的類名保持一致。例如:源文件中 public 類的類名是 Employee,那麼源文件應該命名爲Employee.java。
  • 如果一個類定義在某個包中,那麼 package 語句應該在源文件的首行。
  • 如果源文件包含 import 語句,那麼應該放在 package 語句和類定義之間。如果沒有 package 語句,那麼 import 語句應該在源文件中最前面。
  • import 語句和 package 語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包聲明。

 

示例

下面的例子展示如何訪問實例變量和調用成員方法:

public class Programer{
   int programerAge;
   public Programer(String name){
      // 這個構造器僅有一個參數:name
      System.out.println("程序員的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       programerAge = age;
   }
 
   public int getAge( ){
       System.out.println("程序員的年齡爲 : " + programerAge ); 
       return programerAge;
   }
 
   public static void main(String[] args){
      /* 創建對象 */
      Programer myProgramer = new Programer( "Jerry" );
      /* 通過方法來設定age */
      myProgramer.setAge( 28 );
      /* 調用另一個方法獲取age */
      myProgramer.getAge( );
      /*你也可以像下面這樣訪問成員變量 */
      System.out.println("變量值 : " + myProgramer.programerAge ); 
   }
}

 

參考:

https://www.runoob.com/java/java-object-classes.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章