簡單的java類與對象的總結

來源:互聯網
上載者:User

標籤:初始   常見   nbsp   靜態方法   工作   raise   常量   自身   靜態   

    1. 執行個體域:對象中的資料—>執行個體化後的類中中資料
    2. Object是所有類的超類
  1. 對象
    1. 作為類的執行個體,每個對象的標識永遠不同,狀態也常常存在差異
  2. 類之間的關係
    1. 依賴 uses-a —-一個類的方法操縱另一個類的對象
    2. 彙總 has-a ——類A的對象包含類b的對象
    3. 繼承 is-a —-從父類繼承,並且加入自身的方法。
  3. 使用預定義類
    1. 一個物件變數並沒有實際包含一個對象,而是僅僅引用一個對象
  4. 使用者自訂類
    1. 執行個體域:類的定義中例如int i, double j之類的變數,或者叫執行個體域
    2. 構造器
      1. 構造器只能伴隨著new一起使用,而不能對一個已經存在的對象調用構造器。
      2. 構造器是沒有傳回值的
      3. 每個類中可以有一個以上的構造器
      4. 不能在構造器裡定義與執行個體域重名的局部變數 常見錯誤
    3. 隱式參數與顯式參數
      1. 例如public void raisesalary(double salary),隱式參數為調用該方法的Employee類,而顯式參數則是salary.一般用this來代表隱式參數,this.salary = salary
    4. 封裝的優點
      1. 組成部分:私人資料域+公有域訪問器方法+公有域更改器方法
      2. 可以改變內部實現,除了該類的方法外,不會影響其他代碼
      3. 更改器可以執行錯誤檢查,從而避免薪資為負數的情況
      4. 不要編寫返回可變對象的訪問器方法原因: 如果直接返回一個可變資料類型,可能出現外界的變數與對象執行個體域指向同一個位置,那麼就使得可以在外部進行資料修改,從而導致錯誤
      5. 如果要返回一個可變資料類型應該怎麼辦呢?方法: 返回一個可變資料類型的拷貝。例如return (Date) hireday.clone().
    5. 基於類的存取權限
      1. 一個方法可以訪問所調用對象的私人資料
      2. 一個方法可以訪問所屬類的所有對象的私人資料。!!!!
    6. 私人方法
      1. 方法如果是私人的,那麼就不必考慮外部的其他類操作調用的情況
    7. final執行個體域
      1. 執行個體域定義為final後,構建對象時必須初始化這樣的域,必須確保在每個構造器執行之後,這個域的值被設定,且後續不能對其進行修改。
      2. 一般應用於基本類型域或者是不可變類型域。如果對可變類的域使用,那麼僅僅表示儲存在變數中的對象引用不會指向其他的對象。
突然發現static final 定義在main函數外面!!!!而且String 的equals 也是比較其內容而不是存放的位置。
  1. 靜態域與靜態方法
    1. 靜態域
      1. 每個類中只有一個,即使沒有對象,也依舊存在,它屬於類。調用方法如下: Employee.nextId(nextId即為靜態域)
    2. 靜態常量
      1. 直接屬於類,例如PI,調用方法:Math.Pi
      2. 每個類對象都可以對公有域進行修改OK
    3. 靜態方法
      1. 不能向對象實施操作的方法,及 沒有隱式的參數
      2. 靜態方法只能訪問靜態域,即為該類自身所有,而與對象無關的域。
      3. 使用條件
      4. 一個方法不需要訪問狀態物件
        1. 一個方法只需要訪問類的靜態域即可
    4. Factory 方法(factory method)??
      1. Factory 方法(Factory Method)模式的意義是定義一個建立產品對象的工廠介面,將實際建立工作延遲到子類當中。核心工廠類不再負責產品的建立,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現的介面,這樣進一步抽象化的好處是使得Factory 方法模式可以使系統在不修改具體工廠角色的情況下引進新的產品。
    5. main 方法-->靜態方法
  2. 方法參數
    1. 按值調用:方法接受的是調用者提供的值
    2. 按引用調用: 方法接受的是調用者提供的變數地址
    3. Java是按值調用的,無法該變參數值的大小(這和C不是一樣的嗎??),但是和C裡的指標一樣,Java是可以改變引用的值的大小的。(拷貝對象的引用,得到的依舊是對象的引用)
    4. 一個方法是不能讓對象參數指向一個新的對象的!!!!!!!!!
  3. 物件建構
    1. 重載:多個方法名字相同,但是參數不同,產生重載
      • tips: 方法簽名包括方法名以及參數類型,這使得不存在同名同參傳回值不同的方法
    2. 預設域初始化:
      • 自動賦值出現在沒有顯示賦值的情況下,數值=0,布爾值=false,對象引用=null
    3. 無參構造器:
      • 無參構造器是預設提供的若且唯若沒有其他構造器,但是如果有了一個帶參數的構造器但沒有自己寫一個無參構造器,再使用無參構造器會發生報錯。
    4. 顯式域初始化:
      • 可以調用方法對類進行初始化!

簡單的java類與對象的總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.