访问控制符是一组限定类、属性或方法是否可以被程序里的其他部分访问和调用的修饰符。Java语言中的访问控制符分为两类:一类是用来修饰类的,一类是用来修饰成员变量和成员方法的。
修饰类的访问控制符有两种:公共的public和缺省的default。如果定义类的同时在class前面加上了public,则这个类的访问权限就是公共的,即此类可以被所有类访问到。如果定义类的同时class前面什么都不写,class前面默认添加default访问权限修饰符,注意,default不能显示地写出来,被default修饰的类只能被和自己在同一个包中的类访问。
修饰成员变量和成员方法的访问控制符有四种,按照访问权限范围从小到大排列,分别是:私有的(private)、缺省的(default)、受保护的(protected)、公共的(public)。
用private修饰的成员称为私有成员,一个类的私有成员只能在这个类的内部访问,其他的类无法访问这个类的私有成员。用private属性实现了封装。
封装就是将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏。做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问。
实现封装的具体步骤如下:
(1)修改属性的可见性来限制对属性的访问。
(2)为每个属性创建一对赋值方法和取值方法,用于对这些属性的访问。
(3)在赋值和取值方法中,加入对属性的存取限制。
【例3-1】 以员工类的封装为例介绍封装过程。(www.xing528.com)
一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工类为Employee,代码如下:
如上述代码所示,使用private关键字修饰属性,这就意味着除了Employee类本身外,其他任何类都不可以访问这些属性。但是,可以通过这些属性的set Xxx()方法来对其进行赋值,通过get Xxx()方法来访问这些属性。第15~23行是age属性的set Age()方法,首先对用户传递过来的参数age进行判断,如果age的值不在18~40之间,则将Employee类的age属性值设置为20,否则设置为传递过来的参数值。
编写测试类Employee Test,在该类的main()方法中调用Employee属性的set Xxx()方法对其相应的属性进行赋值,并调用get Xxx()方法访问属性,代码如下:
上述代码的运行结果如下:
通过封装,实现了对属性的访问限制,满足了年龄的条件。在属性的赋值方法中可以对属性进行限制操作,从而给类中的属性赋予合理的值,并通过取值方法获取类中属性的值。
没有访问权限控制符修饰的成员称为缺省成员,一个类的缺省成员除了可以在这个类的内部访问之外,还可以被同一个包中的其他类访问。
用protected修饰的成员称为受保护成员,一个类的受保护成员除了可以在这个类的内部访问,可以被同一个包中的其他类访问之外,还可以被这个类的子类访问。
用public修饰的成员称为公共成员,一个类的公共成员没有访问限制,可以被任意类访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。