ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Java基础教程(009): Java 的封装

2026/8/4 20:56:29 拓冰建站 浏览量
Java基础教程(009): Java 的封装

文章目录

  • 8、封装
    • 8.1、什么是封装?
    • 8.2、为什么需要封装?
    • 8.3 示例代码

8、封装

8.1、什么是封装?

封装就是把对象的属性和方法“包裹”起来,控制外部是否允许直接访问它们。

  • 通过访问修饰符(如 private)隐藏属性。
  • 通过 public 方法(getter/setter)提供对这些属性的安全访问。

8.2、为什么需要封装?

  1. 保护数据,防止被非法访问或赋值。
  2. 控制访问级别,提供统一入口修改属性。
  3. 增强代码的可维护性和可读性。

8.3 示例代码

我们在前面的 Student 类基础上,做如下封装:

1️⃣封装后的类:

package src.com.wang.test;public class Student2 {// 私有属性,外部不能直接访问private String name;private int age;private double score;// 公共的 Getter 和 Setter 方法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 && age < 150) {this.age = age;} else {System.out.println("年龄不合法!");}}public double getScore() {return score;}public void setScore(double score) {if (score >= 0 && score <= 100) {this.score = score;} else {System.out.println("成绩不合法!");}}// 其他方法public void printInfo() {System.out.println("学生姓名: " + name);System.out.println("学生年龄: " + age);System.out.println("学生成绩: " + score);}
}

2️⃣调用类:

package src.com.wang.test;public class Student2Test {public static void main(String[] args) {// 创建对象Student2 stu = new Student2();// 通过 setter 方法赋值(不是直接访问属性)stu.setName("李四");stu.setAge(20);stu.setScore(88.5);// 通过 getter 方法访问属性System.out.println("姓名: " + stu.getName());System.out.println("年龄: " + stu.getAge());System.out.println("成绩: " + stu.getScore());// 调用打印方法stu.printInfo();}
}

3️⃣运行结果:

姓名: 李四
年龄: 20
成绩: 88.5
学生姓名: 李四
学生年龄: 20
学生成绩: 88.5

封装的关键点:

项目说明
private用于修饰属性,使外部无法直接访问
public 方法getXxx()setXxx() 方法是访问属性的唯一通道
控制数据合法性可在 setter 方法中添加判断逻辑