access control java_java access control 访问控制_继瑜2020的博客-程序员宅基地

技术标签: access control java  

访问控制在OOP中,尤其是封装的时候很重要,这些修饰符能够控制哪里属性方法能够被哪些类访问,还能保证哪些属性方法不让哪些类访问,保证数据不轻易被非法破坏,java主要使用public,protected,private以及默认值这四个修饰符来控制。

1 类的访问控制

这种比较简单,一般两种:public和默认不带修饰符的两种情况

1.1 public 类

这种类是共有的,可以被所有其他的类访问到;如果访问的类在同一个包之中,可以直接使用,不用import,否则需要import。

一般如果类中定义了一些常用的方法,最好声明为public。

1.2 default 类

即不加修饰符的类,只能在同一个包之中访问,不能跨包(class cannot be resolved to a variable),也成为包访问性。

2.类中属性和方法的访问控制

注意一点:可以访问到这个类,但是不一定能访问到它的属性和方法。因为类中属性和方法也进行了访问控制。属性和方法的访问都是四种:public,protect,private,default。

2.1 public修饰

和类中修饰的意义一样,如果属性和方法是public,则任意类都可以访问到。但是一般情况下,不推荐属性定义为public,这样有可能会破坏数据,而对于一些对外提供的方法,应该设置成public的。

2.2 default 修饰

也叫做Package access,顾名思义:就是只能在同一个包中的类才能访问,外部的包不能访问。

2.3 private 修饰

只能在该类中访问,不能在其它类,更不能跨包。这样做到目的是为了防止随意访问带来的危害(推荐)。

2.4 protected 修饰

如果设置为private的话,那么子类中也不能访问该变量 。如果需要在中访问该属性,可以使用protected修饰。这时子类(跨包也可以),相同包中的都可以访问。

如果是跨包子类,那么只能通过子类引用的方式来访问父类的protected:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42517044/article/details/114066935

智能推荐

python中定义变量和数组_python中运用ctypes库实现c风格变量的定义和调用_weixin_39619451的博客-程序员宅基地

ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。ctypes的官方文档在这里。1. ctypes基本数据类型映射表参数类型预先设定好,或者在调用函数时再把参数转成相应的c_***类型。ctypes的类型对应如下:ctypes typeC typePython Typec_charchar1-character stringc_wcharwch...

分类——PHP无限级分类_weixin_33724659的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

Python基础学习笔记:异常处理与断言(assertions)的运用_Python程序u猿的博客-程序员宅基地

python 提供了两个重要的功能来处理 python 程序在运行中出现的异常和错误:- 异常处理- 断言(assertions)

【代码笔记】Java连连看项目的实现(2)——JTable 、TableModel的使用_我睡醒刚刚的博客-程序员宅基地

博客有时间就写写,所以一篇可能会拆成很多篇,写完后计划再合在一起。首先肯定是要实现连连看的界面。先准备连连看要的图片。、“LianLianKan”就是项目名称。当然,如果小白看我的博客想学到什么,我会说还是放弃,因为文字描述会忽视很多细节,而细节决定bug……所以,包括以前的和以后的,博文都会是给自己看看或者内行触类旁通的,也就是——笔记。我也是今天才明白...

php 图片文件转base64编码格式,PHP如何将图像转换为base64编码格式_金牛座万大爺的博客-程序员宅基地

base64_encode()函数是PHP中的一个内置函数,用于将任何数据转换为base64编码。为了将图像转换成base64编码,首先需要获取文件的内容,这可以通过PHP的file_get_contents()函数来完成。然后将这个原始数据传递给base64_encode()函数进行编码。所需的函数:base64_encode()函数是PHP中的一个内置函数,用于使用MIME base64对数据...

优化你的PowerBuilder程序_iteye_15968的博客-程序员宅基地

一段程序,完成了所需要的功能固然重要,但是提高执行效率,提高代码的可重复利用性,提高程序的可读性也是很重要的。刚刚读了一个前辈的帖子,感觉受益菲浅,拿将出来与大家共享 优化你的PowerBuilder程序 一、处理 SQL 语句 1、缓冲 SQL 语句 在应用程序中,有时需要反复调用同一组 SQL语句,在这种情况下,可以通过在应用中为这些 SQL 建立缓冲区来提高执行性能。在缺省情况下...

随便推点

阿里云入选1加x ACP认证将给考生职业生涯带来助力_weixin_49195600的博客-程序员宅基地

阿里云使用普及率很高,ACP认证近期也异常火爆,从中国教育在线所获得的消息,阿里云近期入选第3批1加x,此后阶段将会在国内500所高校展开应用型人才培养,这也就意味着ACP认证作用将会尤为显著,能够为考生职业生涯发展奠定基础。阿里云丰富的技术生态体系为各领域行业企业发展提供了助力,而在这种状态下,对于相应技术问题解读以及相应问题解决等等,都成了各企业关注的重中之重,因此获得ACP认证则拥有更多进入大型企业就业的机会。从中国教育在线公布消息可知,目前阿里云已经和300余家生态企业达成了联合发展意向,202

J2EE,我们还需要什么--给陷于J2EE开发中忧郁的人们_weixin_33889245的博客-程序员宅基地

我想最初作者无非是想吐槽一下而已,却反映了J2EE程序员的现状。他们使用着J2EE复杂体系之下如此之多的框架,却被项目经理或是开发组长催着去快速构建企业应用。程序员的好奇心,在这种高压状态下,很容易丢失状态,忧郁、烦躁、不得甚解,中国的软件环境本来就不好,技术人员在老板眼以及在客户眼里里,都并不是最重要的,客户满意了就可以提交收钱走人了,有时候项目公关会更重...

pandas 6 合并数据 concat, append 垂直合并,数据会变高/长_轮子去哪儿了的博客-程序员宅基地

pandas 6 合并数据 concat, append 垂直合并,数据会变高/长from __future__ import print_functionimport pandas as pdimport numpy as npconcatenating# ignore indexdf1 = pd.DataFrame(np.ones((3,4))*0, columns=['...

怎样把k歌作品发到html里,如何将自己的原创歌曲上传入库到全民K歌_weixin_39779975的博客-程序员宅基地

使用全民K歌唱歌的人越来越多,流量也越来越大,所以,歌曲的曝光量也就随之增加,只要你的原创歌曲旋律可以,一定会有很多人进行翻唱和打榜。每天看着越来越多的人唱自己的作品时,荣誉感爆棚。那么我们自己的歌曲怎么才能上传到全民K歌呢?怎么才能让别人演唱自己的歌曲呢?第一步最重要的是你要有一首属于自己的原创歌曲,任何翻唱歌曲都是不可以的。那么怎么才能拥有原创歌曲呢,大家可以看《为您量身打造原创歌曲》这篇文章...

Linux上下文切换监控_runing_an_min的博客-程序员宅基地

题外话:每日七点,QQ群大家分享技术相关文章,睡什么睡起来嗨!QQ群号:630300475 正文:转发自(http://www.open-open.com/lib/view/open1460464385883.html  http://blog.csdn.net/mba16c35/article/details/43382737    http://www.cnblogs.com/zhir

C++线程和Java线程的对比_良秋的博客-程序员宅基地_c++多线程和java多线程

C++里的互斥锁和java里的synchronized同步代码块类似。C++里的条件变量和java里的wait/notify类似。C++里的读写锁和java里的重入锁(ReenreantLock类)类似。

推荐文章

热门文章

相关标签