技术标签: 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:
ctypes是Python的一个外部库,提供和C语言兼容的数据类型,可以很方便地调用C DLL中的函数。ctypes的官方文档在这里。1. ctypes基本数据类型映射表参数类型预先设定好,或者在调用函数时再把参数转成相应的c_***类型。ctypes的类型对应如下:ctypes typeC typePython Typec_charchar1-character stringc_wcharwch...
2019独角兽企业重金招聘Python工程师标准>>> ...
python 提供了两个重要的功能来处理 python 程序在运行中出现的异常和错误:- 异常处理- 断言(assertions)
博客有时间就写写,所以一篇可能会拆成很多篇,写完后计划再合在一起。首先肯定是要实现连连看的界面。先准备连连看要的图片。、“LianLianKan”就是项目名称。当然,如果小白看我的博客想学到什么,我会说还是放弃,因为文字描述会忽视很多细节,而细节决定bug……所以,包括以前的和以后的,博文都会是给自己看看或者内行触类旁通的,也就是——笔记。我也是今天才明白...
base64_encode()函数是PHP中的一个内置函数,用于将任何数据转换为base64编码。为了将图像转换成base64编码,首先需要获取文件的内容,这可以通过PHP的file_get_contents()函数来完成。然后将这个原始数据传递给base64_encode()函数进行编码。所需的函数:base64_encode()函数是PHP中的一个内置函数,用于使用MIME base64对数据...
一段程序,完成了所需要的功能固然重要,但是提高执行效率,提高代码的可重复利用性,提高程序的可读性也是很重要的。刚刚读了一个前辈的帖子,感觉受益菲浅,拿将出来与大家共享 优化你的PowerBuilder程序 一、处理 SQL 语句 1、缓冲 SQL 语句 在应用程序中,有时需要反复调用同一组 SQL语句,在这种情况下,可以通过在应用中为这些 SQL 建立缓冲区来提高执行性能。在缺省情况下...
阿里云使用普及率很高,ACP认证近期也异常火爆,从中国教育在线所获得的消息,阿里云近期入选第3批1加x,此后阶段将会在国内500所高校展开应用型人才培养,这也就意味着ACP认证作用将会尤为显著,能够为考生职业生涯发展奠定基础。阿里云丰富的技术生态体系为各领域行业企业发展提供了助力,而在这种状态下,对于相应技术问题解读以及相应问题解决等等,都成了各企业关注的重中之重,因此获得ACP认证则拥有更多进入大型企业就业的机会。从中国教育在线公布消息可知,目前阿里云已经和300余家生态企业达成了联合发展意向,202
我想最初作者无非是想吐槽一下而已,却反映了J2EE程序员的现状。他们使用着J2EE复杂体系之下如此之多的框架,却被项目经理或是开发组长催着去快速构建企业应用。程序员的好奇心,在这种高压状态下,很容易丢失状态,忧郁、烦躁、不得甚解,中国的软件环境本来就不好,技术人员在老板眼以及在客户眼里里,都并不是最重要的,客户满意了就可以提交收钱走人了,有时候项目公关会更重...
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歌唱歌的人越来越多,流量也越来越大,所以,歌曲的曝光量也就随之增加,只要你的原创歌曲旋律可以,一定会有很多人进行翻唱和打榜。每天看着越来越多的人唱自己的作品时,荣誉感爆棚。那么我们自己的歌曲怎么才能上传到全民K歌呢?怎么才能让别人演唱自己的歌曲呢?第一步最重要的是你要有一首属于自己的原创歌曲,任何翻唱歌曲都是不可以的。那么怎么才能拥有原创歌曲呢,大家可以看《为您量身打造原创歌曲》这篇文章...
题外话:每日七点,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里的synchronized同步代码块类似。C++里的条件变量和java里的wait/notify类似。C++里的读写锁和java里的重入锁(ReenreantLock类)类似。