public class Note4 {
public static void main(String[] args) {
Cat3 myCat = new Cat3();
myCat.name = "小花";
myCat.age = -2;
System.out.println(myCat.name+"*********" + myCat.age);
}
}
class Cat3 {
String name;
int age;
}
该程序设计出现问题,age不能取负值,所以将age值私有化
public class Note4 {
public static void main(String[] args) {
Cat3 myCat = new Cat3();
myCat.name = "小花";
myCat.setAge(-2);
System.out.println(myCat.name+"*********"+myCat.getAge());
}
}
class Cat3 {
String name;
private int age;
public void setAge(int age) {
if (age>0) {
this.age = age;
}
}
public int getAge() {
return age;
}
}
将age private 起来并且提供setAge();和getAge();方法使age可以被访问和返回
现在的话给age赋负值就不会有用了,会被挡下来。
*面向对象三大特征之封装 * 将不需要对外提供的内容都隐藏起来,并对其提供公共的访问方式 * * 封装的好处 * 1.提高了安全性 * 2.提高了重用性 * 3.便于使用 * 4.将变化隔离
* 封装的原则 * 1.将不需要外提供的内容都隐藏起来 * 2.提供公共的访问方式 * * 举例:台式机电脑机箱 * 隐藏了什么? * 硬盘、光驱、主板、内存、电源等 * * 提供了那些公共的访问方式 * USB、放光盘窗口、电源接口