更新时间: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。
毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27