java中物件導向的一些知識(二),java物件導向知識

來源:互聯網
上載者:User

java中物件導向的一些知識(二),java物件導向知識
一. 封裝的講解什麼是封裝?為什麼要封裝?怎麼實現封裝?

封裝的目的是為了提高程式的安全性。封裝就是把不想讓第三者看的屬性,方法隱藏起來。

封裝的實現方法是: 1.修改屬性的可見度,限制訪問。

          2.設定屬性的讀取方法。

          3.在讀取屬性的方法中,添加堆屬性讀取的限制。

package com.chen.test;public class Test9 {    private int age; // 定義年齡    private String name; // 定義姓名    private double price; // 定義價格    //用get/set方法對屬性進行封裝    public int getAge() {        return age;    }     //在傳入年齡時,設定了年齡的限制    public void setAge(int age) {                if (age > 100 || age < 0) {                this.age = 18;        }        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }
}
 封裝的幾個關鍵字總結:

   private :  只能被類自身調用

  public  :      1. 可以被類自身中的方法調用。 2. 可以在子類中直接調用父類的public屬性和方法。3. 可以被對象直接調用。

  protected:   1.可以被類自身的方法調用。    2.可以在子類直接調用父類的protected屬性和方法。

  預設關鍵字: 1. 可以在子類直接調用父類的預設關鍵字修飾的屬性和方法。 2. 可以被本包的對象直接調用。

 關鍵字的比較,從三個角度去對比:子類,包內,包外。

    protected關鍵字的設計的初衷就是為了子類調用父類的屬性和方法設計的。

  預設關鍵字設計的初衷是為了包內可以調用,包外不可以調用。

 

二. 繼承

 JAVA的繼承是 單線繼承,不允許多重繼承;  

  子類可以繼承父類的哪些方法和屬性:
      1.父類的private屬性和方法,無法繼承
      2.父類的protected屬性和方法,都可以繼承
      3.父類的public屬性和方法,都可以繼承
      4.父類的預設關鍵字修飾的屬性和方法,如果子類和父類在一個包裡,則可以繼承

抽象類別與抽象方法:
    不能夠被執行個體化的class,用abstract進行修飾,這就是抽象類別。
    抽象類別中可以寫抽象方法、還可以寫非抽象方法----------------非抽象類別中不能定義抽象方法;
    抽象類別中定義的抽象,必須要在子類中被重寫------子類必須重寫父類的抽象方法(除非子類也是抽象類別)
抽象方法的作用?
   子類必須重寫父類的抽象方法,可以實現多態;
final關鍵字的總結:
    1. final修飾變數     -----  給變數一次初始化的機會,以後就不能再修改
            public final double dburl;     

       final修飾引用型變數 -------------------鎖定了引用的地址,不能再發生變化;
           final Dog dog = new Dog("歡歡");
           dog = null;

    2. final修飾class   ----- 這個class不能被子類繼承
             public final class Dog extends Pet{}

    3. final修飾方法  ------ 表示這個方法不能被子類重寫
             public final void swim(Pool pool) {}

重寫:override
      子類有一個與父類,同名、同參、同傳回值的方法,那麼就說子類的這個方法重寫了父類的同名方法;

重寫了什嗎?
    方法的本質------>>> 是函數指標  
    重寫的本質就是:用子類記憶體區中方法的首地址,替換父類記憶體區中同名方法的首地址

 介面與抽象類別的對比
    1. 介面是能力的表示
       抽象類別是Class,它有屬性和行為

    2. 介面裡可以定義常量,但是沒有屬性

    3. 介面中的方法,都是public abstract (共有的抽象方法,不能定義其它類型的方法)

    4. 抽象類別中的方法,可以是抽象的,也可以是非抽象的。但是介面中必須是抽象的;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.