如何在 Java 中完全封装对象?
java 8object oriented programmingprogramming
将数据和操作数据的代码包装在一起的过程称为封装。这是一种保护机制,我们将一个类的数据隐藏于另一个类(的对象)之外。
由于变量保存着类的数据,因此要封装类,您需要将所需的变量(您想要隐藏的变量)声明为私有变量,并提供公共方法来访问(读/写)它们。
这样,您只能在当前类中访问这些变量,它们将对其他类隐藏,并且只能通过提供的方法访问。因此,它也被称为数据隐藏。
完全封装类/对象
要完全封装类/对象,您需要:
- 将所有变量声明为私有变量。
- 提供公共的 setter 和 getter 方法来修改和查看它们的值。
示例
在下面的 Java 程序中,Student 类有两个变量 name 和 age。我们通过将它们声明为私有变量并提供 setter 和 getter 方法来封装这个类。
如果您想访问这些变量,您无法直接访问它们,您可以使用提供的 setter 和 getter 方法来读写它们的值。您未提供这些方法的变量将对外部类完全隐藏。
import java.util.Scanner; class Student { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void display() { System.out.println("name: "+getName()); System.out.println("age: "+getAge()); } } public class AccessData{ public static void main(String args[]) { //从用户读取值 Scanner sc = new Scanner(System.in); System.out.println("输入学生姓名:"); String name = sc.nextLine(); System.out.println("输入学生年龄:"); int age = sc.nextInt(); //调用 setter 和 getter 方法 Student obj = new Student(); obj.setName(name); obj.setAge(age); obj.display(); } }
输出
输入学生姓名: Krishna 输入学生年龄: 20 name: Krishna age: 20