面向对象——————封装

[学习笔记] 面向对象_面向对象封装性 主要讲了什么是封装性,封装性的优点和缺点,以及如何使用封装、以及成员变量和局部变量的概念。 阅读详情

一,封装

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

二,封装的体现

体现一:将类的属性私有化(private),同时提供公共的(public)方法来获取(get)和设置(set)此属性的值。

三,四种权限修饰符

同一个类中同一个包中子类中任何地方
public可以可以可以可以
protected可以可以可以不可以
默认修饰符可以可以不可以不可以
private可以不可以不可以不可以

说明:4种权限修饰符都可以修饰类的内部结构:属性,方法,构造器,内部类,修饰类的话只能使用:缺省(默认修饰符),public 

 四,封装的步骤 

五,构造器(构造方法)

1,构造器的作用

1)创建对象(new对象)

2)初始化对象的信息(赋值)

2,使用说明

1)如果没有定义构造器的话,系统会默认提供一个空参的构造器

2)定义构造器的格式:权限修饰符     类名     (形参列表)  {             }

3)一旦我们自己定义了构造器系统就不会提供默认的空参构造器了,需要我们自己定义一个空参的构造器

4)一个类中定义多个构造器彼此构成重载

5)一个类中,至少必须有一个构造器

六,关键字this的理解

1)   在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但
通常情况下,我们都择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参
2)  在类的构造器中,我们可以使用"this.属性"或"this.方法"的方式,调用当前正在创建的对象属性或方法。但是,通常情况下,我们都择省略"this.".特殊情况下,如果构造器的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。
3) this调用构造器:
3.1我们在类的构造是中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器

3.2构造器中不能通过this(形参列表)"方式调用自己

3.3如果一个类中有n个构造器,则最多有n-1个构造器中使用了"this(形参列表)”

3.4规定:"this(形参列表)"必须声明在当前构造器的首行

3.5构造器内部,最多只能声明一个"this(形参列表)",用来调用其他的构造器

七,代码展示

//快速生成构造器快捷键 :Alt + Insert
//快速生成get set 方法快捷键 :Alt + Insert

权限修饰符修饰属性

构造器声明格式方法

get ,set 方法声明格式

package com.bdqn.lianxi;

public class Lian {
    //权限修饰符修饰过的属性
    private String name;

    private int age;
    //无参构造器
    public Lian(){

    }
    //带一个参数的构造器
    public Lian(String name){

    }
    //带两个参数的构造器
    public Lian(String name,int age){

    }
    //快速生成构造器快捷键 :Alt + Insert
    //快速生成get set 方法快捷键 :Alt + Insert
    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;
    }
}

Java 开发中的 Lombok 是什么? 我看了后,发现有些学生的idea版本是2020.3版本,与之前大多数人使用的2020.1版本不同,造成Lombok插件的安装配置也有所差异。然后我仔细看了下他的代码,发现Mybatis的使用确实没错,但发现代码中Lombok插件的@Builder注解使用有误。Lombok插件的使用比较简单,就是在实体类中,只需要写入相应的属性,然后在类上面添加相应的注解即可。如果你还有什么别的疑问,可以在评论区留言哦。我起床拿手机,还差点摔倒闪了我的老腰,我老婆看我这么着急还以为我有了小三儿 ,打得我满脸血呼刺啦的。 阅读详情

相关推荐

JAVA 面向对象 类 对象 封装

面向对象概念 面向对象其实是一种编程思想,通过它可以把生活中复杂的事情变得简单化,从原来的执行者变成了指挥者。 面向对象是基于面向过程而言的。 面向过程强调的是过程,比如: 打开冰箱门 2. 把大象放进去 3. 关上冰箱门 面向对象强调的是结果,比如: 什么样的冰箱?什么样的大象?谁负责把大象装进去? 而不是关注那个负责的人怎么把大象装冰箱里. 衣服脏了,直接让女盆友去处理,等着穿干净的就可以了。你不关注中间的过程,只要找好对象就可以了~ 再比如.我们想吃一道菜,无需考虑是怎么传菜,怎么做菜的,只需点菜即

程序媛泡泡的博客 6万+

Java面对对象-封装

一、面对对象-封装 (1)、封装介绍 在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 (2)、封装的优点 良好的封装能够减少耦合。 类内部的结构可以

weixin_45906258的博客 562

面向对象和封装

面向对象和封装面向对向的思想类和对象的关系类的定义对象的创建及其使用手机类练习 面向对向的思想 类和对象的关系 类的定义 对象的创建及其使用 手机类练习

贤蛋大眼萌 439

面向对象的封装

文章目录前言一、封装是什么?二、封装的概念三、封装的实例讲解总结 前言 封装是将一些基本的数据类型复合成一个自定义的类型,本文从数据角度和行为角度简单介绍下面向对象的封装。 一、封装是什么? 面向对象有三大特征,分别是封装,继承,多态。封装是将一些基本的数据类型复合成一个自定义的类型。 二、封装的概念 1、封装 1、数据角度 概念: 将一些基本的数据类型复合成一个自定义的类型 优点: 1、建立数据与对象之间的关联 2、代码可读性强 2、行为角度 定义: 类外提供必

luomoxiaoyaoke的博客 3480

LabVIEW实战:基于DAQmx的实时正弦波生成、采集与波形图动态显示

本文详细介绍了如何使用LabVIEW和DAQmx驱动实现实时正弦波的生成、采集与动态显示。通过USB-6008数据采集卡,结合队列缓冲机制和动态波形图显示技术,构建了一个完整的信号处理系统。文章包含硬件连接、软件配置、任务设置及常见问题排查,适合LabVIEW初学者和硬件控制开发者参考。

weixin_30872337的博客 124

ADRC自抗扰控制:工程抗扰“黑科技”,附C代码实战!

自抗扰控制(ADRC)是一种革新性的强鲁棒控制策略,通过主动估计和补偿系统扰动,无需精确数学模型即可实现优异控制性能。本文详细解析ADRC三大核心组件:跟踪微分器(TD)实现指令柔化,扩张状态观测器(ESO)实时估计总扰动,非线性状态反馈(NLSEF)完成动态补偿。针对二阶系统,文章提供完整的参数设计方法和C语言实现框架,包括关键函数fhan和fal的代码实现。ADRC将复杂对象"线性化"为积分器串联系统,显著提升抗扰能力,特别适用于电机控制、飞行器姿态等存在模型不确定性和强干扰的场景。

技术工作者 1736

面向对象之封装

面向对象之封装 封装 将成员变量成员方法封装起来,留出特定的方法让其它类对其调用。 举个栗子: 你买了一台电脑,你不用管这台电脑是怎么做的,你知道它可以用来打游戏,听音乐,看电视剧,当你需要使用这些功能打开相应的软件就可以了。对于封装而言就是它用什么方法实现了什么功能,你需要这个功能的时候直接调用它就可以了,不需要关系它实现的细节。 封装的优点: 提高代码的复用性 提高程序的安全性 以下展示标准的封装类: /** * Project:面向对象 * Package:demo * * @date:

CnreCoder的博客 948

AI脸部替换Roop-Unleashed,一键整合包教程

Roop-Unleashed是一个无须训练模型的深度伪造工具,专为图像和视频的面部替换而设计。它通过简洁的浏览器界面提供用户友好且跨平台的使用体验,无论用户是业余爱好者还是专业人士,都能快速上手。它无需复杂的设置即可实现高效的处理和转换,使图像和视频的编辑变得更加轻松和便捷。

m0_72580657的博客 1万+

面向对象——封装

1、封装:隐藏事物的属性和实现细节,对外提供公共的访问方式。2、隐藏了事物的实现细节提高了代码的复用性提高了安全性3、隐藏事物的属性隐藏事物的实现细节对外提供公共的访问方式1、构造方法:构造函数,构造器,Constructor2、作用:用于给对象中的成员变量赋值。在创建对象的同时,会自动调用构造方法,等对象创建完成的时候,对象中的成员变量就已经有指定的值了。修饰符 方法名称(参数列表) {方法体 }1 、构造方法的方法名称,必须和类名一模一样,连大小写都一样。

venus_patton的博客 1966

VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录

VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议

qq_34552942的博客 952

手把手教你搭建离线语音助手:FunASR+DeepSeek+TTS保姆级教程

本文详细介绍了如何利用FunASR、DeepSeek和TTS技术搭建离线语音助手系统。从环境配置、模型部署到唤醒词检测优化、语音识别与语义理解联调,再到语音合成与系统集成,提供全链路实战教程。特别适合智能家居控制、企业内部知识问答等需要数据隔离的场景,实现高响应、低延迟的离线语音交互体验。

weixin_30316097的博客 475

面向对象封装案例

在定义属性时,如果不知道设置什么初始值,可以设置为。

qq_44729609的博客 904

软硬件协同设计的大小端问题

缘起 最近需要在soc系统内做协处理器,加速AES加密运算,寄存器一次读取32bit,AES一次处理128bit,因此在数据拼接的时候,需要考虑大小端的问题,特来记录一番。 一、什么是大小端 大小端的问题发生在寄存器和内存间传递数据,这点非常重要,很多地方简单地说是数据存储方式,其实不准确。追根溯源,大小端问题是在设计load,store指令的时候考虑的,因此本质是寄存器和内存交互的问题,其他地方不会发生。 比如c语言里定义一个变量int a=ox1234,那么查看在线汇编平台的对应汇编代码: # 给2号寄

http://www.icfgblog.com/ 613

面向对象———封装

封装 ​ 封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。 封装可以实现以下目的: 1、 隐藏类的实现细节 2、 使用者只能通过提供的方法来访问数据,从而可以在方法中加入控制逻辑,限制对变量的不合理的 访问。 3、 可进行数据检查,从而有利于保证对象信息的完整性。 4、 便于修改,提高代码的可维护性。 封装的实际含义就是该隐藏的隐藏,该暴漏的暴漏。 定义类 [修饰符] class 类名

grape2001的博客 2867

Jetson设备EXT4文件系统修复实战:从superblock损坏到系统恢复

本文详细介绍了Jetson设备因异常断电等原因导致EXT4文件系统superblock损坏后的诊断与修复实战。通过从健康设备移植fsck工具、使用备份超级块等步骤,指导用户逐步恢复系统,并提供了数据备份与预防措施,帮助用户有效应对嵌入式AI开发中的存储故障。

theta的博客 592

《Python星球日记》 第73天:情感分析与主题建模

《Python星球日记》 第73天:情感分析与主题建模,今天我们将探索两个自然语言处理领域的重要技术:情感分析和主题建模。这两项技术在社交媒体分析、用户反馈处理、市场研究等多个领域有着广泛应用。

Code_流苏:在代码中寻诗意,在实践中觅真知 919

面向对象封装

面向对象封装应用 这里通过封装构造成页面的搜索条件 """ 面向对象封装的特点是:职责划分,封装什么就处理什么,然后给其他的类使用 FilterOption类中封装的是具体的处理功能,FilterList类中传入参数option,和data_list, option:实例化对象的时候,传入的参数是FilterOption实例化的对象,就是FilterList可以调用FilterOptio...

dianyi3179的博客 220

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

面向对象的封装、java封装

面向对象的封装封装目的及概念使用方法及适用场景 封装 目的及概念 概念: 在电子方面,封装是指把硅片上的电路管脚,用导线接引到外部接头处,以便与其它期间连接。 在面向对象编程中,封装(encapsulation)是将对象运行所需的资源封装在程序对象中——基本上,这个资源就是方法和数据。对象公布其接口,类似“外部接头处”,对象接口包括了公共的方法和初始化数据。其他连接到这个接口上的对象不需要关心其实现的方法就可以直接使用这个对象。“不用告诉我你是怎么做的,只要做就行” 封装就是将抽象得到的数据和行为(或

qiugengjun的博客 212

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python中什么是面向对象-封装

文字有点长,对于不想看文字的朋友,可以去这里看视频,内容和这个文字一样的,视频可能更好理解 www.piqizhu.com/v/yjBderO02… 回顾面向过程 前面我们已经学过了 面向过程 我们知道,面向过程 的时候,我们的关注点是 步骤 面向过程做事,就是把 一件事情 分割为多个步骤, 然后依次去完成每一个步骤 这样做事可以让我们的事情变的很明朗,不会弄乱 那么, 既然有了面向过程,为...

weixin_34361881的博客 265

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C#面向对象封装

一、什么叫做面向对象封装? 封装的概念:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。 二、面向对象封装有什么好处(为什么要封装)? 封装的目的:是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。 三、如何使用面向对象封装? 1、属性器 2、实例与静态方法 3、构造函数 4、重载 5、...

♂戏子无情♂的博客 381

面向对象三大特性——封装

面向对象——封装 1、面向对象 (1)什么是面向对象?: 面向对象是一种编程思想 通俗的说:面向对象是一种思考问题的思维方式 (2)为什么使用面向对象以及它的作用 计算机语言为了更好的去描述现实生活中的事物,按照生活中的思考方式来定义,这样我们使用起来会更加方便 作用:将功能封装到对象里,强调的是具备某功能的对象; (3)面向对象的三个特征: 1.封装(Encapsulation) 2....

weixin_44008460的博客 349

面向对象以及封装

封装原则 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 成员变量private,提供对应的getXxx()/setXxx()方法。封装概述: 是面向对象三大特征之一(封装,继承,多态) 是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界是无法直接操作的。面向对象: 当需要实现一个功能的时候,不关心具体的步骤,而是找一个具有该功能的人,来帮我做事儿。通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。

VickyGod的博客 126

面向对象的封装性

面向对象封装性的详细介绍

zxx的博客 1207
上一篇: 面向对象,类,属性,方法,创建调用属性方法,有参,无参,变量代码示例
下一篇: 面向对象-------------------继承
lhjava1234
博客等级 码龄4年 4粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值