3. OOP封装 -- get、set方法

news2024/10/6 11:50:39

文章目录

  • 1. 抛出问题:存在安全隐患
  • 2. 那咋办呢?
  • 3. 上述方案行不通,只能引入封装的概念
    • ① public向private过渡
    • ② 这种情况下如何修改信息,使用get和set方法
      • 如何限制用户输入
      • 企业中为什么不用public
      • 快捷键生成所有私有成员变量的get和set方法
  • 4. public与private
  • 5. 封装的概念
  • 6. 内容出处

1. 抛出问题:存在安全隐患

        张大爷注销账户时说了:你的程序不安全。我就不小心按了个减号,我家狗的年龄就变成-30岁了。你的程序不行啊,狗的年龄怎么可能是-30岁,但是你的程序就这么水灵灵给我通过了?而且,为什么王阿姨都能改我家狗的信息?
在这里插入图片描述

2. 那咋办呢?

在这里插入图片描述
        总不能写成这样吧,这样写就不符合面向对象的设计思维了。这里面只能操作对象。

3. 上述方案行不通,只能引入封装的概念

① public向private过渡

        我们要改只能改设计里的东西,即Dogs类里的东西。简单来说就是,把该类成员变量前面的public(公有的)全部改成private(私密的)。
在这里插入图片描述
        改完之后我们可以发现,不能像之前那样随意修改狗的信息了
在这里插入图片描述

② 这种情况下如何修改信息,使用get和set方法

        总之,我们要提供给用户一个能设置和获取信息的入口,但不能允许用户瞎搞。------- 借助get和set方法(说白了就是自己写两个函数)
在这里插入图片描述

如何限制用户输入

        怎么限制用户输入呢?只需要在setAge()里增加限制条件
在这里插入图片描述

企业中为什么不用public

        使用public的话,用户就可以为所欲为,这是很危险的。
例如:
hh这个人申请了一个支付宝账户,你给整个public double balance。那他自己都可以修改自己的账户余额了,那他还上啥班啊。再者说,用户自己都可以修改余额了,阿里还干不干了。
在这里插入图片描述
        这个时候肯定只能用private了呀,用这种方式就可以避免用户的不合法输入,甚至可以对输入数据做出检查。例如:下述的支付宝余额检查
在这里插入图片描述

快捷键生成所有私有成员变量的get和set方法

在这里插入图片描述

4. public与private

在这里插入图片描述

5. 封装的概念

        出于安全的考虑,我们用private代替public成员变量的特性,我们还另外提供 Getter 和 Setter , 这种方式叫作 OOP的封装。
        封装就是把这些成员变量给包装起来方便别人使用,但是又不能提供过高的权限,防止出现安全问题。封装是面向对象的一个重要特性。

6. 内容出处

java

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

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

相关文章

老系统处理策略

1. 改造策略 定义:对技术含量高、业务价值大的遗留系统进行功能增强和数据模型改造。 适用场景:系统较新,能满足业务需求,但需增加新功能或优化数据模型。 优点:增强功能,优化数据,提升系统性…

第一批用大模型的程序员,已经碾压同事了...

自 ChatGPT 面世以来,市场上一直用“iPhone 时刻”“划时代”“工业革命”等关键词来形容 AI 领域的飞速进展。如今,AI 大模型的战争已经开启大卷特卷模式。 OpenAI 炸裂推出 GPT-4o,科幻电影照进现实,不仅免费可用,能…

Buck电路-电感电容计算

目录: 1、前置知识 1)电感的公式 2)电容的公式 3)Buck电路框图 2、占空比D的计算 1)Switch(on)状态 2)Switch(off)状态 3)占空比计算 3、电感计算 4、电容计算 5、电荷平衡与伏秒…

企业数字化转型中优化IT投资与资源管理的战略路径

IT投资优化与资源管理在数字化转型中的关键作用 在数字化时代,企业的成功不仅取决于其业务创新和市场拓展,还极大依赖于信息技术(IT)投资和资源管理的效率。随着云计算、大数据、人工智能等技术的飞速发展,企业必须在…

Python 能用来开发桌面客户端吗?

Python 作为一门多功能、跨平台的编程语言,适用于不同领域的开发,包括桌面客户端程序。在桌面客户端开发中,Python 以其简洁、可读性高的语法和广泛的第三方库生态圈提供了强大的支持。尽管 Python 的强项可能更多地体现在 web 开发、数据分析…

《精通开关电源设计》笔记一

重点 效率 纹波 环路响应 尺寸,从静态到动态的研究方法,假设开关电源稳态运行,以电感为中心,根据半导体器件(mos管或二极管)分段分析电路的状态,工具有电路原理和能量守恒 影响效率的主要是开关损耗,所以…

速览!2024 CSP-J1/S1 河北也被实名举报泄题

据NOI官网消息,继2024 CSP-J/S第一轮认证陕西鸿泉培训机构泄题之后,重考!CSP-J/S 2024第一轮认证泄题后续进展及疑问,河北某学校也被学生实名举报泄题,河北某同学在认证前一天以非正当手段获得了认证题目且属实&#x…

码随想录算法训练营第62天|卡码网:97. 小明逛公园、127. 骑士的攻击

1. 卡码网 97. 小明逛公园 题目链接:https://kamacoder.com/problempage.php?pid1155 文章链接:https://www.programmercarl.com/kamacoder/0097.小明逛公园.html 思路: 使用Floyd 算法,目的是解决多源最短路问题,即 …

【11】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-模块化语法与自定义组件

序言: 本文详细讲解了关于鸿蒙系统学习中的模块化语法与自定义组件,在模块化语法中我们学习到了多种导入导出方式,实现了在一个项目中,通过引用不同的组件,让我们整体代码的可读性更强,相当于我们把一个手…

【系统方案】系统设计方案书,可视化设计方案(word)

第 一 章 系统总体设计 1.1 总体架构 1.1.1 系统拓扑 1.1.2 系统组成 1.2 设计概述 1.3 平台系统功能 1.3.1 总部数据看板 1.3.2 项目部数据看板 1.3.3 视频联网系统 1.3.4 实名制考勤系统 1.3.5 安全生产系统 1.3.6 塔吊安全监控子系统 1.3.7 施工升降机安全监控管系统 1.3.8 …

聊天记录怎么监控?企业微信聊天记录监控的2个方法分享!员工权益vs企业管理

在企业管理与员工权益的平衡中,聊天记录的监控成为了一个备受争议的话题。 一方面,企业希望通过监控聊天记录来确保信息安全、规范员工行为,并防止潜在的风险; 另一方面,员工则强调个人隐私和沟通自由的重要性。 本文…

大模型技术进阶路线,有了基础应该怎么进阶?

“ 高性能大模型的打造,是一项复杂的系统性工程 ” 在上一篇文章中讲了学习大模型的基础路线,而如果是对有一定基础的人来说,应该怎么进阶呢?也就是说大模型更加高级的技术栈有哪些? 一个好的基础能够让你在学习的道…

《向量数据库指南》——Mlivus Cloud打造生产级AI应用利器

哈哈,各位向量数据库和AI应用领域的朋友们,大家好!我是大禹智库的向量数据库高级研究员王帅旭,也是《向量数据库指南》的作者。今天,我要和大家聊聊如何使用Mlivus Cloud来搭建生产级AI应用。这可是个热门话题哦,相信大家都非常感兴趣! 《向量数据库指南》 使用Mlivus …

降低大模型幻觉的5种方案

降低大模型幻觉的5种方案 大语言模型(如GPT-4)在生成文本时,有时会产生所谓的“幻觉”——即生成的内容虽然语法和逻辑上看似正确,但实际上是不准确或虚构的。为了减少这种现象,以下是五种有效的方案:Prom…

必备指南:人人适用的AI大模型学习路径!

23年 AI 大模型技术狂飙一年后,24年 AI 大模型的应用已经在爆发,因此掌握好 AI 大模型的应用开发技术就变成如此重要,那么如何才能更好地掌握呢?一份 AI 大模型详细的学习路线就变得非常重要! 由于 AI 大模型应用技术…

R语言绘制散点图

散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具,我们通过不同的参数调整和包的使用,可以创建出满足各种需求的散点图。 常用绘制散点图的函数有plot()函数和ggpl…

图解IP分类及子网掩码计算实例

一、什么是IP地址 在网络世界中,人们为了通信方便给每一台计算机都事先分配一个类似电话号码一样的标识地址,即IP地址。根据TCP/IP协议,IP地址由32位二进制数组成,而且在INTERNET范围内是唯一的。假如某台计算机IP地址为11000000…

基于SpringBoot vue 医院病房信息管理系统设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…

SpringBoot+ElasticSearch7.12.1+Kibana7.12.1简单使用

案例简介 本案例是把日志数据保存到Elasticsearch的索引中,并通过Kibana图形化界面的开发工具给查询出来添加的日志数据,完成从0到1的简单使用 ElasticSearch职责用法简介 ElasticSearch用在哪 ElasticSearch在我这个案例中,不是用来缓解增…

牛市以一个什么视角看它?

这波指数行情连续上涨,我说过我没有任何情绪波动,我不想称之为牛市,而是一个增量周期,这样的话我的语言里尽量去除一些欲望和情绪的表达,有利于去给大家讲一些股市的客观存在规律;我们知道熊市的本质是什么…