首頁  >  文章  >  类库下载  >  java中四種訪問修飾符區別及詳解全過程

java中四種訪問修飾符區別及詳解全過程

高洛峰
高洛峰原創
2016-10-14 13:57:591866瀏覽

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

  類別創建者:即建立新資料類型的程式設計師,目標是建構類別。

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

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

適用範圍

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

        protect  〠∠      protect  〠∠  〠 vate相同的權限)

        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在上述皆能存取到

java中四種訪問修飾符區別及詳解全過程用同樣的四個類別    來測試protected

在將Person .uname is not visible  (說明不能跨包)

其他三個無影響

java中四種訪問修飾符區別及詳解全過程說明除了跨包  其他均不影響訪問

private

?類別中有關uname的set、get方法可以進行存取

java中四種訪問修飾符區別及詳解全過程

defaultjava中四種訪問修飾符區別及詳解全過程

java中四種訪問修飾符區別及詳解全過程

   
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn