问一下关于权限的问题

warword0 2008-05-16 06:45:14
我建了2个小文件,一个叫TestAccess.java 一个叫TestProtected.java
///////////////第一个文件//////////////////////////////////
public class TestAccess {
}

class T {
private int i = 0;
int j = 0;
protected int k = 0;
public int m = 0;

public void m() {
i = 9;
}
}

class TT {
public void m() {
T t = new T();
System.out.println(t.j);
}
}

/////////////////////////////第二个文件////////////////////////////////
package m;

public class TestProtected extends T {
public void mthod() {
System.out.println(k);
}
}
/////////////////////////////////////////////////////////////////////
这两个文件在同一个文件夹内,第一个文件可以编译,为什么第二个文件中写入“package m;”后就编译不了呢?而去掉之后就可以编译成功了?
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
linjingqin 2008-05-16
  • 打赏
  • 举报
回复
凡是用protected 修饰的属性的类,它的子类是可以访问到该属性的,包外的子类是可以的...我记得是这样的,

你没有import ......
warword0 2008-05-16
  • 打赏
  • 举报
回复
谢谢朋友,我明白了!!
FL1429 2008-05-16
  • 打赏
  • 举报
回复
建议看一下package,public,private,protected..之类的东西
apples_009 2008-05-16
  • 打赏
  • 举报
回复
类T为默认..不能跨包访问..

package test;

public class T {
private int i = 0;
int j = 0;
protected int k = 0;
public int m = 0;

public void m() {
i = 9;
}
}

class TT {
public void m() {
T t = new T();
System.out.println(t.j);
}
}
/////////////////////////////第二个文件////////////////////////////////
package test.m;
import test.T;

public class TestProtected extends T {
public void mthod() {

System.out.println(k);
}

}
warword0 2008-05-16
  • 打赏
  • 举报
回复
楼上的朋友,我按照你的方法做了,可还是不行。
密码测试 2008-05-16
  • 打赏
  • 举报
回复
在你现在的位置建一个子文件夹m,把第二个文件放在这个文件夹下,在编译试试。包与文件夹是对应的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧