作者id9455 (Pony)
看板java
标题[问题] access modifier的问题
时间Sun Apr 29 14:05:39 2007
最近在测试 Java 的 Access Modifier
(public, protected, private, none)
在编译的时候发生了一件诡异的事情
先附上程式码:
==
Array.java==
package simple;
class Array {
public Array() {
System.out.println( "simple.Array");
}
}
==
List.java==
package simple;
public class List {
Array a = new Array();
public Array b = new Array();
public List(){
System.out.println( "com.bruceeckel.util.List");
}
}
==
TestLib.java==
import simple.*;
public class TestLib {
public static void main(String[] args) {
// Array is not public accessible.
// Array a = new Array();
List l = new List();
// cannot access a since it’s in package scope
// System.out.println(l.a);
System.out.println(l.b);
}
}
假设目前的路径是 d:\java\id9455\simple
Array.java 和 List.java 放在 d:\java\id9455\simple
TestLib.java 放在 d:\java\id9455
问题来了
在编译的时候
如果在 d:\java\id9455\simple 下
javac *.java
可以正常编译
但如果是:
先编译 Array.java,再编译 List.java
却会发生
找不到 Array 这个 Class 的问题
根据我对 none 这个 access modifier 的认识
他应该要能够让
在同一个 Package 里其他的Class 存取
但错误讯息却找不到这个Class
请问一下这是为什麽呢 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.64.169.97