java中关于不同包package内的静态变量访问的问题,帮忙解答(50分)

  • 主题发起人 主题发起人 低调一贱男
  • 开始时间 开始时间

低调一贱男

Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个类
//collections2.java
package com.khan.util;
import java.util.*;
public class collections2{
//要访问的成员变量:
.......
public static StringGenerator countries = new StringGenerator(CountryCapitals.pairs,0);
public static StringGenerator capitals = new StringGenerator(CountryCapitals.pairs,1);
}
collections2有几个public static成员变量和几个public 函数
/*package com.khan.util;// 若改成这样就可以正常访问了
import java.util.*;
//import com.khan.util.collections2.;
public class collection1{
.........
}//collection1.java改成同一个名字空间就正常了*/
//collection1.java
import java.util.*;
import com.khan.util.collections2.;
public class collection1{}
这是第二个文件,我可以访问到public 的函数,但是访问不到public static 变量

在不同名字空间的情况下,怎么访问,排除掉另外写函数返回变量的方法
 
静态类变量可以直接使用类名访问,不用实例化类!
 
to only you,
我没有实例化,是直接访问的,这个我知道,问题的关键在于,在同一个名字空间可以访问,不同的则访问失败,他是一个public static变量啊
 
你说的这种情况我没有遇到过!我就是在不同包中访问的。
这样吧,你把代码贴一部分出来我看看
 
我已经解决了问题,
import com.khan.util.*;
就是错误出现的原因,改为绝对路径就正常了;
import java.util.*;
//import com.khan.util.*;
//自定义包内部变量的访问似乎要指定明确的类名,不能仅仅用.*来代替
import com.khan.util.collections2;
import java.util.Collections;
import com.khan.util.CountryCapitals;
 
既然只有你一个人回答,那就给人你了 only you
 
不是,我做的试验就是用.*来引入的!原因不是在这里,引入用.*和直接指定类名其后台的操作
没有区别!实际上java只在用到的情况下才去classloader,用*只是为了引入简单!其内在机理并
无二致
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
345
import
I
I
回复
0
查看
620
import
I
后退
顶部