java 包和类的简单问题 5

为什么答案选c,详细的解释一下... 为什么答案选c,详细的解释一下 展开
 我来答
百度网友9c743b7
2015-05-14 · TA获得超过925个赞
知道小有建树答主
回答量:360
采纳率:100%
帮助的人:311万
展开全部
大家说的有在理的有不在理的,这个东西系统的说下。
java提供四种访问控制权限,public protected,default,private,default就是friendly就是不写。
那么什么东西可以用呢,类只可以有两种修饰,一个public一个default
类成员变量 类变量 ,方法,类方法可以有以上四种 局部变量不能修饰 。
public的类是谁都可以访问,当然不同包必须import才可以访问,default的类只有同包才可以访问。
那么有必要说下什么叫可以访问,访问又叫对谁可见,可以访问或者可见的的意思是可以建立类的实例,和可以访问类的变量或方法
在类前的访问控制权限是说第一条的,可以建立类的实例。
那么访问类的变量或方法就同时受到类的访问控制权限和变量或方法的访问控制权限双重制约,你不能类都不可见,去访问public的变量。
public变量和方法(以下略)权限最高都可以用 相当于 self+kids(not same package)+default(同下)+outOfPackage
protected 次之,self+default(同下)+kids(not same package)
default 再次 同包的意思 self+default(同包子类算在这里就不用再分了,以上俩也是一样)
private self
所以D的问题是非同包子类,非同包根本不可能“看见”Target怎么来的子类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llei32wang
2015-05-13 · TA获得超过2736个赞
知道大有可为答主
回答量:1478
采纳率:60%
帮助的人:1388万
展开全部
选C 如果Target是被public修饰 则选A 因为name是public修饰的所有类都能访问的。

但是Target类是默认的friendly ,这样Target类本省就只能被certkiler 这个包下的类访问,自然Target的成员变量也只能被这个包下的类访问,其他包的类连Target类都访问不到的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fordasvland
2015-05-13 · TA获得超过414个赞
知道小有建树答主
回答量:513
采纳率:54%
帮助的人:169万
展开全部
package certkiler;------这个是说明你所在拿个包下编译文件。

如果哪像直接访问这个name的值,任何一个类主要有Target这个对象就可以访问name的值,name是属于这个类的属性,是对Target这个类的一个描述,所以你要想访问这个类,必须现获取这个类对戏那个才能访问这个对象所拥有的属性,就像饭店吃饭一样,想吃饭你就得去饭店。
更多追问追答
追问
同一包下的类访问这个变量是通过实例化这个类么?那他如何更改这个变量呢?
追答
是的需要实例化变量,生成相应变量的setter和getter方法,改变这个变量可以通过对象 String name = Target.setName(""); 赋值即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
许愿结
2015-05-13
知道答主
回答量:44
采纳率:0%
帮助的人:9.3万
展开全部
name变量设定的是public属性,意味着所有同一个包下的外部类都能访问这个变量.别的包如果要访问就要先引入certkiller这个包才能访问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大男孩662
2015-05-13
知道答主
回答量:11
采纳率:0%
帮助的人:7.7万
展开全部
因为name变量是public修饰的,而Target是在certkiller包下,根据public权限定义可知只要是和Target类同包的类都可调用到name变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式