社区
Java SE
帖子详情
关于java类的访问权限设置
whoispo
2011-09-20 05:29:10
我有一个问题很疑惑,假设一个类没有设置为public,但是其中的成员变量或函数设置为public或protected,这是不是没有什么作用呢?它的成员变量和函数仍然无法在其它包中使用,对吗?
...全文
357
15
打赏
收藏
关于java类的访问权限设置
我有一个问题很疑惑,假设一个类没有设置为public,但是其中的成员变量或函数设置为public或protected,这是不是没有什么作用呢?它的成员变量和函数仍然无法在其它包中使用,对吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ETCentury
2011-09-22
打赏
举报
回复
[Quote=引用 14 楼 whoispo 的回复:]
我自己想明白了,一个默认类中声明public方法还是有作用的,比如我在一个包中定义两个类,一个默认类,一个public类,默认类被public类继承。那么默认类中的public方法也会被继承,虽然默认类不能被包外的类访问,但是其中的public方法可以通过public类来访问。(是不是有一点绕?)
[/Quote]
继承下来只能说明这个时候的方法应该是属于子类的,你进行的访问,实际上是对子类的访问。从这一点说,是不能直接访问。
ETCentury
2011-09-22
打赏
举报
回复
[Quote=引用 14 楼 whoispo 的回复:]
我自己想明白了,一个默认类中声明public方法还是有作用的,比如我在一个包中定义两个类,一个默认类,一个public类,默认类被public类继承。那么默认类中的public方法也会被继承,虽然默认类不能被包外的类访问,但是其中的public方法可以通过public类来访问。(是不是有一点绕?)
[/Quote]
呵呵,还真够绕的
lliiqiang
2011-09-21
打赏
举报
回复
应该是没有意义的
whoispo
2011-09-21
打赏
举报
回复
我自己想明白了,一个默认类中声明public方法还是有作用的,比如我在一个包中定义两个类,一个默认类,一个public类,默认类被public类继承。那么默认类中的public方法也会被继承,虽然默认类不能被包外的类访问,但是其中的public方法可以通过public类来访问。(是不是有一点绕?)
结贴是美德
2011-09-21
打赏
举报
回复
[Quote=引用 4 楼 dongweijhzhangli 的回复:]
打个比方吧,一个人(类)不能进入中国馆(权限范围),他的腿(成员变量和函数)怎么能自己进去呢。
[/Quote]
haha 很生动呢。。类的权限与其成员的访问权限是“递进”的关系
程序员Shark
2011-09-21
打赏
举报
回复
是的 怎么记得前几天有同样的帖子
Cactus_hxk
2011-09-20
打赏
举报
回复
[Quote=引用 2 楼 ioe_gaoyong 的回复:]
不是public 默认是default,这样确实是没法在其他包当中使用的,访问权限控制就是起这个作用的
答案很肯定
[/Quote]
这个对,
qybao
2011-09-20
打赏
举报
回复
[Quote=引用 5 楼 whoispo 的回复:]
那么为什么可以在一个非public类中写public static void main(..)呢?一样可以运行啊?
[/Quote]
那是因为你是调用
java 非public类
命令来启动程序的
这个和其它包的类访问该非public类是不同的,前者是用java命令来访问非public类,后者是程序的类之间的相互访问
echola_2020
2011-09-20
打赏
举报
回复
类只能有public或默认访问级别。具有默认级别的类只能对位于同一个包中的类是可见的。如果将一个类声明为默认级别,其他包中的类要访问该类中的protected成员,可以通过继承实现。这样有利于提高安全性。
yaganblw
2011-09-20
打赏
举报
回复
主方法独立于类
whoispo
2011-09-20
打赏
举报
回复
那么为什么可以在一个非public类中写public static void main(..)呢?一样可以运行啊?
夜半风雨知道少
2011-09-20
打赏
举报
回复
打个比方吧,一个人(类)不能进入中国馆(权限范围),他的腿(成员变量和函数)怎么能自己进去呢。
kai27ks
2011-09-20
打赏
举报
回复
不对。应该说无法直接使用。比如内部类。
风尘中国
2011-09-20
打赏
举报
回复
不是public 默认是default,这样确实是没法在其他包当中使用的,访问权限控制就是起这个作用的
答案很肯定
绝世酱油瓶
2011-09-20
打赏
举报
回复
是的。。。。不可以直接使用
java
权限管理系统的jar包
java
权限管理系统的jar包配合http://www.oschina.net/code/snippet_59256_15087使用。
一个免费的
java
权限后台管理系统框架
技术支持:www.walkersoft.net。
java
权限后台开发框架,采用spring + srpingsecurity + springMVC + Hibernate + freemarker + jquery 等技术实现,页面及源文件打包发布程序。 完整的功能应用,包括:后台权限、人员机构、参数代码、角色权限、上传文件、日志管理等内容。 您可以直接在其上面开发业务模块,具体下载和演示可访问:www.walkersoft.net。 开发文档整理中,很快会更新到网站中。希望能和广大开发者交流,并提供更多支持。 2019-08-16更新 请下载最新版:https://download.csdn.net/download/pxzsky/10587447 积分过多,不是个人原因,csdn改版后就这样了,你懂的,不再一一回复。
SSH2框架搭建实例源码
SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理
poi.jar 全部jar包程序文件
poi读取excel数据所需要的jar包
java
类
默认
访问权限
_
java
类
的
访问权限
1.解析
Java
有四种
访问权限
, 其中三种有
访问权限
修饰符,分别为private,public和protected,还有一种不带任何修饰符。private:
Java
语言中对
访问权限
限制的最窄的修饰符,一般称之为“私有的”。被其修饰的
类
、属性以及方法只能被该
类
的对象访问,其子
类
不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中...
Java SE
62,627
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章