java的封装性的优点_18、Java的三大特性之封装

Java的三大特性

java是一个面向对象的语言,所以java也有面向对象语言的三大特性:继承,封装,多态,任何一个java项目,都会用到这三种特性,所以掌握好这三大特性非常的重要。

封装

我们为什么要使用封装?

我们使用封装是因为程序的安全性,让用户知道的才暴露出来,不需要让用户知道的全部隐藏起来,这就是封装,封装就是把对象的属性和操作(方法)结合为一个独立的个体,并尽可能的隐藏对象的的内部实现的细节。

我们使用封装的目的是什么?

我们程序的设计要求是”高内聚,低耦合“,高内聚就是类的内部数据操作(方法)细节自己完成,不允许外部干涉,低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。

封装有什么优点?

1、 提高代码的安全性。

2、提高代码的复用性。

3、“高内聚”:封装细节,便于修改内部代码,提高可维护性

4、“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。

封装的实现

Java是使用“访问控制符”来控制啸此细节需要封装的,啸些细节需要暴露的,Java中有4种访问控制符“,分别为private,default,protected,public,它们说明了面向对象的封装性,所以我们编写代码的时候,尽可以让访问权限降到最低,从而提高安全性。

下面是这4个访问控制符的权限:

6360c3e1d61d9e2880a3a9c1c71acfbf.png

private 表示私有,只有自己的类能访问。

default表示没有修饰符修饰,只有同一个包的类能访问。(默认访问控制符)

protected表示可以被同一个包的类以及其它包中的子类访问。

public 表示可以被该项目的所有包中的所有类访问。

例:

4d9faf7f068170b0898f8b030daa3b20.png

59df61af342d4f018a4c9547502ecb02.png

e4c9803fbd041237b35fa26f0ee0d278.png

封装的细节

1、一般使用private的访问权限。

2、提供相应的get/set方法来访问相应的属性方法,这些方法通常是用public 来修饰的,以提供对属性的赋值和读取操作。boolean的get主法,一般是用is来开头的。

3、一此只用于本类的辅助性方法,可以用private修饰,希望其它类调用的方法用public修饰。

例:

public class Student {

//私有属性方法

private int id;

private String name;

private int age;

private boolean flag;

//get/set方法

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

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;

}

//boolean的get方法

public boolean isFlag() {

return flag;

}

public void setFlag(boolean flag) {

this.flag = flag;

}

}

**细节决定成败!**

*个人愚见,如有不对,恳请扶正!*

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

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

相关文章

groovy 字符串截取最后一个_Java基础篇——字符串详解

字符串的声明字符串是内存中连续排列的0个或多个字符。不变字符串是指字符串一旦创建,其内容就不能改变,Java中使用String类来处理不变字符串,在对String类的实例进行查找、比较、拼接等操作时,既不能输入新字符,又不能…

java中链式调用_Java及Android中常用链式调用写法简单示例

本文实例讲述了Java及Android中常用链式调用写法。分享给大家供大家参考,具体如下:最近发现,目前大火的许多开源框架中,大多都使用了一种"(方法).(方法).(方法)"的形式进行调用,最典型的就是RxJava。android…

C什么k什么_K线图基础知识丨什么是K线散兵坑形态?K线散兵坑形态的操作与案例详解...

本文总共999字,预计阅读需要3分钟今天我们给大家带来的是K线散兵坑形态,那么K线散兵坑形态应该怎么来操作呢?今天我们就结合相应的实战案例来为大家讲解一下吧。K线散兵坑形态的简介散兵坑是指在股价缓慢上涨过程中.成交量也逐渐放大&#xf…

support v4官方下载_掌心长兴客户端下载-掌心长兴ap下载v4.1.4 安卓官方版

掌心长兴app是一款为广大用户开发的新闻资讯软件。在这里用户可以清晰的了解今日热点新闻,最新新闻直播电台应有尽有!让你全方面了解周边新鲜事!还有各种常用功能的代办查询服务。有需要的用户,欢迎现在下载体验哦掌心长兴客户端介…

javafx 调用java_Java验证(javafx)

javafx 调用java验证是核心javafx框架所缺少的一件事。 为了弥补这一空白, controlsfx中已经存在一个第三方验证库 。 但是,我有一个问题:它不是在考虑FXML的情况下创建的。 这并不是说它不是一个很好的库,只是错过了这个细节&…

win10分辨率不能调整_Win10系统分辨率不能修改怎么办?屏幕分辨率的调节方法...

Win10系统电脑屏幕分辨率无法调节怎么办?电脑屏幕分辨率不能修改怎么办?近日有很多用户询问电脑显示器分辨率不能修改的问题,下面就给大家分享解决方法。解决方法:1、在win10系统桌面空白处单击鼠标右键,在弹出的菜单中…

笔记本电脑电源已接通未充电_dell xps15 电源已接通 未充电 维修方法

(去年写的文章,在知乎也存一份)网上类似的文章很多,这里总结一下,这个问题按照严重程度可以分为四个层次:电源计划问题,大部分百度出来说的都是这个,实际上这个问题 等于没有问题。改…

mysql bc_正则表达式——MySQL搜索过滤

正则表达式介绍在数据库的数据过滤过程中只用WHERE子句和LIKE操作符都是对于已知值进行的不管是匹配一个还是多个值,测试大于还是小于已知值,或者检查某个范围的值,都是使用已知的值当然MySQL语句也提供了通配符百分号(%)和下划线(_)来匹配多…

everything安装版和便携版有什么区别_A2奶粉内幕:国行版和澳洲版有什么区别 贵的不一定好!...

点击上方蓝字 关注我们申明:此文章来自第三方平台,绝无倾向性诱导。二桐粑粑转载分享。A2是全球首款添加了“A2-β酪蛋白”的奶粉,由新西兰A2公司于2013年推出,这款奶粉在澳洲一上架,就被妈妈们一扫而空。之后A2公司针…

java 什么时候用递归_如果要用Java实现算法,一定慎用递归

现象 :递归是我们很经典的一种算法实现,可以很好的描述一个算法的原理!对于算法的描述、表现和代码结构理解上,递归都是不错的选择!但是本文想说的是java实现一个递归算法的时候尽量不要用递归实现,而是转换…

excel分两个独立窗口_Excel2010 多个独立窗口,解决单窗口无法显示多个文件的问题...

当我们需要编辑多个excel的时候,就会发现一个问题,Excel不能一个窗口下显示多个文档,每次编辑都进行切换就太麻烦了,那如何能解决这个问题呢?接下来跟我一起看看吧!首先在开始菜单输入regedit.exe命令&…

excel冻结窗口_excel怎么冻结窗口?excel冻结窗口怎么设置?

excel冻结行或列的技巧教程:一、冻结第一列1.选择 视图 > 冻结窗格 > 冻结第一列。2.列A和列B之间出现的细线表明第一列已冻结。二、冻结前两列1.选择第三列。2.选择 查看 > 冻结窗格 > 冻结窗格。三、冻结列和行1.选择要在滚动时保持可见的行下方和列右…

web service接口_win7 添加环回网卡+H3C 模拟器 防火墙开启Web功能

1、按下win R键,在其中输入:hdwwiz,然后点击“确定”或者按回车键,打开“添加硬件”对话框。2、看到如下界面时,选择“网络适配器”(如下图所示), 在接着出现的界面中,左方“厂商”一栏里选择“…

java 实现nfa的化简_DFA与NFA的等价性,DFA化简

等价性对于每个NFA M存在一个DFA M’,使得L(M)L(M’)--------等价性证明,NFA的确定化假定NFA M,我们对M的状态转换图进行以下改造:解决初始状态唯一性:引进新的初态结点X和终态结点Y,X,Y∉S,从X…

eclipse查看git地址_gitamp;github的入门实战

一、Git概述(1)定义Git是目前世界上最先进的分布式版本控制系统。(2)能干什么?解决冲突、管理权限、代码备份、协同开发、版本还原、历史追查、版本记录、分支管理、代码审查(3)集中管理型版本管…

使用Apache Kafka作为消息系统的发布-订阅通信中的微服务,并通过集成测试进行了验证...

发布-订阅消息系统在任何企业体系结构中都起着重要作用,因为它可以实现可靠的集成而无需紧密耦合应用程序。 在解耦的系统之间共享数据的能力并不是一个容易解决的问题。 考虑一个企业,其中具有使用不同语言和平台独立构建的多个应用程序。 它需要以响应…

LINUX系统无线网频繁断开_Ubuntu系统安装amp;amp;解决WiFi不可用

写系统安装的文章太多太多了,我为何还要写哪? 因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一…

return两个返回值_LeetCode 第四题 寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 [1, 3]nums2 [2]​则中位数是 2.0示例 2:nums1 [1, 2]nums2 [3, 4]​则中…

intellij 使用_使用IntelliJ书签

intellij 使用这是有关IntelliJ的精美书签功能的快速帖子。 IntelliJ使您可以为单行代码添加书签。 将某行添加为书签后,您可以使用多种方法直接跳回该行。 因此,最好在您经常使用的代码位置添加书签。 要创建一个新书签,只需在代码编辑器中…

[即将举行的网络研讨会]对Kubernetes进行故障排除:您需要具备的7个关键组件

如果您没有听说过,那么容器正在吞噬整个世界。 这种转变正在改变我们在开发,交付和维护应用程序方面所知的一切,尤其是在解决错误方面。 有这么多动人的东西,让您难以发现潜伏在基于Kubernetes的应用程序中的关键问题。 传统的故…