发布时间:2023-03-06 14:30
概念:我们在写入一个类的时候,为了保护里边的属性不被随意的调用这是我们可以使用特殊的修饰符进行相应的保护,而这样的话我们似乎只能在该类中调用使用了,出现某些特殊情况时就会无法发调用,虽然挺高了安全性但也降低了灵活性,这个时候我们的包装类就出现了,我们通过对某个方法的进行特殊方法的包装来对其进行相应的调用与赋值。就相当于银行为了保护财产会选择将金钱放进保险柜中来确保其的安全,但是当我们要取钱时,银行就要拿钥匙打开保险柜。修饰符相当于银行的保险柜,封装相当于保险柜的钥匙。
访问修饰符如下:
1) public 公共控制修饰符
2) protected 保护访问控制修饰符
3) default 缺省默认控制修饰符
4) private 私有访问控制符
它们的访问权限如下图:
包装的特点:
1)便于正确使用系统,防止错误修改属性
2)有助于系统之间的松耦合,提高系独立性
3)提高软件的重用性
4)降低了构建大型系统的风险
包装的快捷键:
大部分的编译软件都有相应的包装快捷键就例如我用的开发工具idea就像相对应的get()set()有参无参构造方法如下图
我们右键单击后会出现相应选项我们点击Generate,也有相应的快捷键Alt+Insert直接打开Generate
进入Generate后我们选择Constructor
该选项是选择无参和有参构造的,我们全选点击OK即可将所有的私有属性进行有参构造,点击
Select None则是进行无参构造
再次进入Generate后我们选择Getter and Setter
该选项是构造方法引入和修改私有属性,Getter()表示获属性,Setter()表示修改属性,进入后我们全选点击OK,就可以进行构造。
测试类代码如下:
package com.ytzl.total; /*封装类*/ public class test { public static void main(String[] args) { //实例化一个对象 encapsulation encapsulation = new encapsulation(); System.out.println(\"通过封装方法获取封装类中的私有属性==>\"+encapsulation.getA()); System.out.println(\"通过封装方法获取封装类中的私有属性==>\"+encapsulation.getB()); //我们也可以通过相应的构造方法来改变风种类中的私有属性 encapsulation.setA(20); encapsulation.setB(\"被是同相应的构造方法进行改变\"); System.out.println(\"通过封装方法获取封装类中的私有属性==>\"+encapsulation.getA()); System.out.println(\"通过封装方法获取封装类中的私有属性==>\"+encapsulation.getB()); //我们也可以通过封装方法来改变封装类中的私有属性 encapsulation encapsulation1 = new encapsulation(10,\"被调用方法改变后\"); System.out.println(\"通过调用方法类来改变封装类中的私有属性后==>\"+encapsulation1.getA()); System.out.println(\"通过调用方法类来改变封装类中的私有属性后==>\"+encapsulation1.getB()); } }
实体类代码如下:
package com.ytzl.total; public class encapsulation { private int a=8; private String b=\"私有属性\"; public encapsulation() { } //如果需要在调用方法中改变私有属性需要调用该有参方法 public encapsulation(int a, String b) { this.a = a; this.b = b; } public int getA() { return a; } public void setA(int a) { this.a = a; } public String getB() { return b; } public void setB(String b) { this.b = b; } }
运行结果如下:
到此这篇关于Java超详细介绍封装与访问控制修符的文章就介绍到这了,更多相关Java封装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
sqlite 客户端工具_C++跨平台库QT学习 使用嵌入式数据库SQLite
超过C++、压制Java与C,Python拔得TIOBE年度编程语言! ...
C语言字符串处理函数、sizeof、动态内存分配函数、main函数参数问题
python pillow库画图_python几种柱状图画法以及简单图片处理pillow库的学习
【注解】Spring AOP 面向切面编程之@Around的详细用法
windows平台编译CEF支持H264(MP3、MP4)超详细
龙蜥下游发行版 Alinux 和 UOS 成为 OpenSCAP 官方首批支持的国内 OS