Java中的封装是什么?

Java中的封装(Encapsulation)是一种面向对象编程(OOP)中常见的原则之一,它是OOP中三大特征(封装、继承和多态)之一。

封装是指将一个对象的属性和方法进行私有化,使其不被外部直接访问和修改。目的在于隐藏对象的具体实现细节,增加代码的可读性、可维护性和安全性。在Java中,使用关键字private来实现封装。

下面以一个银行账户类Account为例进行说明:

public class Account {
    private String accountNum;  //账号
    private String name;  //姓名
    private double balance;  //余额

    public Account(String accountNum, String name, double balance) {
        this.accountNum = accountNum;
        this.name = name;
        this.balance = balance;
    }

    //获取账号
    public String getAccountNum() {
        return accountNum;
    }
    //获取姓名
    public String getName() {
        return name;
    }
    //获取余额
    public double getBalance() {
        return balance;
    }

    //存款
    public void deposit(double amount) {
        balance += amount;
    }

    //取款
    public void withdraw(double amount) {
        if (balance >= amount) {
            balance -= amount;
        } else {
            System.out.println("余额不足!");
        }
    }
}

在这个类中,将所有的属性都设置为private,外部无法直接访问和修改,但是提供了一些public的方法来获取和修改这些属性,如getAccountNum、getName、getBalance、deposit和withdraw等方法。

使用这个类的示例代码如下:

public class TestAccount {
    public static void main(String[] args) {
        //创建账户对象
        Account account = new Account("123456", "张三", 1000.0);

        //获取账号、姓名和余额
        System.out.println("账号:" + account.getAccountNum());
        System.out.println("姓名:" + account.getName());
        System.out.println("余额:" + account.getBalance());

        //存款、取款
        account.deposit(500.0);
        account.withdraw(2000.0);
        account.withdraw(800.0);

        //输出取款后的余额
        System.out.println("余额:" + account.getBalance());
    }
}

在这个示例中,使用Account类来创建一个账户对象,并通过public的方法来获取和修改账户的属性,如获取账号、姓名和余额,存款和取款。这些操作都是通过public的方法来实现的,而属性本身是封装在类的内部的,不可直接访问和修改。

除了设置属性的访问权限以外,Java中还可以使用getter和setter方法来实现对属性的访问和修改,这样也是一种封装的方式。例如,在Account类中可添加以下方法:

//设置账号
public void setAccountNum(String accountNum) {
    this.accountNum = accountNum;
}

//设置姓名
public void setName(String name) {
    this.name = name;
}

//设置余额
public void setBalance(double balance) {
    this.balance = balance;
}

这样,可以通过setter方法来修改属性值,例如:

account.setAccountNum("654321");
account.setName("李四");
account.setBalance(2000.0);

总之,封装是OOP中一种重要的原则,可以提高代码的可读性、可维护性和安全性,令代码更加健壮、易于扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中的封装是什么? - Python技术站

(0)
上一篇 2023年4月27日
下一篇 2023年4月27日

相关文章

  • Java中Maven项目导出jar包配置的示例代码

    下面将详细讲解“Java中Maven项目导出jar包配置的示例代码”的完整攻略。 配置pom.xml文件 首先打开项目中的pom.xml文件,确保其中包含以下内容: <!– 配置打包信息,默认为jar –> <packaging>jar</packaging> <!– 配置依赖信息 –> <dep…

    Java 2023年5月20日
    00
  • 使用sharding-jdbc实现水平分库+水平分表的示例代码

    使用 Sharding-JDBC 实现水平分库+水平分表的步骤如下: 1. 创建共享库(shared database)的配置文件 定义数据库名称以及访问方式,如 JDBC URL,数据源等,同时还需要指定共享库所要分片策略和插件配置。 示例代码如下: # shardingsphere datasource config spring: sharding: …

    Java 2023年5月20日
    00
  • Java对象数组定义与用法详解

    Java对象数组定义与用法详解 在Java中, 数组是一种非常重要的数据结构,对象数组则是一种非常常用的数据类型。 定义对象数组 定义对象数组需要明确三个部分: 元素类型、数组名、以及数组大小。 类型[] 数组名 = new 类型[数组大小]; 例如,有一个Student类,需要定义一个包含5个学生对象的数组, 可以使用以下方式进行定义: Student[]…

    Java 2023年5月26日
    00
  • Kotlin基础教程之Run,标签Label,函数Function-Type

    Kotlin基础教程之Run run 函数是Kotlin中的一个高阶函数,主要用于在一个对象上调用一个代码块,并且该对象作为 lambda 表达式的上下文对象。该函数的返回值是代码块中最后一个表达式的值,或者一些额外指定的结果(通过 lambda 返回)。 使用 run 函数的语法如下: val result = someObject.run{ //在这里使…

    Java 2023年5月26日
    00
  • 什么是代码优化?

    以下是关于代码优化的完整使用攻略: 什么是代码优化? 代码优化是指通过改进代码的设计、算法、数据结构、代码实现等方面,提高代码的运行效率和响应速度,减少资源占用和延迟等问题。代码优化的目的是提高程序的性能,使其更加高效、稳定和可靠。 代码优化的原则 代码优化需要遵循以下原则: 不要过早优化:在代码编写的早期,不要早地考虑优化问题,应该先保证代码的正确性和可读…

    Java 2023年5月12日
    00
  • SpringBoot静态资源与首页配置实现原理深入分析

    Spring Boot静态资源与首页配置实现原理深入分析 在Spring Boot应用程序中,静态资源和首页是非常常见的需求。本文将深入分析Spring Boot静态资源与首页配置的实现原理,包括如何配置静态资源、如何配置首页、如何处理静态资源请求等。 配置静态资源 在Spring Boot应用程序中,可以使用以下方式配置静态资源: 1. 使用默认的静态资源…

    Java 2023年5月15日
    00
  • 通过实例深入学习Java的Struts框架中的OGNL表达式使用

    让我来详细讲解一下“通过实例深入学习Java的Struts框架中的OGNL表达式使用”的完整攻略。 什么是Struts框架中的OGNL表达式? OGNL 表达式是 Object-Graph Navigation Language (对象图导航语言)的缩写,是在Struts框架中用于处理表达式语言的一种语言。通过OGNL表达式,我们可以访问对象的属性、方法和集…

    Java 2023年5月20日
    00
  • Java下载远程服务器文件到本地(基于http协议和ssh2协议)

    Java下载远程服务器文件到本地(基于http协议和ssh2协议) 在Java编程中,我们经常需要从远程服务器下载文件到本地。这篇文章将介绍如何使用Java实现基于http协议和ssh2协议的文件下载操作。 基于HTTP协议下载文件 使用Java下载http协议的文件,我们可以使用Java中自带的URL和URLConnection类。 下面是一个示例代码,它…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部