【软件工程师从0到1】- 封装 (知识汇总)

前言

介绍:大家好啊,我是hitzaki辰。

社区:(完全免费、欢迎加入)日常打卡、学习交流、资源共享的知识星球。

自媒体:我会在b站/抖音更新视频讲解 或 一些纯技术外的分享,账号同名:hitzaki辰。

正文开始,抓紧上车!

8f4dc768ffa445d78de7eb9469c55c3d.png


一 - 封装的目的

1.隐藏类的实现细节

2.让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对实例变量的不合理使用

3.可进行数据检查,从而有利于保证对象信息的完整性

4.便于修改提高代码的可维护性。

二 - 权限修饰符

public(公有的) > protected(受保护的) > (default)(缺省的) > private(私有的)

(default并不是关键字 default,而是根本不写)

1 - private

  1.作用域:  只在该类的内部可见,出了该类不可见,无法使用。(子类也无法访问)

  2.修饰:

  private不能修饰外部类,可以修饰内部类。

  被private修饰的成员变量或成员方法,不能被类的调用者使用。

  阿里编程规约:类中,无特殊说明,成员变量全用private封装。

  修饰成员变量实现私有化,再使用设置器setter、访问器getter来访问。

  优点:提高代码复用, 提高程序的安全性。

  (方法,类,属性的私有化... 都是封装的体现)

2 - default

作用域:只有同一个包内才能访问。(同一个直接包,子包不算)

3 - protected

作用域:同一个包内 或 子类

应用:设计模式中的模板方法

  使用它修饰多个行为方法:protected 返回 行为n(){}

  最终public action方法按顺序调用所有行为方法。

  子类可以对各个行为方法进行重写,以此改变action的行为,并且这些单独的行为方法还不会对外暴露。

4 - public

作用域:全部

三 - java的"包"

java的包是用来组织文件的一种虚拟文件系统,它是跨平台的,与操作系统无关。

 

因为不同的人会以不同的目的定义相同的类名或接口名,Java解决此问题的主要方法是包,Java中组织类和接口的方式也是包。

1)把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

2)包如同文件夹一样,文件放在文件夹 ,而类和接口放在包下,包和文件夹一样,都是层次结构。

3)包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

4)以 . 分隔表层次结构,比如java.lang.String,java为上层包名,lang为下层包名,     {带完整包名的类称为完全限定名。}

    (Java API 中所有类、接口都位于包java、javax下, java是标准包、 javax是扩展包)

1 - 声明程序所在包

1)在外部类的首部 (前面不能有除注释外的其他语句), 必须编写类所属哪个包, 格式: package 包名;

2)包名的前缀通常由多个单词组成, 所有单词的字母小写, 单词与单词之间使用.隔开 ,

3)一般命名为“域名.项目名.模块名…”。  (因为Java规范要求包命名的唯一性,因此常使用域名命名,这样不会冲突)

比如org.xuanchen.wschool.service ,这是这个模块所有代码都有的包前缀,它一定是唯一的,其次再根据业务细分出子包,如controller、service。

2 - 通过包使用类

1)通过完全限定名使用

2)通过完全限定名导入后 再使用, import 完全限定名;

3)import java.util.*;     将导入这个包下的所有直接类。 (不包含子包下的类)   (不可以import java.*.*; )

4)静态导入: 在JDK 1.5之后引入的新特性,可直接将类的公开静态方法和成员导入到自己这里,此后直接根据方法名使用。

如 import java.util.Arrays.*;            此后可以直接sort(arr);

3 - jar包

打包的一般都是编译后的代码, 将1到多个编译后的文件打包为1个文件,方便其他程序调用。

Java的打包命令为jar,打包后的文件拓展名为jar,称为jar包。

 

使用下列方式打包:

1)先找到编译后的文件 .class 的根目录

2)在cmd运行命令: jar -cvf <包名>.jar <最上层包名>

 

1)jar包其实就是一个压缩文件,可以使用解压缩的工具打开。

2)Java类库、第三方类库 都是以jar包的形式提供,使用时将其jar包加入类路径即可。

 

 

结尾

感谢你看到这里,如果感觉内容不错的话请点赞支持一下!

如果小伙伴对我的讲解有疑问,欢迎评论区讨论。

 

 

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

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

相关文章

Jenkins扩展篇-流水线脚本语法

JenkinsFile可以通过两种语法来声明流水线结构&#xff0c;一种是声明式语法&#xff0c;另一种是脚本式语法。 脚本式语法以Groovy语言为基础&#xff0c;语法结构同Groovy相同。 由于Groovy学习不适合所有初学者&#xff0c;所以Jenkins团队为编写Jenkins流水线提供一种更简…

DataFunSummit:2023年OLAP引擎架构峰会-核心PPT资料下载

一、峰会简介 OLAP技术是当前大数据领域的热门方向&#xff0c;该领域在各个行业都有广泛的使用场景&#xff0c;对OLAP引擎的功能有丰富多样的需求。同时&#xff0c;在性能、稳定性和成本方面&#xff0c;也有诸多挑战。目前&#xff0c;OLAP技术没有形成统一的事实标准&…

redis性能管理

redis的数据库是存放在内存当中&#xff0c;所以对内存的监控至关重要 redis内存监控和解析 1.如何查看redis内存使用情况 [rootlocalhost utils]# redis-cli -h 20.0.0.170 -p 6379 20.0.0.170:6379> info memory used_memory:853336 //redis中数据占用的内存 use…

触发设备离线

业务场景 业务开发过程中&#xff0c;我们经常会需要判断远程终端是否在线&#xff0c;当终端离线的时候我们需要发送消息告知相应的系统&#xff0c; 环形队列 1.创建一个index从0到30的环形队列&#xff08;本质是个数组&#xff09; 2.环上每一个slot是一个Set&#xf…

MYSQL索引使用注意事项

索引使用注意事项&#xff1a; 1.索引列运算 不要在索引列上进行运算操作&#xff0c;否则索引将失效&#xff1b; 2.字符串不加引号 字符串类型使用时&#xff0c;不加引号&#xff0c;否则索引将失效&#xff1b; 3.模糊查询 如果仅仅是尾部模糊匹配&#xff0c;索引将不会失…

关于软raid的实现及常见问题

RAID概念 磁盘阵列&#xff08;Redundant Arrays of Independent Disks&#xff0c;RAID&#xff09;&#xff0c;有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘&#xff0c;以硬件&#xff08;RAID卡&#xff09;或软件&#xff08;MDADM&…

关于用css设置input输入框hover的时候的样式以及当input为disabled的时候,不要让hover样式生效

效果如果&#xff1a; 编辑状态下的时候&#xff1a; 只读状态下的时候&#xff1a; 代码如图&#xff1a; <input type"text" name"dataForm.exportCode" id"exportCodeItem" required :disabled"editDisabled" />input:not(…

【前端学java】语法练习-工具类的封装(13)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

java.net.UnknownHostException: eureka

java.net.UnknownHostException: eureka 哦。HOST漏了 #linux /etc/hosts #windows C:\Windows\System32\drivers\etc\hosts 127.0.0.1 eureka7000 127.0.0.1 eureka7001 127.0.0.1 eureka7002

maven打包可执行jar含依赖lib

修改pom.xml <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- jdk8可用&#xff0c;其他jdk版本可能需改插件版本 --><version>2.3.7.RE…

sql调优

慢查询 SQL 治理方案 一、SQL 性能下降的原因 在对 SQL 进行分析之前&#xff0c;需要明确可能导致 SQL 执行性能下降的原因进行分析&#xff0c;执行性能下降可以体现在很多方面&#xff1a; 查询语句写的烂索引没加好表数据过大数据库连接数不够查询的数据量过大被其他慢s…

visual studio 如何建立 C 语言项目

安装这个 模块。 新建 空项目 创建完成 写demo 点击运行&#xff1a;

Web项目从Tomcat迁移到TongWeb

注意事项 1. 使用JNDI方式获取数据源&#xff1a; ①在TongWeb创建JDBC连接池; ②修改Web项目数据源配置. #spring.datasource.urljdbc:mysql://127.0.0.1:3306/demo #spring.datasource.usernametest #spring.datasource.passwordspring.datasource.jndi-namedemo2. 修…

Spring cloud - Hystrix源码

其实只是Hystrix初始化部分&#xff0c;我们从源码的角度分析一下EnableCircuitBreaker以及HystrixCommand注解的初始化过程。 从EnableCircuitBreaker入手 我们是通过在启动类添加EnableCircuitBreaker注解启用Hystrix的&#xff0c;所以&#xff0c;源码解析也要从这个注解…

最新PHP熊猫头图片表情斗图生成源码

这是一款能生成熊猫头表情斗图的自适应系统源码&#xff0c;无论是在电脑还是手机上都可以正常使用&#xff01;这个源码集成了搜狗搜索图片接口&#xff0c;可以轻松地一键搜索数百万张图片&#xff0c;并且还包含了表情制作等功能模块。对于一些新站来说&#xff0c;这是一个…

JavaScript的过滤大师:深度解析Filter用法

JavaScript的过滤大师&#xff1a;深度解析Filter用法 前言基础篇filter的基本用法语法示例 自定义过滤函数数组对象的过滤复杂条件的筛选常见应用场景性能优化注意性能的建议在大规模数据集下的优化方法 案例分析实际案例&#xff1a;用户筛选使用 filter 方法解决问题代码优化…

产品工程师工作的职责十篇(合集)

一、岗位职责的作用意义 1.可以最大限度地实现劳动用工的科学配置; 2.有效地防止因职务重叠而发生的工作扯皮现象; 3.提高内部竞争活力&#xff0c;更好地发现和使用人才; 4.组织考核的依据; 5.提高工作效率和工作质量; 6.规范操作行为; 7.减少违章行为和违章事故的发生…

好视通视频会议系统(fastmeeting) toDownload.do接口存在任意文件读取漏洞复现 [附POC]

文章目录 好视通视频会议系统(fastmeeting) toDownload.do接口存在任意文件读取漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 好视通视频会议系统(fastmeeting) toDownload.do接口存在任意文件…

超详细!新手必看!STM32-通用定时器简介与知识点概括

一、通用定时器的功能 在基本定时器功能的基础上新增功能&#xff1a; 通用定时器有4个独立通道&#xff0c;且每个通道都可以用于下面功能。 &#xff08;1&#xff09;输入捕获&#xff1a;测量输入信号的周期和占空比等。 &#xff08;2&#xff09;输出比较&#xff1a;产…