您的位置:首页 > 编程语言 > Java开发

java中访问控制符

2015-06-01 19:49 483 查看
package june1stDat;

public class Person {
//定义了private的name和age属性只能在person类才可以操作和访问,在Person类之外只能通过各自的setter和getter方法来操作和访问
private String name;
private int age;
private static int eyeNum;
public void setName(String name)
{
if(name.length()>6 || name.length()<2)
{
System.out.println("您设置的name不符合要求");
}
else
{
this.name = name;
}
}
public String getName()
{
return this.name;
}
public void setAge(int age)
{
if(age>100 || age<0)
{
System.out.println("您设置的age不合法");
}
else
{
this.age = age;
}
}
public int getAge()
{
return this.age;
}</span>
<span style="font-size:14px;">}</span>
<span style="font-size:14px;"><pre name="code" class="html">package june1stDat;

public class TestPerson {
public static void main(String[] args) {
Person p = new Person();
p.setAge(1000);
System.out.println("未能设置age属性是:"+p.getAge());//0
p.setAge(30);
System.out.println("成功设置age属性:"+p.getAge());//30
p.setName("Zoe");
System.out.println("成功设置name属性:"+p.getName());//Zoe

}

}</span>
使用访问控制符:private,default,protected,public
1 private 访问控制级别:只能在该类的内部被访问,很显然,这个访问控制符用于修饰属性最合适,使用
他来修饰属性就可以把属性隐藏在类的内部
2 default访问控制权限,如果属性或者方法不使用任何修饰符,则是默认default修饰符,可以被相同包下
其他访问,
3 protected,可以被同一个包中其他类访问,也可以被不同包中的子类访问
4 public访问控制权限,这是一个最宽松的访问控制级别,可以被所有类访问

注意:对于局部变量而言,其作用域就是它所在的方法,不可能被其他类来访问,因此不能使用访问控制符
来修饰。
在定义了private变量之后,只能类内部成员来操作和访问,在该类之外只能通过各自对应的setter和getter
方法来操作和访问他们
注意:java类里的属性的setter和getter方法有非常重要的意义,例如某个类里包含了一个名为abc的属性,
则其对应的setter和getter方法名应为setAbc和getAbc,如果一个java类的每个属性都被使用private修饰,
并为每个属性都提供public修饰setter和getter方法,这个类就是一个符合java规范的类。

关于访问控制符的使用,存在如下基本原则:
1 类里的绝大部分属性都应该使用private修饰,除了一些static修饰的,类似全局变量的属性,才可能考虑
使用public修饰符,除此之外,有些方法只是用于辅助实现该类的其他方法,这些方法被称为工具方法,工具
方法也应该使用private修饰
2 如果某个类主要用作其他类的父类,该类里包含的大部分方法可能仅仅希望被其子类重写,而不想被外界直
接调用,则应该使用protected修饰这些方法
3 希望暴露出来给其他类自由调用的方法应该使用public修饰,因此,类的构造器通过使用public修饰,暴露
给其他类中创建该类的对象,因为顶级类通常都希望被其他类自由使用,所以大部分顶级类都用public修饰



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: