java中四種存取修飾詞區別及詳解全過程,java全過程

來源:互聯網
上載者:User

java中四種存取修飾詞區別及詳解全過程,java全過程

  用戶端程式員:即在其應用中使用資料類型的類消費者,他的目標是收集各種用來實現快速應用開發的類。

  類建立者:即建立新資料類型的程式員,目標是構建類。  

  存取控制存在的原因:a、讓用戶端程式員無法觸及他們不應該觸及的部分  ; b、允許庫設計者可以改變類內部的工作方式而不用擔心會影響到用戶端程式員

    java的四個關鍵字:public、protected、default、private(他們決定了緊跟其後被定義的東西可以被誰使用)

適用範圍<存取權限範圍越小,安全性越高>

      存取權限   類   包  子類  其他包

        public     ∨   ∨    ∨     ∨          (對任何人都是可用的)

        protect    ∨   ∨   ∨     ×    (繼承的類可以訪問以及和private一樣的許可權)

        default    ∨   ∨   ×     ×    (包存取權限,即在整個包內均可被訪問)

        private    ∨   ×   ×     ×    (除類型建立者和類型的內部方法之外的任何人都不能訪問的元素)

以下,用代碼進行詳解(建四個類 Person Student Teacher Parents 和一個測試類別)

package com.zq.demo.test1;
/**
 * 類內
 * @author Administrator
 */
public class Person {
    public String uname = "王五";
    
    public void introduceMyself(){               
        System.out.println(uname);            
    }
}

package com.zq.demo.test1;
//同一個包
public class Student {
        Person p =  new Person();
    public void test(){
        System.out.println(p.uname);
    }
}

package com.zq.demo.test1;
//子類
public class Teacher extends Person{
    public int age;
    Person p = new Person();
    public void test1(){
        System.out.println(p.uname);
    }
}
package com.zq.demo.test2;
//不同包
import com.zq.demo.test1.Person;

public class Parents {
    public String uname = "haha";
    Person p = new Person();
    public void test2(){
        System.out.println(p.uname);
    }
}

              測試類別的結果  顯示public在上述均能訪問到

 

用同樣的四個類    來測試protected

在將Person中的uanme改為protected後   類Parents便報錯了   The field Person.uname is not visible  (說明不能跨包)

其他三個無影響

說明除了跨包  其他均不影響訪問

private

只有本類中可以訪問 但是藉助在Person類中有關uname的set、get方法便可以進行訪問

default

  測試結果說明  只能在本包中進行訪問  在其他包   即使是繼承關係  也無法進行訪問

 

聯繫我們

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