Java為保護(hù)類及成員的安全,提供了公有(public)、保護(hù)(protected)、私有(private)、缺省多級(jí)訪問控制權(quán)限,用于聲明該類或成員能被其他哪些類訪問,實(shí)現(xiàn)信息分級(jí)隱藏技術(shù)。 1、類的訪問控制權(quán)限 類有兩種訪問控制權(quán)限:公有和缺省。 公有權(quán)限使用public修飾符,可被所有包中的其他類訪問; 缺省權(quán)限沒有修飾符,僅能被當(dāng)前包(當(dāng)前文件夾)中的其他類訪問。 注:一個(gè)源程序文件中可以聲明多個(gè)類,但用public修飾的類只能有一個(gè),且該類名必須與文件名相同。 例:Student_ex.java此文件夾中有兩個(gè)類。其中main方法在類Student_ex中,故此文件夾以此類名命名。 Person類為缺省權(quán)限,但它與Student_ex在同一個(gè)文件中,故是可以訪問的。 class Person{ private String name; public Person(){ name="123"; } public Person(String name){ this.set(name); } public void set(String name){ this.name=name; } public void getName(){ System.out.println(name); } } public class Student_ex{ public static void main(String args[]){ Personp=newPerson(); p.getName(); p.set("張熹熹"); p.getName(); } 2、類中成員的訪問控制權(quán)限 一個(gè)類的所有成員都可被本類的代碼訪問。 但對(duì)其他類,可以有選擇地對(duì)其可見或不可見。 類的成員有4種訪問控制權(quán)限: (1)private聲明私有成員,該成員僅能被當(dāng)前類的成員訪問,這是類希望隱藏的部分。很多情況下,成員變量均聲明為私有。 (2)缺省:說明該成員能被當(dāng)前類以及當(dāng)前包中的其他類訪問。 (3)protected聲明保護(hù)成員:該成員能被當(dāng)前類及其子類、當(dāng)前包中的其他類訪問。 (4)public聲明公有成員,該成員能被所有類訪問。 例: package learn; class Date{//缺省,只能被當(dāng)前文件或當(dāng)前包中訪問 private intyear,month,day;//私有變量,只能被當(dāng)前類訪問 public Date(int year,int month,int day){ this.set(year, month, day); } public void set(int year,int month,int day){ this.year=year; this.month=month; this.day=day; } public Date(){ year=2000; month=1; day=1; } public void getYear(){//公有方法,可以被其他類訪問 System.out.println(year);//本類可以訪問所在成員 } } public class MyDate { publicstaticvoid main(String args[]){ Dated=newDate(); //d.year=5; //出钷啦。year為私有成員,不能被其他類訪問 d.getYear();//可以訪問public類型的方法 } } |
|