Java面向对象的封装你了解吗

Java的面向对象编程中,封装是指将功能和数据进行封装,使得外部无法直接访问、修改。封装有助于保护数据的安全性,同时也提高了代码的可维护性和可扩展性。

封装的实现主要是通过访问修饰符来控制属性和方法的访问权限。Java 中常用的访问修饰符包括 public、private、protected 和 default。其中,public 表示公开的,任何地方都可以访问;private 表示私有的,只有本类中可以访问;protected 表示受保护的,只有本类和其子类中可以访问;default 表示默认的,只有同一个包中的类可以访问。

为了将属性和方法进行封装,通常会将属性设为私有的,然后提供公共的访问和修改方法,即 getter 和 setter 方法。getter 方法用来获得属性的值,setter 方法用来设置属性的值,这些方法都必须是公共的(public),以便外部可以访问。

以下是两个示例:

示例一:学生类

public class Student {
    private String name;
    private int age;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return this.age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

在这个示例中,Student 类有两个私有属性 name 和 age,分别用来表示学生的姓名和年龄。为了封装这些属性,我们提供了公共的 getter 和 setter 方法,用于获取和修改属性的值。这样,外部就无法直接访问和修改属性的值,而必须通过公共方法来操作。

示例二:矩形类

public class Rectangle {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double getArea() {
        return this.width * this.height;
    }

    public double getWidth() {
        return this.width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    public double getHeight() {
        return this.height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}

在这个示例中,Rectangle 类有两个私有属性 width 和 height,分别用来表示矩形的宽度和高度。在构造方法中,通过参数初始化这些属性。为了计算矩形的面积,我们提供了一个公共的 getArea 方法。此外,为了修改宽度和高度,我们也提供了公共的 setter 方法。这样,在修改宽度和高度的时候,还可以进行一些额外的操作,比如重新计算面积。

综上所述,封装是面向对象编程中的一个重要概念,通过控制属性和方法的访问权限,可以保护数据的安全性,同时也提高了代码的可维护性和可扩展性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面向对象的封装你了解吗 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • SpringBoot异常处理之异常显示的页面问题

    下面是SpringBoot异常处理之异常显示的页面问题的完整攻略。 异常显示的页面问题 当我们在SpringBoot应用中发生了异常时,默认情况下,会直接将异常信息输出到控制台上。如果是Web应用,我们通常需要更加友好的方式来展示异常信息,方便排查问题。 本篇攻略将介绍两种常见的方式来实现在Web应用中展示异常信息的需求。 方法一:使用@Controller…

    Java 2023年5月27日
    00
  • springboot多环境配置方案(不用5分钟)

    下面是详细讲解“springboot多环境配置方案(不用5分钟)”的完整攻略: 1. 原理 Spring Boot 支持通过不同的配置文件来管理不同的环境。它提供了一个标准的命名规则:application-{profile}.properties/yml,比如 application-dev.yml,application-test.yml,applica…

    Java 2023年5月15日
    00
  • 使用Java对数据库进行基本的查询和更新操作

    使用Java对数据库进行基本的查询和更新操作需要经过以下步骤: 1.建立连接:通过Java提供的JDBC(Java Database Connectivity)API连接数据库,可以使用以下代码示例: String url = "jdbc:mysql://localhost/testdb"; //数据库url String usernam…

    Java 2023年5月19日
    00
  • Spring boot整合mybatis实现过程图解

    首先我们来讲解一下Spring Boot整合Mybatis的基本过程和步骤: 1. 引入相关依赖 首先我们需要在我们的pom.xml文件中引入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…

    Java 2023年5月19日
    00
  • Java实现调用MySQL存储过程详解

    下面是关于“Java实现调用MySQL存储过程详解”的完整攻略。 什么是存储过程 存储过程是一组预先编译好的SQL语句集合,存储在数据库中,可以在需要时被调用执行。存储过程可以接受参数并返回数据,被广泛应用于数据处理和业务流程中,广泛使用于各种数据库系统中。 Java如何调用MySQL存储过程 Java程序可以通过调用JDBC API中提供的方法来调用MyS…

    Java 2023年5月19日
    00
  • SpringBoot工程启动顺序与自定义监听超详细讲解

    Spring Boot工程启动顺序与自定义监听超详细讲解 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在Spring Boot应用程序启动时,Spring Boot会按照一定的顺序初始化各个组件。本文将介绍Spring Boot工程启动顺序,并提供两个示例。同时,我们还将介绍如何自定义监…

    Java 2023年5月15日
    00
  • Java IO流对文件File操作

    下面是详细讲解Java IO流对文件操作的完整攻略: 概述 Java中的IO流是指Input/Output流,用于读写数据。Java IO流可以操作不同类型的数据源,其中文件作为一种重要的数据源,Java IO流提供了众多的类和方法,方便对文件进行读写和其他操作。Java IO流对于文件的操作可以分为两类:输入流(InputStream)和输出流(Outpu…

    Java 2023年5月19日
    00
  • Java 实现Redis存储复杂json格式数据并返回给前端

    实现Redis存储复杂json格式数据并返回给前端需要经过以下步骤: 1. 安装Redis和Java Redis客户端 Redis可以在官网下载最新版的安装文件,Redis的Java客户端可以使用Jedis和Lettuce。 2. 创建Java Redis连接 使用Jedis或Lettuce,创建Redis连接对象,连接Redis数据库,并获取Redis的操…

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