Java为保护类及成员的安全,提供了公有(public)、保护(protected)、私有(private)、缺省多级访问控制权限,用于声明该类或成员能被其他哪些类访问,实现信息分级隐藏技术。 1、类的访问控制权限 类有两种访问控制权限:公有和缺省。 公有权限使用public修饰符,可被所有包中的其他类访问; 缺省权限没有修饰符,仅能被当前包(当前文件夹)中的其他类访问。 注:一个源程序文件中可以声明多个类,但用public修饰的类只能有一个,且该类名必须与文件名相同。 例:Student_ex.java此文件夹中有两个类。其中main方法在类Student_ex中,故此文件夹以此类名命名。 Person类为缺省权限,但它与Student_ex在同一个文件中,故是可以访问的。 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、类中成员的访问控制权限 一个类的所有成员都可被本类的代码访问。 但对其他类,可以有选择地对其可见或不可见。 类的成员有4种访问控制权限: (1)private声明私有成员,该成员仅能被当前类的成员访问,这是类希望隐藏的部分。很多情况下,成员变量均声明为私有。 (2)缺省:说明该成员能被当前类以及当前包中的其他类访问。 (3)protected声明保护成员:该成员能被当前类及其子类、当前包中的其他类访问。 (4)public声明公有成员,该成员能被所有类访问。 例: package learn; class Date{//缺省,只能被当前文件或当前包中访问 private intyear,month,day;//私有变量,只能被当前类访问 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类型的方法 } } |
|
来自: pythonjava学习 > 《Java》