该死的公共变量~~~ 气死我了

jhacker7 2008-04-24 07:40:07
废话不说! 情况是这样的我的程序中有两个包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 中用不了, 郁闷啦~~~~~~~~~~~
...全文
336 35 打赏 收藏 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
wensheng_zh2007 2008-04-25
  • 打赏
  • 举报
回复
对阿,你没执行Y方法
我是风 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mscf 的回复:]
是Y方法没机会被执行吧
[/Quote]
oogamiyiqilou 2008-04-25
  • 打赏
  • 举报
回复
Y 没有执行 X的值当然不会变了
楼主可以把Y函数做成构造函数
这样在调用的时候就变了
haizj0216 2008-04-25
  • 打赏
  • 举报
回复
楼主有钱人啊,jf
jackzlj 2008-04-25
  • 打赏
  • 举报
回复
呵呵!~!
不是吧!~
jiaping108 2008-04-25
  • 打赏
  • 举报
回复
表告诉偶你先在A.a中调用了一下B.Y,然后再去取B.X
如果是这样的话肯定取到的还是空了,B.Y处理过的X跟A.X不是一个X哈
guoxiaopeng1982 2008-04-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 jhacker7 的帖子:]
废话不说! 情况是这样的我的程序中有两个包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 中用不了, 郁闷啦~~~~~~~~~~~
[/Quote]
第一,编程思想里面说过,两个包直接的数据传递尽量不要使用static数据
第二,建议你给类B.b中变量X一个get方法,这样你在类A.a中可以很好的调用的
第三,请检查你是否在类A.a中先调用的类B.b中的函数Y,然后再使用的b.X的方式读变量,一定注意先后顺序~~~

以上三点就是解决方法~~~
a_nuo 2008-04-25
  • 打赏
  • 举报
回复
顶25楼的
liuwei424 2008-04-25
  • 打赏
  • 举报
回复
哈哈,朋友,你有点晕乎哦
胡矣 2008-04-25
  • 打赏
  • 举报
回复
根据你的描述,模拟出下面程序.

package A;
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);
}
}

hx2044 2008-04-25
  • 打赏
  • 举报
回复
把代码贴出来看看就知道了,说那么多干啥.
huxinyu929 2008-04-25
  • 打赏
  • 举报
回复
直接用String的构造方法么。。
还用什么Y阿。
assdust110 2008-04-25
  • 打赏
  • 举报
回复
除非你在b.getX中隐式调用Y方法,要不就不可能改变X值

或者你吧X改成static的,或者不用b.X拿变量

说完了 拿分来
gjgj3368 2008-04-25
  • 打赏
  • 举报
回复
先调用Y方法啊
再用b.X的方式读变量
shili150 2008-04-25
  • 打赏
  • 举报
回复
接分
cnjzy0106 2008-04-25
  • 打赏
  • 举报
回复
汗~一看就是Y没执行!怎么可能有值呢!!
panxuan 2008-04-25
  • 打赏
  • 举报
回复
Y函数没有执行而已。
Shine_Panda 2008-04-25
  • 打赏
  • 举报
回复
一个变量 lz 也不用发这么大的火嘛。
身体要紧
brant_yan 2008-04-25
  • 打赏
  • 举报
回复
滞后编译
pjcc001 2008-04-25
  • 打赏
  • 举报
回复
推荐一个网站


山西交友——寻找你人生的另一“伴”。
贵族交友网:www.sxgzjyw.cn就是专门为由于工作繁忙,人际圈有限,在爱情路上苦苦等待的朋友提供了更多的择偶机会。
加载更多回复(15)
内容概要:本文研究了一种周期感知LightGBM预测与NSGA-Ⅱ优化耦合的建筑群能源系统协同调度方法,旨在提升建筑群能源系统的低碳经济性和运行效率。该方法首先利用周期感知的LightGBM模型对建筑群的能源负荷与可再生能源出力进行高精度时序预测,充分挖掘数据中的周期性规律,显著提高预测准确性;随后,结合多目标优化算法NSGA-Ⅱ,构建协同调度模型,综合考虑经济成本、碳排放和能源利用率等多个目标,求解得到一组帕累托最优调度方案,实现多目标间的均衡优化。研究通过Python编程实现了完整的预测与优化流程,并在实际场景中验证了所提方法在降低系统运行成本和减少碳排放方面的有效性。; 适合人群:具备一定Python编程基础,从事电力系统、能源管理、智能优化或机器学习相关领域的研究人员与工程技术人员,尤其适合关注多目标优化与时间序列预测融合应用的硕士、博士研究生及科研工作者。; 使用场景及目标:①应用于建筑群、园区等多主体能源系统的协同调度与低碳优化;②实现对光伏、负荷等具有强周期性特征的时间序列数据进行精准预测;③解决能源调度中经济性、环保性等多目标相互冲突的优化问题,获得兼顾各方需求的调度策略。; 阅读建议:此资源以实际代码实现为核心,建议读者在学习过程中结合Python代码,重点理解周期特征提取、LightGBM模型构建、NSGA-Ⅱ算法应用及多目标优化结果分析等关键环节,并尝试在不同场景下复现和调整参数,以深化对方法原理与工程应用的理解。
代码下载地址: https://pan.quark.cn/s/a3d7b3cb0017 ### 利用LabVIEW达成网页数据获取及网页间互动的核心技术要点 #### 一、背景与挑战界定 在当代软件开发领域,从网络页面中获取数据以及与网页进行互动的需求正逐步增长。这一需求不仅适用于数据分析范畴,同时也广泛用于自动化测试、内容采集等多个领域。本文将系统阐述如何借助LabVIEW这一功能强大的可视化编程平台,实现对网络页面数据的采集以及与网页的互动操作。 #### 二、解决策略的制定 为了达成上述目标,必须仔细考虑以下几个核心方面: 1. **如何对网页进行操控**:这包括启动、关闭浏览器窗口,以及加载特定的网络页面等操作。 2. **如何实现与网页的通讯**:这涉及如何读取网页内容,以及如何填写表单数据等任务。 3. **如何提取所需信息**:这需要深入理解HTML的结构,并能够准确定位到特定的数据元素。 #### 三、关键的技术工具 针对上述需求,LabVIEW提供了多种途径来实现网络页面的操控与数据通讯: 1. **IE控件 (Microsoft Internet Controls)**:这是一种基于ActiveX的技术,能够直接在LabVIEW中集成IE浏览器的功能。 2. **IE的自动化对象 (InternetExplorer.Application)**:这是一种COM接口,可以通过调用API来操控IE浏览器。 3. **WebBrowser控件 (.NET控件)**:LabVIEW支持.NET Framework中的WebBrowser控件,该控件提供了一系列API来操控浏览器行为。 4. **HTML文档对象模型 (HTML DOM)**:这是处理...

62,620

社区成员

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

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