Java 封装

本文详细介绍了Java封装的概念,包括信息隐藏和类的属性、方法的封装,以及实现封装的步骤。此外,还深入解析了this关键字的用法,如this.属性名、this.方法名以及this( )调用构造方法。通过示例代码,展示了如何在类中使用this关键字以及封装的实践应用。
摘要由CSDN通过智能技术生成
达者为先  师者之意


1 封装的概念

  • 将东西包在一起,然后以新的完整的形式呈现出来
  • 将方法和字段包装到一个单元中,单元以类的形式实现
  • 信息隐藏,隐藏对象的实现细节,不让外部直接访问到
  • 将数据和方法包装进类,加上具体实现的隐藏(访问修饰符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型

什么是封装类?
"定义类,定义其属性、方法的过程"成为封装类

封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。例如:一台计算机内部极其复杂,有主板、CPU、硬盘和内存, 而一般用户不需要了解它的内部细节,不需要知道主板的型号、CPU 主频、硬盘和内存的大小,于是计算机制造商将用机箱把计算机封装起来,对外提供了一些接口,如鼠标、键盘和显示器等,这样当用户使用计算机就非常方便。

封装的特点:

  • 只能通过规定的方法访问数据。
  • 隐藏类的实例细节,方便修改和实现。

2 实现Java封装的步骤

实现封装的具体步骤如下:

  • 修改属性的可见性来限制对属性的访问,一般设为 private。
  • 为每个属性创建一对赋值(setter)方法和取值(getter)方法,一般设为 public,用于属性的读写。
  • 在赋值和取值方法中,加入属性控制语句(对属性值的合法性进行判断)

在这里插入图片描述

以下举例说明:

  1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:
public class Person {
   
    private String name;
    private int age;
}

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

  1. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
public class Person{
   
    private String name;
    private int age;public int getAge(){
   
      return age;
    }public String getName(){
   
      return name;
    }public void setAge(int age){
   
      this.age = age;
    }public void setName(String name){
   
      this.name = name;
    }
}

采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。

实例
让我们来看一个java封装类的例子:
EncapTest.java 文件代码:

/* 文件名: EncapTest.java */
public class EncapTest{
   
 
   private String name;
   private String idNum;
   private int age;
 
   public int getAge(){
   
      return age;
   }
 
   public String getName(){
   
      return name;
   }
 
   public String getIdNum(){
   
      return idNum;
   }
 
   public void setAge( int newAge){
   
      age = newAge;
   }
 
   public void setName(String newName){
   
      name = newName;
   }
 
   public void setIdNum( String newId){
   
      idNum = newId;
   }
}

以上实例中public方法是外部类访问该类成员变量的入口。

通常情况下,这些方法被称为gettersetter方法。

因此,任何要访问类中私有成员变量的类都要通过这些get

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java中的封装是一种面向对象编程的重要概念,用于隐藏类的内部细节,并提供公共接口以便其他类可以使用。封装可以保证数据的安全性和一致性,并且可以使代码更易于维护。 Java中的封装通常通过访问修饰符来实现,其中public、protected、private是三个最常用的访问修饰符。public表示该成员可以被任何类访问,protected表示该成员可以被同一个包中的类和继承该类的子类访问,private表示该成员只能被该类的方法访问。 封装的主要思路是将类的数据成员设置为私有,然后通过公共的方法提供访问这些私有成员的接口。这些公共方法通常被称为getter和setter方法,其中getter方法用于获取类的私有成员变量的值,setter方法用于修改类的私有成员变量的值。 以下是一个简单Java类的封装示例: ``` public class Person { 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 && age <= 120) { this.age = age; } else { System.out.println("Invalid age!"); } } } ``` 在上面的代码中,name和age被设置为私有成员变量,只能通过公共的getter和setter方法进行访问。setName和setAge方法包含一些条件判断,以确保输入的值是有效的。这种封装可以防止类的数据被错误地修改,并提供了更好的代码可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大红烧肉

赠人玫瑰,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值