废话不说! 情况是这样的我的程序中有两个包A,B。 这两个包中有两个类A.a , B.b ; 在类B.b中, 把变量X设为public static String X = ""; 型 。 这个类中有个函数Y, 在Y中把变量X的值设为"joey" , 在类A.a中 , 先用import把B这个包导入, 再用b.X的方式读变量怎么还是""(空值)呢 ? 是不是B.b类中的函数Y没起作用, 于是在函数Y中写System.out.print(X);
输出正确, 为啥在A.a 中用不了, 郁闷啦~~~~~~~~~~~
输出正确, 为啥在A.a 中用不了, 郁闷啦~~~~~~~~~~~
解决方案 »
- IO 操作 CRLF expected at end of chunk: -1/-1 错误、急急急
- 一个关于数组的new的问题~~
- 请问高手这个java哪里错了
- 我写的一个测试数据库连接的函数出现missing返回值问题
- JB的进来看一看.急,在线等,谢谢!
- 有意思,看看为什么会输出这个结果???????????????
- 用java如何实现贴吧签到
- 初学者的烦恼,请各位高手指点迷津。
- 请问,我用JBUILDER做了一个Applet,在JBUILDER下可以预览,在ie下为什么就看不了呢?
- 如何将表数据做成三维视图?
- 想请问大家,为什么我的这个conn.java在执行javac conn.java时出错,说什么“SQL”不存在什么的。。。。
- 关于文件网络传送压缩问题,求各位帮帮忙
你B.b中的Y函数,执行了吗?得手动的执行啊……
比如,在A.a中执行b.Y();然后b.X就会按照你b.Y()中那样进行赋值了。
当然,你在Y方法中写了System.out.print(X);
你肯定按照这个顺序写的
X="joey";
System.out.print(X); //已经给X附值了!所以输出了!
你在 A.a 类中有没有调用 b类中的 Y()方法呢.
如果没有调用 那么 X的值当然还是空拉.
* @param args
*/
public static void main(String[] args) {
System.out.println(b.X);//这个时候,Y方法没被调用过,所以还是""
new b().Y();//当你这么执行的时候,执行了Y方法内部代码,所以给X"joey"
}}
package B;public class b { public static String X = ""; public void Y() {
X = "joey";
System.out.print(X);
}
}
如果没有调用 那么 X的值当然还是空拉.
定义的时候都用final限制否则这种情错误很难被发现,
b.X由于这个类成员没有被初始化,所以是null
还用什么Y阿。
import B.b;
public class a {
public static void main(String[] args) {
System.out.println(b.X);//静态变量可以直接调用
b.Y();//这里无法调用,因为Y非静态方法,要用具体的对象来调用.这样new b().Y();就行.
}
}
package B;
public class b {
public static String X = "";
public void Y() {
X = "joey";
System.out.print(X);
}
}
第二,建议你给类B.b中变量X一个get方法,这样你在类A.a中可以很好的调用的
第三,请检查你是否在类A.a中先调用的类B.b中的函数Y,然后再使用的b.X的方式读变量,一定注意先后顺序~~~以上三点就是解决方法~~~
如果是这样的话肯定取到的还是空了,B.Y处理过的X跟A.X不是一个X哈
楼主可以把Y函数做成构造函数
这样在调用的时候就变了
山西交友——寻找你人生的另一“伴”。
贵族交友网:www.sxgzjyw.cn就是专门为由于工作繁忙,人际圈有限,在爱情路上苦苦等待的朋友提供了更多的择偶机会。