更新时间:2022-03-30 来源:黑马程序员 浏览量:
类的封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类提供的方法实现对内部信息的操作访问。
在Java开发中,在定义一个类时,将类中的属性私有化,即使用private关键字修饰类的属性,被私有化的属性只能在类中被访问。如果外界想要访问私有属性,则必须通过setter和getter方法设置和获取属性值。
接下来修改文件3-3,使用private关键字修改name属性和age属性,实现类的封装,如文件3-4所示。
classStudent { private String name; // 声明姓名属性 private int age; // 声明年龄属性 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age <= 0) { System.out.println("您输入的年龄有误!"); } else { this.age = age; } } public void read() { System.out.println("大家好,我是" + name + ",年龄" + age); } } public class Example04 { public static void main(String[] args) { Student stu = new Student(); // 创建学生对象 stu.setName("张三"); // 为对象的name属性赋值 stu.setAge(-18); // 为对象的age属性赋值 stu.read(); // 调用对象的方法 } }
在文件3-4中,使用private关键字将属性name和age声明为私有变量,并对外界提供公有的访问方法,其中,getName()方法和getAge()方法用于获取name属性和age属性的值,setName()方法和setAge()方法方法用于设置name属性和age属性的值。
文件3-4的运行结果如图3-9所示。
图3-9文件3-4的运行结果由图3-9可知,当调用setAge()方法传入了一个负数-18时,age显示为初始值0。这是因为setAge()方法对参数age进行了判断,如果age的值小于或等于0,会打印“您输入的年龄有误!”,并将age设置为0。