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

2023-11-21 13:20

本文主要是介绍【软件工程师从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包加入类路径即可。

 

 

结尾

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

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

 

 

这篇关于【软件工程师从0到1】- 封装 (知识汇总)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/402588

相关文章

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

Go语言利用泛型封装常见的Map操作

《Go语言利用泛型封装常见的Map操作》Go语言在1.18版本中引入了泛型,这是Go语言发展的一个重要里程碑,它极大地增强了语言的表达能力和灵活性,本文将通过泛型实现封装常见的Map操作,感... 目录什么是泛型泛型解决了什么问题Go泛型基于泛型的常见Map操作代码合集总结什么是泛型泛型是一种编程范式,允

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java 枚举的常用技巧汇总

《Java枚举的常用技巧汇总》在Java中,枚举类型是一种特殊的数据类型,允许定义一组固定的常量,默认情况下,toString方法返回枚举常量的名称,本文提供了一个完整的代码示例,展示了如何在Jav... 目录一、枚举的基本概念1. 什么是枚举?2. 基本枚举示例3. 枚举的优势二、枚举的高级用法1. 枚举

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始