封装详解。

封装详解

1.该露的露,该藏的藏

​ 我们程序设计的追求“高内聚,低耦合”。

​ 高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;

​ 低耦合:仅暴露少量的方法给外部使用。

2封装(数据的隐藏)

​ 通常,应禁止直接访问一个对象的数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。

记住这句话就够了:属性私有,get/set

封装的意义:

1.提高程序的安全性,保护数据

2.隐藏代码的实现细节

3.统一接口

4.系统可维护增加了

import com.oop.demo04.Student;//一个项目应该这存在一个main方法
public class Application {public static void main(String[] args) {Student s1= new Student();s1.setName("你好");System.out.println(s1.getName());s1.setAge(-1);//不合法的System.out.println(s1.getAge());}
}
//类     private:私有的
public class Student {//属性私有private String name;//名字private int id;//学号private char sex;//性别private int age;//提供一些可以操作这个属性的方法!//提供一些public的get、set方法//get 获得这个数据public String getName(){return this.name;}//set给这个数据设置值public void setName(String name){this.name=name;}public int getId(){return this.id;}public void setId(int id){this.id=id;}public char getSex(){return this.sex;}public void setSex(char sex){this.sex=sex;}public int getAge(){return this.age;}public void setAge(int age){if(age>120||age<0){//不合法System.out.println("年龄不合法");}else {this.age=age;}}//alt +insert

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

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

相关文章

年薪15W的程序员因为掌握这个技能,薪资翻倍!

在这个IT系统动辄就是上亿流量的时代&#xff0c;java作为大数据时代应用最广泛的语言&#xff0c;诞生了一批又一批的技术。一些独角兽公司以及腾讯、阿里、百度、网易等知名大厂对java人才的需求量连年升级&#xff0c;优秀程序员能轻松达到30w的水平&#xff0c;但写此同时&…

(进阶篇)Redis6.2.0 集群 哨兵模式_故障转移_03

文章目录一、前置准备启动redis服务启动sentinel服务查看sentiel启动日志二、实战故障转移2.1. 主节点停止2.2. Sentienl监控日志2.3. 节点信息监控2.4. 故障转移后变化2.5. 重新启动2.6. sentine日志2.7. 节点信息监控2.8. 配置文件变化2.9. 读写验证一、前置准备 启动redis服…

语雀携手Teambition,玩转项目协作与知识管理

在数字化转型的大浪潮中&#xff0c;大量企业都有项目协作与知识管理诉求。Teambition 是一款优秀的项目协作产品&#xff0c;深受众多企业的青睐。语雀则是来自阿里巴巴的一款新品&#xff0c;是知识管理领域里冉冉升起的新星。今年夏天&#xff0c;语雀携手Teambition&#x…

支付宝小程序“开闸放粮”,亿级流量扶持中小商家!

街边小店也有机会登上支付宝首页推荐位了&#xff01; 9月17日消息&#xff0c;在支付宝开放日活动中&#xff0c;支付宝宣布向小程序商家开放包括主搜热搜榜、首页腰封、首页惠支付频道、首页生活服务频道、花呗频道、会员频道等六大中心化入口&#xff0c;商家通过引导用户扫…

idea 编译Java heap space 内存溢出

解决方案 根据自身的实际情况设置参数大小&#xff0c;我调整到4096就好使了

【PostgreSQL】从零开始:(二十八)数据类型-XML类型

XML XML&#xff08;可扩展标记语言&#xff09;是一种用于描述数据的标记语言。它被设计用于传输和存储数据&#xff0c;以及作为不同系统之间进行数据交换的通用格式。XML使用标记来标识数据元素&#xff0c;并使用嵌套的结构来表示数据之间的层次关系。XML具有以下特点&…

避坑!使用 Kubernetes 最易犯的 10 个错误

Kubernetes 作为大规模企业级应用容器编排的首推工具&#xff0c;其为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能&#xff0c;本文作者 Marek Bartik 深入分享了 K8s 的避坑宝典&#xff0c;相信会对开发者们大有裨益。作者 | Marek Bartik&…

当 K8s 集群达到万级规模,阿里巴巴如何解决系统各组件性能问题?

本文主要介绍阿里巴巴在大规模生产环境中落地 Kubernetes 的过程中&#xff0c;在集群规模上遇到的典型问题以及对应的解决方案&#xff0c;内容包含对 etcd、kube-apiserver、kube-controller 的若干性能及稳定性增强&#xff0c;这些关键的增强是阿里巴巴内部上万节点的 Kube…

Super详解(重点)

Super详解&#xff08;重点&#xff09; super注意点; 1. super调用父类的方法&#xff0c;必须在构造方法的第一个2. super必须只能出现在子类的方法或者构造方法中&#xff01;3. super和this 不能同时调用构造方法&#xff01;Vs this: ​ 代表的对象不同&#xff1a; ​…

来了!云栖大会都能看到什么?

盼望着 盼望着 一年一度科技盛宴2019杭州云栖大会 来了&#xff01; 欢迎你 来自远方的开发者们 今天小云为你偷偷潜入会场 带来一大波“谍照” 一起看云栖 在这儿&#xff0c;感受科技带来的巨大惊喜 平头哥放大招&#xff01; 人工智能整体性突破&#xff01; 更有三位男神…

美国 AI 博士一针见血:Python 这样学最容易成为高手!

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

【物联网开发实战】- 设备上云方案详解?

【物联网开发实战】- 如何让设备上云&#xff1f; 物联网开发过程中遇到的第一个棘手问题就是&#xff1a;如何让设备连接上云&#xff1f; 我们以智能洗衣机为例&#xff0c;至少包含&#xff1a;温度/水位等传感器&#xff0c;主控MCU&#xff08;Microcontroller Unit&…

bash: mysqldump: command not found

文章目录一、问题分析定位二、解决方案2.1. 解决方案12.2. 解决方案22.3. 解决方案3一、问题分析定位 由于mysqldump在mysql/bin目录下面&#xff0c;直接执行此命令&#xff0c;环境变量中没有&#xff0c;找不到的情况 二、解决方案 2.1. 解决方案1 # 进入到mysql的bin目…

方法重写(重点)-->多态

方法重写&#xff08;重点&#xff09;–>多态 总结 重写&#xff1a;需要有继承关系&#xff0c;子类重写父类的方法&#xff01; 1. 方法名必须相同2. 参数列表必须相同3. 修饰符&#xff1a;范围可以扩大&#xff1a;public>Protected>Default>private4. 抛出…

深入解析 Kubebuilder:让编写 CRD 变得更简单

导读&#xff1a;自定义资源 CRD&#xff08;Custom Resource Definition&#xff09;可以扩展 Kubernetes API&#xff0c;掌握 CRD 是成为 Kubernetes 高级玩家的必备技能&#xff0c;本文将介绍 CRD 和 Controller 的概念&#xff0c;并对 CRD 编写框架 Kubebuilder 进行深入…

“编程能力差,90%输在了选择上!”CTO:多数程序员都是瞎努力!

在编程的世界里&#xff0c;编程语言就像橱窗里的衣服&#xff0c;琳琅满目。 编程语言实在是太多啦&#xff0c;如C、C、Java、Python、Objective-C和PHP等。这让不少的小白程序员产生选择困难症&#xff0c;到底应该学哪一门编程语言呢?大部分人在面对“你为什么要学这个编…

mysql Slave is not configured or failed to initialize properly. You must at least set --server-id

文章目录1. 问题背景2. 解决方案1. 问题背景 在创建mysql从节点复制链路时&#xff0c;由于虚拟机我是从一个模板复制而来的因此&#xff0c;server-id是一样的。 2. 解决方案 # 编辑/etc/my.cnf vi /etc/my.cnf# 添加如下2行代码 # 此处的server-id&#xff0c;只要不一样即…

Fun 3.0 发布——资源部署、依赖下载、代码编译等功能又又又增强啦!

Fun: Fun 是一个用于支持 Serverless 应用部署的工具&#xff0c;能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个模板文件&#xff08;template.yml&#xff09;&#xff0c;协助您进行开发、构建、部署操作。Fun 的更多文档 参考。 3.0 带来的新特性 1.…

sqlite事务模型、性能优化tips、常见误区

0&#xff0c;前言 本文主要介绍sqlite的事务模型&#xff0c;以及基于事务模型的一些性能优化tips&#xff0c;包括事务封装、WAL读写分离、分库分表、page size优化等。并基于手淘sqlite的使用现状总结了部分常见问题及误区&#xff0c;主要集中在多线程的设置、多线程下性能…

企业实战_07_MyCat 搭建Mysql 一主一从复制环境

接上一篇&#xff1a;企业实战_06_MyCat 常用的分片算法 https://gblfy.blog.csdn.net/article/details/118770261 文章目录一、 环境准备1. 主从复制搭建流程2. 服务器分布二、 MySql 主机节点操作如下2.1. 创建数据库2.2. 初始化表结构及数据2.3. 验证2.4. 数据备份2.5. 脚本…