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类的实例进行查找、比较、拼接等操作时,既不能输入新字符,又不能…

eclipse插件开发_开发Eclipse插件

eclipse插件开发最近,我开始与一个团队合作开发Eclipse插件。 团队开发了一个很棒的插件,可以实现预期的目的。 因此,我检查了源并尝试构建它。 项目源包含所有必需的库,并且只能在Eclipse中构建。 在当今不断交付的世界中&#x…

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

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

Java记录

https://openjdk.java.net/jeps/359概述了新的Java功能,该功能可能会/将在某些将来的Java版本中实现。 JEP建议使用一种新型的“班级”:记录。 JEP中的示例内容如下: record Range( int lo, int hi) { public Range { if (lo > hi) /* ref…

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

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

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

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

java简单计算机程序_JAVA程序编的简单计算器程序??

1 文件名:Calculate_GUI。javaimport javax。swing。*;import t。Container;import t。event。*;public class Calculate_GUI extends JFrame{private JPanel p1;private JButton keyButton[]new JButton[16],signButton,clearButton,deleteButton;private JTextFie…

javafx 调用java_Java验证(javafx)

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

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

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

java springmvc权限校验_详解Spring MVC使用Filter实现登录及权限验证判断

登录和权限验证判断在后台管理系统中是最常用的功能,这部分代码是比较固定和独立的,为了减少对业务代码入侵性,一般我会考虑使用Filter来实现,下面我就来详细说一下我的实现思路和代码:前台页面:String pat…

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

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

cors spring_Spring,REST,Ajax和CORS

cors spring假设您正在为客户端开发基于JavaScript的项目,并且他通过其余的Web服务向服务器发出ajax请求,那么您可能会遇到一些麻烦,尤其是如果双方都在单独的域中。 实际上,出于安全原因,从一个域A到另一域B的Ajax请…

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

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

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

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

哈希杰森

我最近写了一个简单的库,可预测地对json进行哈希处理 。 该实用程序基于出色的Jackson Json解析库构建 问题 我需要从相当大的基于json的内容生成的哈希值,以便稍后确定内容是否发生了更改。 将json视为字符串不是格式化的选项,键改组可能会…

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

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

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

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

jsp代码会被翻译成java代码吗_JAVA jsp技术

JSP的本质是一个类文件,它存储于tomcat(如果你使用tomcat)目录下的work文件夹中,该类文件继承了HttpJspBase类,而HttpJspBase类继承了HttpServlet类,所以其实质是一个servlet的类文件JSP脚本:1) ----- 内部的java代码翻…

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

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

java 判断对象是否是xml格式_java对象与xml格式之间的转换

java对象是可以直接与xml相互转换的,但需要导入包:xstream-1.3.1.jar,在创建对象的时候,注意一定要new一个DomDriver;成功的测试代码如下:package com.xml; import com.thoughtworks.xstream.XStream; impo…