封装与隐藏的含义
过将数据声明为私有的 (private) ,再提供公共的 (public) 方法即 getXxx() 和 setXxx() 实现对该属性的操作,以实现下述目的:
- 隐藏一个类中不需要对外提供的实现细节;。
- 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作。
- 便于修改,增强代码的可维护性。
public class Demo {public static void main(String[] args) {Animal dog = new Animal();dog.name = "大黄";dog.age = 10;dog.setLegs(10);dog.show();}}class Animal{String name;int age;private int legs; // 通过权限限制符 用户将不可访问// 对于属性的设置public void setLegs(int l){if( l >= 0 && l % 2 == 0){legs = l;}else {legs = 0;// 抛出异常}}// 对于属性的获取public int getLegs(){return legs;}public void eat(){System.out.println("eating");}public void show(){System.out.println("name = " + name + " , age = " + age + " , legs = " + legs);}}
权限修饰符
- 封装性的体现需要权限修饰符的配合
表格:
| 修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
|---|---|---|---|---|
| private | yes | |||
| 缺省 | yes | yes | ||
| protected | yes | yes | yes | |
| public | yes | yes | yes |
总结补充
1. 属性赋值过程
赋值的位置
2. JavaBean
所谓javaBean,是指符合如下标准的Java类:
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
例如:
class Person{private String name;private int id;private Person(){}private void setName(String name){this.name = name;}private String getName(){return name;}private void setId(int id){this.id = id;}private int getId(){return id;}}
<br /> <br /> <br />
