java变量的使用 class A{ int a; static int b; void f(int x,int y) { a=x;//合法 b=y;//合法 } static void g(int z) { b=23;//合法 a=z;//非法 } }谁帮忙解释下为何a=z非法啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 a是实例变量,静态方法不能直接使用实例变量,需要通过对象来使用。你可以先A a1=new A()的方式实例化A类,然后用 a1.a=z;的方式给变量赋值。这是基础噢,看来你java还没学好,继续看书,多多练习。 因为static里面的东西被初始化的时候还没有你的a不存在这个东西你叫人家怎么赋值?? 语法基础。static静态方法是这个类的方法。你可以这么理解,既然它是类的方法,那么它可以不创建对象而直接通过类名.静态变量名直接访问(这种情况下要求这个静态变量为公有变量)。既然它那么它可以不创建对象而访问,那么有可能还没有实例化对象就这样访问了,此时在静态方法内访问实例变量是没有意义的,故编译器会报错。简单的说就是:静态方法只能调用其它静态方法,访问静态变量,而不能调用非静态方法,不能访问非静态变量! A a1=new A();a1.a = z;同一楼,接分了。 静态块中的东西也要是静态的,不需要实例化先。int a是需要实例化才能创建的,所以a=z错了。 static void g(int z) { b=23;//合法 a=z;//非法 } } 布局设计的GridLayout java2程序设计(电子工业出版社)课后习题疑问。 【急】请教字符串的位运算【不是高手勿入】 菜鸟求救 用SWT开发一个东西,最小会有多大? 讨论一个有趣的问题,发明出可以比JAV,C++更先进的编程语言 有用java是从头开发的吗 不要轻易相信按用按位运算符的速度高很多! 关于xslt的分页? 浅复制和深复制 一个判断问题 如果是按钮button,鼠标移上去变成手指图标。代码怎么写...谢谢...
你可以先A a1=new A()的方式实例化A类,然后用 a1.a=z;的方式给变量赋值。
这是基础噢,看来你java还没学好,继续看书,多多练习。
不存在这个东西你叫人家怎么赋值??
你可以这么理解,既然它是类的方法,那么它可以不创建对象而直接通过类名.静态变量名直接访问(这种情况下要求这个静态变量为公有变量)。
既然它那么它可以不创建对象而访问,那么有可能还没有实例化对象就这样访问了,此时在静态方法内访问实例变量是没有意义的,故编译器会报错。
简单的说就是:静态方法只能调用其它静态方法,访问静态变量,而不能调用非静态方法,不能访问非静态变量!
a1.a = z;同一楼,接分了。
{
b=23;//合法
a=z;//非法
}
}