天天看點

Java面向對象的程式設計

  類的多态性:

    Java語言中含有方法重載與成員覆寫兩種形式的多态:(差別于c++)

    方法重載:在一個類中,允許多個方法使用同一個名字,但方法的參數不同,完成的功能也不同。

    成員覆寫:子類與父類允許具有相同的變量名稱,但資料類型不同,允許具有相同的方法名稱,但完成的功能不同。

  類:class  對象:object   執行個體:Instance

  建立屬于某類的對象,需要通過下面兩個步驟來實作:

    1、  聲明指向"由類所建立的對象"的變量

    2、  利用new建立新的對象,并指派給先前所建立的變量。  

  舉例來說,如果要建立Person類的對象,可用下列的語句來實作:

  方法一:

    Person p ; // 先聲明一個Person類的對象p

    p = new Person() ;   // 用new 關鍵字執行個體化Person的對象p

  方法二:  

      Person p = new Person() ;  // 聲明Person對象p并直接執行個體化此對象

匿名對象:

  “匿名對象”,顧名思義,就是沒有明确的聲明的對象,也可以簡單了解為隻使用一次的對象,即沒有任何一個具體的對象名詞引用它;

    System.out.println(new Person().talk() );   //聲明了一個匿名對象,調用Person類中的()方法;

用new Person() 聲明的對象并沒有賦給任何一個Person類對象的引用,是以此對象隻使用一次,之後就會被java 的垃圾收集器回收;

  對象的比較:

    有兩種方式可用于對象間的比較,它們是 "=="運算符與equals()方法,

  “==” 操作符用于比較兩個對象的記憶體位址值是否相等,

  equals( )方法用于比較兩個對象的内容是否一緻;

下面兩種String對象的聲明方式到底有什麼不同?

  String  str1 =  new String("java");

public class StringDemo
{
    public static void main(String args[])
    {   
        String str1 = "java";
        String str2 = new String("java");
        String str3 = "java";

        System.out.println("str1 == str2?" + (str1==str2));
        System.out.println("str1 == str3?" + (str1==str3));
        System.out.println("str2 == str3?" + (str2==str3));
    }   
}