java中访问控制符

来源:互联网 发布:kindle voyage知乎 编辑:程序博客网 时间:2024/06/04 23:37
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());//0p.setAge(30);System.out.println("成功设置age属性:"+p.getAge());//30p.setName("Zoe");System.out.println("成功设置name属性:"+p.getName());//Zoe}}</span>
使用访问控制符:private,default,protected,public1 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修饰 



0 0