JAVA中怎么通过非静态方法给一个静态变量赋值?

 我来答
哈た★雷
推荐于2017-09-29 · TA获得超过213个赞
知道答主
回答量:50
采纳率:0%
帮助的人:44.5万
展开全部
public class staticTest1
{
public static int java;
public void setJava(int java)
{
this.java = java;
}

public static void main(String args[])
{
staticTest st = new staticTest();
st.setJava(2009);
System.out.println(st.java);

}
}

如你所说,这样是完全能办到的,及:

静态方法给非静态变量赋值!

下面这个程序就不能编译通过!!

public class staticTest2
{

public int c;

public static void setC(int c)
{
this.c = c;
}

public static void main(String args[])
{
staticTest st = new staticTest();
st.setC(2000);
System.out.println(st.c);

}
}

提示错误:

无法从静态上下文中,引用非静态变量!

祝楼主,天天向上!!
酒里香
2009-04-23 · TA获得超过409个赞
知道小有建树答主
回答量:263
采纳率:0%
帮助的人:163万
展开全部
非静态方法可以直接调用静态变量并且给它赋值,但不可以在非静态方法中定义静态变量
随便举个例子给你吧
class Test{
private static int c;
private static String name;
public void getInfo(){
//static int bb =10; //错误的写法。
c = 10;
name ="我是静态变量";
System.out.println(c+ " "+name);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
user_pyw
2009-04-23 · TA获得超过325个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:278万
展开全部
一般来说,
静态变量就是一个全局变量。
为什么要在方法里边来赋值呢?
那就不要静态了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-04-23
展开全部
...这很难吗

你要说 静态方法 给 非静态变量赋值 这倒是不可能的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式