如何使对象完全封装在java中?

将数据和作用在数据上的代码包装在一起的过程称为封装。这是一种保护机制,其中我们将一个类的数据与另一个(一个对象的)对象隐藏起来。

由于变量保存类的数据以封装类,因此您需要将所需的变量(要隐藏)声明为私有,并提供公共方法来访问(读/写)它们。

这样,您只能在当前类中访问变量,它们将对其他类隐藏,并且只能通过提供的方法进行访问。因此,这也称为数据隐藏。

完全封装一个类/对象

要完全封装一个类/对象,您需要

  • 将a的所有变量声明为私有。

  • 提供公共的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