首页 > 其他分享 >封装

封装

时间:2024-08-01 12:57:37浏览次数:11  
标签:封装 实现 访问 方法 隐藏 属性

封装

目录

封装的概念

将东西包在一起,然后以新的完整的形式呈现出来。将方法和字段包装到一个单元中,单元以类的形式实现信息隐藏,隐藏对象的实现细节,不让外部直接访问到。将数据和方法包装进类,加上具体实现的隐藏(访问修饰符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型

什么是封装类?

"定义类,定义其属性、方法的过程"成为封装类

封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。

例如:一台计算机内部极其复杂,有主板、CPU、硬盘和内存, 而一般用户不需要了解它的内部细节,不需要知道主板的型号、CPU 主频、硬盘和内存的大小,于是计算机制造商将用机箱把计算机封装起来,对外提供了一些接口,如鼠标、键盘和显示器等,这样当用户使用计算机就非常方便。

封装的特点:

只能通过规定的方法访问数据。隐藏类的实例细节,方便修改和实现。

实现Java封装的步骤

  • 修改属性的可见性来限制对属性的访问,一般设为 private
  • 为每个属性创建一对赋值(setter)方法和取值(getter)方法,一般设为 public,用于属性的读写
  • 在赋值和取值方法中,加入属性控制语句(对属性值的合法性进行判断)

标签:封装,实现,访问,方法,隐藏,属性
From: https://www.cnblogs.com/luoyiwen123/p/18336429

相关文章

  • 何为封装
    封装封装是计算机编程中的一个重要概念,它在不同领域有不同的含义和应用。以下是对封装概念的详细解析:在面向对象编程(OOP)中,封装是一种将数据和操作数据的代码(即方法)组合在一起,并对外隐藏内部实现细节的技术。具体来说,封装通过定义类(Class)来实现,其中数据和函数都是类的成员。类的......
  • 封装
    何为封装封装(Encapsulation)是面向对象编程(OOP)中的一个核心概念,它指的是将数据(属性)和操作这些数据的方法组合在一起,形成一个“对象”。封装的主要目的是隐藏对象的内部状态和实现细节,只暴露出一个可以被外界访问和使用的接口。特点:数据隐藏:封装隐藏了对象的内部数据,防止外部......
  • 封装
    封装1.何为封装当我们需要安全地访问对象时,例如限制给对象赋值的范围(避免数据类型的不同或者数据范围超出预计),我们就需要使用封装技术。封装就是将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法(getter和setter)来实现对隐藏信息的操作和访问。2.访......
  • 封装
    封装1.封装的定义在Java中,封装(Encapsulation)是面向对象编程(OOP)的四大基本特性之一(其他三个是继承、多态和抽象)。封装是一种将对象的属性(成员变量)和方法(成员函数)结合在一起,并隐藏对象的属性和实现细节,仅对外公开接口(即方法)来与对象进行交互的机制。封装的目的主要有两个:保护内......
  • 关于使用C#注入C++的封装DLL后打印内容乱码
    最近因需要,用C++写了个钩子的DLL,一切工作测试通过后,放到C#里使用P/Invoke调用,发现部分乱码,最后反复测试,才发现一个问题,原来SetWindowsHookEx这个函数,也是分A版和W版,最后换了就正常了,附上对比。。乱码[DllImport("user32.dll",SetLastError=true]publicstaticex......
  • 封装Vue 的 SVG 组件
    svg静态资源在assets下新建一个svg文件夹,用于存放svg图片svgIcon组件在components下新建一个文件夹,包含两个文件index.ts和SvgIcon.vuevue.config.jsmain.ts需要引入组件svgIcon使用**.vue<svg-icon iconClass="invite" className="iconicon-invite" /> *......
  • Java中的封装
    在Java中,封装(Encapsulation)是面向对象编程(OOP)的四大特性之一(其他三个是继承、多态和抽象)。封装主要用来隐藏对象的属性和实现细节,仅对外公开接口(方法),与对象交互只能通过这些接口进行。这样做的好处包括提高代码的安全性、灵活性和可维护性。如何进行简单封装1.使用访问修饰......
  • 使用C99 变长数组和和零长数组特性封装协议回复消息
    背景:主从机交互协议中,需要针对不同控制字封装回复消息接口。本文使用变长数组特性和零长数组特性对这类接口进行统一封装。 1#pragmapack(1)2typedefstruct{3uint8_tmagic;4uint8_tlen_H;5uint8_tlen_L;6uint8_tcmd;7uint8_t......
  • vue3 封装request请求
    vue3原生请求封装我这里用一个案例来解释需求:把vue3原生的静态页集成到vue2的若依项目并且可以访问vue2接口在vue3src下的utils下创建文件request.ts文件importaxiosfrom"axios";import{showMessage}from"./status";//引入状态码import{ElMess......
  • SqlSugar 多数据源的简单封装
    参考SqlSugar的官网文档,我自己封装了一个支持多数据库的UnitOfWork的SqlSugar封装类,直接使用SqlSugar的仓储操作如下:///<summary>///数据库实例基类///</summary>publicabstractclassBaseDbClient{///<summary>///获取数据库客户端实例......