java之封装

article/2025/11/7 9:31:15

1.封装

请添加图片描述
1. 封装
1.1 private关键字
private是一个修饰符,可以用来修饰成员(成员变量,成员方法)

 

被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰


1.3 this关键字
this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量

1.4 封装思想

封装概述
是面向对象三大特征之一(封装,继承,多态)
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的

封装原则
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
成员变量private,提供对应的getXxx()/setXxx()方法

封装好处
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性

2. 构造方法
2.1 构造方法概述
构造方法是一种特殊的方法

作用:创建对象 Student stu = new Student();

格式:

public class 类名{
​ 修饰符 类名( 参数 ) {
​ }

}

功能:主要是完成对象数据的初始化

2.2 构造方法的注意事项
构造方法的创建
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载
如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

推荐的使用方式
无论是否使用,都手工书写无参数构造方法

重要功能!
可以使用带参构造,为成员变量进行初始化

3.String类
3.1String类概述
​ String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!

3.2String类的特点
字符串不可变,它们的值在创建后不能被更改
虽然 String 的值是不可变的,但是它们可以被共享
字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
3.3String类的构造方法
常用的构造方法


3.4创建字符串对象两种方式的区别

通过构造方法创建

​通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同

直接赋值方式创建

​ 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护

3.5字符串的比较
3.5.1==号的作用
比较基本数据类型:比较的是具体的值
比较引用数据类型:比较的是对象地址值
3.5.2equals方法的作用
3.6String常用方法

4.StringBuilder类
4.1StringBuilder类概述
​ StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的

 

4.2StringBuilder类和String类的区别
String类:内容是不可变的
StringBuilder类:内容是可变的
4.3StringBuilder类的构造方法
常用的构造方法


4.4StringBuilder类添加和反转方法
添加和反转方法


4.5StringBuilder和String相互转换
StringBuilder转换为String

 

​ public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String

String转换为StringBuilder

​ public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder

4.6StringBuilder常用方法

 


http://chatgpt.dhexx.cn/article/FvfRmDVK.shtml

相关文章

【JavaScript】js中非常常见的面试题

文章目录 1、手动实现防抖和节流2、let、const、var 的区别3、箭头函数与普通函数区别4、Promise5、数据类型6、检测数据类型的常用方法1 .typeof2 . instanceof3 .constructor4 . 使用 Object.prototype.toString.call()检测对象类型⭐5 . 自己封装函数6、isArray 7、数组的常…

JS的100道经典面试题(一)只看这四篇就够了,收藏起来以后偷偷看

年轻人你不讲武德,耗子尾汁~~~ 总结就是为了形成自己的js知识网,提升自己,加油! 开始干 1、介绍js的基本数据类型   答: Undefined、Null、Boolean、Number、String 2、js有哪些内置对象?  答&…

大前端JS部分基础面试题(含答案)

1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Null、Boolean、Number、String 值类型:数值、布尔值、null、undefined。 引用类型:对象、数组、函数。 堆栈数据结构:是一种支…

Js面试题__附答案

1、什么是JavaScript?(这是基本题,对很多程序员来说也是送分题!) JavaScript是客户端和服务器端脚本语言,可以插入到HTML页面中,并且是目前较热门的Web开发语言。同时,JavaScript也…

js 变量及作用域经典面试题

function Foo() {getName function () { alert (1); };return this; } Foo.getName function () { alert (2);}; Foo.prototype.getName function () { alert (3);}; var getName function () { alert (4);}; function getName() { alert (5);}//请写出以下输出结果&#x…

前端面试题集锦——JavaScript

JavaScript 栈和队列的区别? 栈的插入和删除操作都是在一端进行的,而队列的操作却是在两端进行的。 队列先进先出,栈先进后出。 栈只允许在表尾一端进行插入和删除,而队列只允许在表尾一端进行插入,在表头一端进行删除 栈和…

收集的面试题 js面试题

题库推荐网址:https://github.com/FEGuideTeam/FEGuide/tree/master/javascript%E9%97%AE%E9%A2%98 第1题: ## JavaScript 由以下三部分组成:1. ECMAScript(核心):JavaScript 语言基础2. DOM(文档对象模…

JS闭包+常见面试题

scope作用域 、Closure闭包对象 可以借助chrome调式工具查看闭包对象 注意:function声明存在变量提升,所以22行已经存在闭包对象了; 闭包产生的条件: 函数嵌套;嵌套的内部函数引用了外部函数的变量才会产生闭包对象…

前端面试题汇总(含答案)(JS篇)

主要自用,持续更新,相同类型的题目尽量放在了一起,参考的实在太多了就没有列出,侵权烦请联系删除。提示:自动生成的目录在页面右边---------->>>>>>>>>>>>>>>> Js的…

前端面试题(js篇)

1.解释一下什么是闭包 什么是闭包:函数使用了不属于自己的局部变量(函数套函数,里面函数使用了外面函数定义的变量) 闭包的作用:避免全局污染 闭包的缺点:使用过多会造成内存泄漏(占用的内存释放不掉) 2.…

js 实现页面隐藏、关闭、刷新给出对应的提示

我们在做项目的时候经常会遇到一些需求,比如在某些页面当点击浏览器刷新 或者关闭的时候会有对应的提示,是否离开或者重新加载此网站。比如csdn写文章的时候就有这个弹窗,这功能就是用onbeforeunload实现的。 注意:如果你加载下面…

js面试题大坑——隐式类型转换

1.1 隐式转换介绍 1.2 隐式转换规则 1.3 坑一:字符串连接符与算术运算符隐式转换规则混淆 1.4 坑二:关系运算符:会把其他数据类型转换成number之后再比较关系 1.5 坑三:复杂数据类型在隐式转换时会先转成String&#xff0…

u一点·料:阿里巴巴1688ued体验设计践行之路

U一点料 阿里巴巴1688UED体验设计践行之路 阿里巴巴1688用户体验部著 图书在版编目(CIP)数据 U一点料:阿里巴巴1688UED体验设计践行之路/阿里巴巴1688用户体验部著. —北京:机械工业出版社,2015.8 ISBN 978-7-111-5122…

一段百年征程的有限单群

1832年的某个清晨,革命中的法国见证了重新决斗。 在某个瞬间,某位青年被对手的枪射中腹部。随后去世。在当时狂热的政治斗争中,仅仅有寥寥数人意识到。法国,甚至世界。又失去了还有一个伟大的头脑。 这位青年姓伽罗华,…

权威发布:新一代人工智能发展白皮书(2017)

来源:机器人大讲堂 指导单位、专家顾问及编写人员 顾 问 潘云鹤 中国工程院院士 指导单位 工业和信息化部信息化和软件服务业司 指导委员会 谢少锋 工信部信软司司长 李冠宇 工信部信软司副司长 徐晓兰 中国电子学会副理事长兼秘书长 张宏图 中国电…

《构建之法,邹欣》阅读笔记

前言: 从2018年10月30日开始,阅读由微软工程师邹欣老师撰写的《构建之法》一书,全书共435页,每天阅读15页,在一个月(30天)完成。每天阅读完成后,需要思考当日的阅读要点和一些思考。…

C语言练习——提高篇

新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。 主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习 CSDN的部分内容会重写再搬迁到公众号,欢迎关注! 目录 汉诺…

一文说透低代码平台/无代码平台

一、低代码/无代码平台是什么 二、低代码/无代码平台是怎么产生的 三、低代码/无代码平台应具备哪些能力 四、主流的低代码/无代码平台有哪些 五、低代码/无代码平台典型应用场景 六、低代码/无代码平台有什么价值 七、低代码/无代码平台有什么优势 八、低代码/无代码平…

代码知识点

JS&基础知识篇: 1、事件流 分为捕获型、冒泡型,addEventListener的第三个参数,为true是捕获型,为false是冒泡型(即默认不写是冒泡型) 常用的事件:click、mouseover(支持冒泡…

「可视化搭建系统」——从设计到架构,探索前端领域技术和业务价值

阿里巴巴集团前端委员会主席 圆心:未来前端的机会在哪里 对前端未来期许有四点:搭建服务, Serverless,智能化,IDE。仔细想想,一个「可视化搭建系统」的想象空间,正能完美命中这些方面。前端的边…