封装示例
一个Person类,具有age和speak属性
class Person { int age; void speak() { System.out.println("age="+age); } } class PersonDemo { public static void main(String[] args) { Person p = new Person(); p.age=-20; // 报错,原因,age被直接访问 p.speak(); } }
/* private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数) 私有只有在本类中有效 将age私有化后,类以外即使建立了对象也不能直接访问 但是人应该有年龄,就需要在Person类中提供对应访问age的方式 注意:私有仅仅是封装的一种表现形式 之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句 对访问的数据进行操作,提高代码健壮性 */ class Person { private int age; // 私有化age,只能在Person类中访问 public void setAge(int a) // 提供访问age的方法 { if (a>0 && a<130) // 对封装的age进行判断 { age = a; speak(); } else { System.out.println("false age"); } } void speak() { System.out.println("age="+age); } } class PersonDemo { public static void main(String[] args) { Person p = new Person(); p.setAge(20); // 访问age赋值 p.speak(); } }