更新时间: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。