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修饰
相关文章推荐
- Spring MVC的@ResponseBody返回JSON串时Content-Type编码问题
- 关于Struts2国际化问题。
- 【转载】J2SE知识点归纳笔记(七)---Java IO Part 4:基本字符流
- Java正则表达式
- java中long和Long的区别
- AOP jdk动态代理
- Java学习之Iterator(迭代器)的一般用法和详解
- java实现各种排序算法
- 观察者模式及Java实现例子
- java判断字符串编码
- Spring(AbstractRoutingDataSource)实现动态数据源切换
- spring的一些注解
- Struts2中 Result类型配置详解
- Java的static
- java Map及Map.Entry详解及用途
- java对象引用在方法中传递
- java个人学习笔记:面向对象的思想
- Spring Aop实例
- java并发之原子性与可见性
- spring在web容器启动时执行初始化方法