20220724-Java的封装相关

含义

封装 (encapsulation)
指隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。

常见使用方法

class Person {
    // 将属性私有化
    private String name;
    private int age;
    private double salary;
    // 构造器
    public Person(String name, int age, double salary) {
        this.setName(name);
        this.setAge(age);
        this.setSalary(salary);
    }
    // 公共的获取属性方法
    public String getName() {
        return name;
    }
    // 公共的设置属性的方法
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
}

个人理解

  • 类中可以包含属性和方法,public和默认修饰符可以修饰类、属性和方法,protected和private只能修饰属性和方法。
  • 例如电视,内部电路和元器件如何组装等实现细节不需要用户考虑,只需要操作外边提供的按键即可,这是一种常见的隐藏细节,提供接口的封装案例。
  • 通常将类中属性设置为private私有化,然后在类中提供属性的set和get方法分别用来设置属性和获取属性。

Original: https://www.cnblogs.com/zhanghuaze/p/16514235.html
Author: 淡忘的江南
Title: 20220724-Java的封装相关

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615467/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java_比较两个图片的相似度

    说明:目前使用像素偏移量为5,可根据实际情况相应修改 package com.creditease.fetch.credit.util.similarity; import com…

    Java 2023年5月29日
    091
  • 微信小程序数据解密(Java 语言)

    pom 依赖 非必须,hutool 是为了使用 AES 工具类,bcprov 是为了使用 PKCS7Padding,都可以自己实现,这里为了方便。 工具类 Original: ht…

    Java 2023年5月29日
    069
  • 你文件乱码了么

    之前对文件的编码,解码一直停留在很抽象的层面,就想着各种编码方式,什么gbk,utf8,ascii等等,然后什么方式编码,就用什么方式解码,比较模糊的,而且项目中uft8编码无处不…

    Java 2023年6月6日
    093
  • Java中类成员访问权限修饰符(public、protected、default、private)

    1.public(公共): 任何类都可以进行访问(最不严格)。 2.protected(受保护): 同一包内的类以及其子类可以进行访问。 3.default(默认): 类中不加任何…

    Java 2023年6月13日
    065
  • NopCommerce中的单例

    项目中经常会遇到单例的情况。大部分的单例代码都差不多像这样定义: internal class SingletonOne { private static SingletonOne…

    Java 2023年6月5日
    073
  • java反编译工具——Jd-gui

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月29日
    049
  • 灵感乍现!造了个与众不同的Dubbo注册中心扩展轮子

    hello大家好呀,我是小楼。 作为一名基础组件开发,服务好每一位业务开发同学是我们的义务(KPI)。 客服群里经常有业务开发同学丢来一段代码、一个报错,而我们,当然要微笑服务,耐…

    Java 2023年6月6日
    079
  • mongodb添加延时节点

    简介 延时节点是主节点过去某个时间点的”数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据。例如,当前时间是10:0…

    Java 2023年6月6日
    057
  • Vue 多环境配置

    settings.js config/index.js vue main.js Original: https://www.cnblogs.com/vipsoft/p/166966…

    Java 2023年6月14日
    066
  • lua 发送消息到 Rabbitmq

    lua 发送消息到 kakfka 的类库挺多的,还都比较靠谱,但是 lua 连接 Rabbitmq 的几个类库好像都不太好用, 有用stomp 协议的, 还有 用AMQP 协议的,…

    Java 2023年5月30日
    089
  • git没有提交的代码如何迁移到新建分支

    在接到需求以后,直接在master上开发了,到提交的时候才想起来忘记新建版本分支了,直接提交到master会影响到其他人。这时候就想着将本地编辑的代码,没有提交的代码暂存起来,然后…

    Java 2023年6月8日
    084
  • 使用Spring提供的BeanUtils.copyProperties()方法报错:Could not copy property ‘xxx’ from source to target

    出现问题:在使用BeanUtils.copyProperties()方法时,如果javaBean中的属性含有基本类型,而model模型中对应的属性值为 null 的话,就会出现这个…

    Java 2023年5月30日
    060
  • H2-Table CATALOGS not found

    在使用 IntelliJ IDEA 2021.1.3 版本,使用默认配置连接 H2 数据库的时候,出现下面错误,项目里 H2 使用的版本为 2.0.202 。 [42S02][42…

    Java 2023年6月8日
    065
  • java LinkedList (详解)

    Java 链表(LinkedList) 一、链表简介 1、链表 (Linked List) 是一种常见的基础数据结构,是一种线性表,但是链表不会按线性表的顺序存储数据,而是每个节点…

    Java 2023年6月5日
    0128
  • mybatis学习思维导图——附b站视频网址和百度网盘(来自动力节点)

    三层架构 mybatis框架 mybatis实战 框架的使用方式 mybatis框架的使用步骤: mybatis的传参数 #和$区别 mybatis封装sql语句的执行结果 表的列…

    Java 2023年6月13日
    076
  • Spring Boot设置上传文件大小

    原文地址:http://t.zoukankan.com/jiangwz-p-9030943.html 可以使用配置文件配置,也可以使用Bean在启动类中配置 配置文件为applic…

    Java 2023年5月30日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球