封装(Encapsulation)
- 将类的某些信息隐藏在类的内部,不允许外部程序直接访问;
- 通过该类提供的方法来实现对隐藏信息的操作和访问;
- 隐藏对象信息;
- 留出访问借口。
实现封装
1.修改属性可见性 设置为修饰符设置 private
2.创建 getter 和 setter 方法 设置为public 用于属性的读写
3.在getter 和 setter 语句中加入属性控制语句
1.private关键字
public class Demo(){ // 第一个类文件
private String name; // private设置为私有属性不允许类外部访问
public void person(){
this.name="类内部可以访问"; // 类内部 普通成员方法之间可以调用
}
}
public class DemoTest(){ // 第二个类文件
public static void main(String[] args){
Demo demo=new Demo();
demo.name="测试' // 在这里会报'name' 在 包 中具有 private 访问权限
}
}
2.getter 和 setter 方法
如果需要调用name 属性,需要通过getter 和 setter方法取值和赋值
public class Demo {
private String name;
public void setName(String name) {
if (name.isEmpty()) { // setter 语句中加入属性控制语句 限制赋值范围
System.out.println("name不能为空");
}
this.name = name;
}
public String getName() {
System.out.println(name);
return name;
}
}
public class DemoTest {
public static void main(String[] args) {
Demo demo = new Demo();
demo.setName("");
System.out.println(demo.getName());
}
}
如果只定义getter/setter方法其中之一,即getter为只读,setter为只写