Java 学习和实践笔记(31):封装(encapsulation)

news2024/11/16 22:32:23

面向对象的三大特点:继承、封装、多态。前面学了继承,现在讲封装。

封装encapsulation一词来自于capsule,胶囊,小密器,密闭的空间。

封装的理念:高内聚,低耦合。

高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;

低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。


编程中封装的具体优点有以下四个:

提高代码的安全性。

提高代码的复用性。

“高内聚”︰封装细节,便于修改内部代码,提高可维护性。

“低耦合”∶简化外部调用,便于调用者使用,便于扩展和协作。

 封装的实现—使用访问控制符
Java是使用“访问控制符”来控制哪些细节需要封装哪些细节需要暴露的。Java中使用4种“访问控制符”,分别为:private、default、protected、public,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python是编译型还是解释型?——跟老吕学Python编程

Python是编译型还是解释型? 编译型语言和解释型语言的概念编译型语言的定义解释型语言的定义 编译型语言和解释型语言的区别主要体现在程序的执行过程:编译型语言解释型语言 Python的编译和执行过程Python的解释器Python的交互式解释器Python与编译型语言…

thingsboard如何自定义udp-transport

0、参考netty实现udp的文章 https://github.com/narkhedesam/Netty-Simple-UDP-TCP-server-client/blob/master/netty-udp/src/com/sam/netty_udp/server/MessageDecoder.java 调试工具使用的是:卓岚TCP&UDP调试工具 1、在common\transport下面创建udp模块,仿照mqtt的创…

千兆网络变压器的特点

不要选错了,同款的小24PIN工业级千兆网络变压器有两种,外壳尺寸、工程参数完全相同。很多客户对这两款产品傻傻分不清,今天我就来详细介绍一下: HX82409S特点有三个: 一,采用单环设计,只有一颗…

部署 LVS(nginx)+keepalived高可用负载均衡集群

目录 一、集群的概述 1、什么是集群 2、普通集群与负载均衡集群 2.1 普通集群(Regular Cluster) 2.2 负载均衡集群(Load Balancing Cluster) 2.3 高可用集群(High Availability Cluster) 2.4 区别 …

SpringMVC03、HelloSpring

3、HelloSpring 3.1、配置版 新建一个Moudle &#xff0c; springmvc-02-hello &#xff0c; 添加web的支持&#xff01; 确定导入了SpringMVC 的依赖&#xff01; 配置web.xml &#xff0c; 注册DispatcherServlet <?xml version"1.0" encoding"UTF-8…

Leetcode3069. 将元素分配到两个数组中 I

Every day a Leetcode 题目来源&#xff1a;3069. 将元素分配到两个数组中 I 解法1&#xff1a;模拟 简单地按题意模拟。 代码&#xff1a; /** lc appleetcode.cn id3069 langcpp** [3069] 将元素分配到两个数组中 I*/// lc codestart class Solution { public:vector<…

详解HashMap、Hashtable和ConcurrentHashMap的区别

前言 本篇博客博主将详细地解释HashMap、Hashtable和ConcurrentHashMap的区别&#xff0c;坐好板凳发车啦~~ 在多线程使用哈希表&#xff0c;HashMap本身就不是线程安全的&#xff1b; 在多线程环境下使用哈希表可以使用&#xff1a;Hashtable和ConcurrentHashMap。 一.Has…

python学习 the fifth day

七、数据容器&#xff1a;dict字典 1.字典的定义 为什么需要字典&#xff1f; 通过key&#xff08;字典&#xff09;&#xff0c;取到对应的value 字典的key和value可以是任意数据类型&#xff08;key不可以是字典&#xff09; 字典的嵌套&#xff1a; #字典的嵌套dictiona…

Langchain-Chatchat本地搭建ChatGLM3模型和提取PDF内容

文章目录 1、软件要求2、安装CUDA2.1、安装gcc2.2、安装CUDA 3、安装Anaconda33.1、下载Anaconda33.2、创建python虚拟环境 4、部署系统4.1、下载源码4.2、安装依赖4.3、下载模型4.4、初始化配置和知识库4.4.1、初始化配置4.4.2、初始化知识库 4.5、运行4.6、运行4.6.1、启动4.…

TimescaleDB 开源时序数据库

文章目录 1.TimescaleDB介绍2.Hypertable 和 chunk3.Hypertable4.Hypertable操作 开源中间件 # TimescaleDBhttps://iothub.org.cn/docs/middleware/ https://iothub.org.cn/docs/middleware/timescale/timescale-summary/1.TimescaleDB介绍 TimescaleDB是基于PostgreSQL数据…

在vue2中使用tailwindcss(完整教程)

如果你看过好多教程之后&#xff0c;还是报错&#xff0c;无法使用tailwindcss&#xff0c;我希望本教程可以让你成功上岸。 环境要求 node&#xff1a;>v14.17.0 安装tailwindcss 由于最新的tailwind css使用post css 8版本&#xff0c;vue2框架暂时还不支持&#xff0…

HTML5 基础1

<b> 和 <strong>的异同 相同点&#xff1a;在显示上&#xff0c;这两个标签都是加粗文本。 不同点&#xff1a;使用网页阅读器阅读网页&#xff08;盲人使用&#xff09;&#xff0c;strong 会重读&#xff0c;b 则不会。从起源上来说&#xff0c;strong 是为了在…

Word转PDF保持图片原有清晰度

目录 1、需要的软件 2、配置Acrobat PDFMaker 3、配置Acrobat Distiller 4、更改Acrobat PDFMaker中的首选项 5、将word转换成pdf 1、需要的软件 利用Adobe Acrobat DC工具。 打开word&#xff0c;选择Acrobat的插件&#xff0c;选择首选项。 如果没有出现Acrobat插件也…

git入门到精通

第3章 Git常用命令 3.1 设置用户签名 3.2 初始化本地库 3.3 查看本地 状态 3.3.1 首次查看&#xff08;工作区没有任何文件&#xff09; 3.3.2 新增文件&#xff08;hello.txt&#xff09; 3.3.3 再次查者&#xff08;检測到末追踪的文件&#xff09; 3.4添加暫存区 3…

Pytorch线性回归实现(Pycharm实现)

步骤都在注释里写清楚了&#xff0c;可以自己调整循环的次数观察输出的w与b和loss的值 import torch#学习率&#xff0c;用来进行w和b的更新 learning_rate 0.01 #1. 准备数据 #这里使用y3x0.8.也就是w3&#xff0c;b0.8.创造一个500行1列的数据 xtorch.rand([500,1]) y_true…

物联网,智慧城市的数字化转型引擎

随着科技的飞速发展&#xff0c;物联网&#xff08;IoT&#xff09;已成为推动智慧城市建设的关键力量。物联网技术通过连接各种设备和系统&#xff0c;实现数据的实时采集、传输和处理&#xff0c;为城市的智能化管理提供了强大的支持。在数字化转型的浪潮中&#xff0c;物联网…

图论入门题题解

✨欢迎来到脑子不好的小菜鸟的文章✨ &#x1f388;创作不易&#xff0c;麻烦点点赞哦&#x1f388; 所属专栏&#xff1a;刷题_脑子不好的小菜鸟的博客-CSDN博客 我的主页&#xff1a;脑子不好的小菜鸟 文章特点&#xff1a;关键点和步骤讲解放在 代码相应位置 拓扑排序 / 家谱…

精读《React Conf 2019 - Day2》

1 引言 这是继 精读《React Conf 2019 - Day1》 之后的第二篇&#xff0c;补充了 React Conf 2019 第二天的内容。 2 概述 & 精读 第二天的内容更为精彩&#xff0c;笔者会重点介绍比较干货的部分。 Fast refresh Fast refresh 是更好的 react-hot-loader 替代方案&am…

推荐一款go语言的开源物联网框架-opengw

推荐一款go语言的开源物联网框架&#xff0c;设计思想不错&#xff0c;值的学习。 技术交流 QQ群1028704210 官网及驱动下载 http://www.opengw.cn http://www.opengw.cn/col.jsp?id104 可执行文件下载 https://gitee.com/my_iot/goAdapter/releases 码云地址 https:/…

excel统计分析——重复测量设计

参考资料&#xff1a;生物统计学 裂区设计中的裂区通常是指空间上的裂区&#xff0c;如果对试验指标进行连续测量时&#xff0c;时间也可以作为裂区因素。重复测量设计实际上就是时间裂区设计。进行试验结果的统计分析时&#xff0c;将试验因素作为主区&#xff0c;时间因素作为…