1. 程式人生 > >第4節 類和對象

第4節 類和對象

employ stat 值類型 覆蓋 元素 [] 實例 highlight int

一、Java 對象和類

  1. 面向對象語言三大特性:封裝、繼承、多態;
  2. 對象:描述客觀事物的一個實體;
  3. 類:類是封裝對象的屬性和方法的載體,反過來說具有相同屬性和行為的一類實體被稱為類;類行為:方法;屬性:成員變量
  4. 定義類:
    [訪問修飾符] class 類名{ //class是聲明類的關鍵字,類名首字母大寫
      //代碼
    }
  5. java中權限修飾符
    訪問位置 private protected public
    本類
    同包或其他子類 ×
    其他包的類或子類 × ×
  6. 定義屬性:
    [訪問修飾符] 數據類型 屬性名;
  7. 定義成員方法:
    [權限修飾符] 返回值類型 方法名(參數類型 參數1名,....){
      //方法體
      return 返回值; //若無返回值,此句可以不寫(但仍可以用return ;退出該方法),並用void關鍵字聲明返回值類型
    }
    註:訪問修飾符可選;
      參數列表可選;

二、創建和使用對象

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

    new是關鍵字 類名()為對象的構造方法
    public class Puppy{ 
      int puppyAge;    //成員變量
      public Puppy(String name){ 
          // 這個構造器僅有一個參數:name 
            System.out.println("小狗的名字是 : " + name ); 
           } 
            public void setAge( int age ){ 
                puppyAge = age; 
            } 
            public int getAge( ){ 
              System.out.println("小狗的年齡為 : " + puppyAge ); 
              return puppyAge; 
            } 
            public static void main(String []args){ 
                /* 創建對象 */ 
               Puppy myPuppy = new Puppy( "tommy" );
               /* 通過方法來設定age */ 
               myPuppy.setAge( 2 );
               /* 調用另一個方法獲取age */ 
               myPuppy.getAge( ); 
               /*你也可以像下面這樣訪問成員變量 */ 
               System.out.println("變量值 : " + myPuppy.puppyAge ); 
            } 
    }       
    結果:
    小狗的名字是 : tommy
    小狗的年齡為 : 2
    變量值 : 2
  • 使用對象:對象.屬性 對象.方法名
  • 對象數組:對象數組的數據類型就是具體的類名,對象數組存儲的就是這個類的對象,每個元素就是一個對象。
  • 源文件聲明規則:

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

三、方法的重載(不同於重寫即覆蓋,後面會說到)

  方法重載即在同一個類中允許同時存在一個或多個同名方法,構成重載的條件:1.參數類型不同;2.參數順序不同;3.參數個數不同;

  註意:方法的返回值類型不能作為判斷是否重載的依據;
     可以定義不定長參數方法:返回值 方法名(數據類型 ... 參數名稱) 例如:void main(int[ ] a){....}

package cn.galc.test;
public class TestOverLoad {
  void max(int a, int b) {
    System.out.println(a > b ? a : b);
  }
  /*int max(int a, int b) { 
    return a > b ? a : b; 
  }*/
  void max(float a, float b) {
    System.out.println(a > b ? a : b);
  }
}

四、this關鍵字

五、構造方法

六、靜態常量、變量和方法

第4節 類和對象