java 遇到权限问题,敢怎么解决?高手请留言!

以下是父类-------------------------------------------------------------
package a.a1;
public class person{
protected String name;
protected int age;

protected void eat(){
System.out.println("eat");
}
}
以下是子类-------------------------------------------------------------------------------
package b.b1;
import a.a1.person;
class student extends person{
}
以下是测试类------------------------------------------------------------
package b.b1;
import a.a1.*;
import b.b1.*;
class test{
public static void main(String age[]){
student s = new student();
s.name = "zhang";
s.age = 12;
s.eat();
}
}
以下是错误提示--------------------------------------------------------
test.java:8: 错误: name可以在person中访问protected
s.name = "zhang";
^
test.java:9: 错误: age可以在person中访问protected
s.age = 12;
^
test.java:10: 错误: eat()可以在person中访问protected
s.eat();
^
3 个错误

那两个回答是错误的。

protected修饰符表示该变量能被与该类在同一包中的类以及其任何地方的子类访问。
不写访问属性的话,表示该变量能被与其同一包中的任何类访问。
person类中protected的变量能被student类访问,因为student是person的子类。
但是test类却不是person的子类,且不在同一个包中,故不能访问。追问

那如果我想在test类中测试student对象,又必须要调用name和age,该怎么写?

追答

两个方案。
一是将name和age暴露出来,用public修饰。
二是采用public的get/set方法
public String getName(){
return this.name
}
public void setName(String name){
this.name = name;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-25
class student extends person 不写作用域默认protected
即只能当前包下访问,如果想访问,用public 修饰student本回答被网友采纳
第2个回答  2012-06-25
protected属性是受保护的,本包内可以使用,包外有继承关系的子类可用.student类是继承person类的,因此person的三个protected属性student是可以使用的.但是student类的修饰符并没有写也就是默认的default,也就是只有本包内可以使用.test类并不继承student或者是person类,及时是new出了一个student对象来调用它所继承的父类的属性,也是不行的,因为default只能在本包内使用.
第3个回答  2012-06-25
protected 不可以被不同的package的其他类访问
只能被同一个package中的其他类访问

Java开发遇到bug不要怕,手把手教你debug!
3.1 如何加断点 选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。3.2 运行加了断点的程序 在代码区域直接右键Debug执行。3.3 如何查看调试结果 我们可以通过查看Debugger窗口和Console窗口来查看调试结果。3.4 解决问题 通过观察程序的执行以及变量值的改变,可以发现循环变量没有发生改变 ,...

JAVA高手请进!!真的要是高手,答好了继续给分
第一、提供cs及bs两种管理模式。第二、不能在数据库中放入重复的邮件地址,放入数据库中的邮件地址一定要是有效的。其它同理!不要说没有可行性,网上扔个石头一砸,只要砸中java程序员,基本都知道怎么去实现,但要实现得很完美,呵呵,有点难。设计这个毕业设计的好处:一、对多线程开发会很溜 :...

愿给50分 请教高手 java 如何实现不同用户登陆后看见的界面不同_百度知...
这个还不容易啊,在数据库上加一些自定义功能的字段,然后每个用户登录都根据这些自定义的个性化功能来显示就行了。

不支持java 按#220807#无反应 不知能不能下QQ2008 请高手指教
方法:1.先备份内存卡资料以防不测;2.在网上下mrp格式的qq2008;3.用它换掉你内存卡里mrp格式的qq2006;4.按原来方法运行qq。(若不成功注意反复检查运行过程产生的那些文件夹。)今天我心情好,就多答些吧。对于*#220807#和*#999955777#无反应的某些山寨机(至少是某个){不但可以运行qq,还可以...

工程1 Run-time error '70' permission denied怎么办啊!!
拷过来的,希望能帮上你 表示:“工程1 运行错误 ,代号70,任务拒绝,拒绝权限” 运行时错误"70"通常是一个安全或权限问题的结果,是你写文件时发生的权限错误,可能是你写完文件没有及时关闭、或者是NTFS分区上的权限问题。试图对写保护的磁盘进行写操作,或要访问加锁文件,则会出现权限被否定情况(...

...在eclipse中怎么导不进java.sql.*这包啊?请高手来帮助。
我理解为,你再重装系统,Eclipse正常运行起来,新建一个Java工程,在工程下新建一个类, import java.sql.*; 时提示找不到该包。出现这种问题,那时因为的 Java工程没有引入 JDK 的运行环境, 引入的步骤:工程右键-Properties-Java Build Path - Libraries 下 点击 “Add Library” 找到 "JRE ...

java入门到精通要多久
对于JAVA,建议你看如下的书:首先,《21天学通JAVA》;然后,《30天学通JAVA项目案例开发》(这本书的内容都是实例的,非常棒的实例!适合初学者的同时,又有实际应用性!)以上的书籍,是基于你只想学J2SE的。我还建议你主要攻J2EE方面的知识(在中国,J2SE要高手才能找到工作,而J2SE,只是菜鸟都...

如何学好java语言啊?
一:Javase基础 二:网页三剑客html+css+js 三:JavaWeb和数据库:四:JavaEE框架:企业级开发,Struts2、Spring框架、Hibernate框架、Maven核心技术、MyBaits框架、高手进阶;如果找不到学习资源,可以点击这里下载。当你学完了Java,应该如何去找工作?一.最重要的还是自身技能,这是硬件标准,标配,自己...

我的手机是诺基亚2730C的,想刷成有后台操作的,请高手指点一下
解决方法(暂定): 一,那就是回复权限。这个很显然是朋友们最不想的了。 二,如果你不想使用该软件的话,直接删除或者用凤凰浏览器或者是mmb删除该软件。 三,既然我们能知道它是由上面的那个语句引起的,那么我们就会联想到我们后台修改软件的方法了!用凤凰浏览器或者是mmb找到该软件的jad文件,把Nokia-MIDlet-auto-...

零基础自学Java要多久
建议四:一定要有一个明白人去指导你 Java的专业程度很强,80%的问题自己很难解决,而且会很浪费时间,一个小问题可以困扰一天,这样自信心会受到严重的打击。学习Java的四个阶段一:Javase基础 二:网页三剑客html+css+js 三:JavaWeb和数据库:四:JavaEE框架:企业级开发,Struts2、Spring框架、...

相似回答
大家正在搜