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;//非法 } } 特急!!! 为什么在一个类的方法中使用了synchronized? 又发现一个正则问题!55对不起大家了....还需要帮忙下 谁能提供一下理发师睡觉问题的java源码? 急!美萍里的JTabel是怎么做的 如果取得已知对象的名称(不是类型,而是对象的名称) 大家介绍一下学applet经验吧 对CSDN关于修改密码的建议一点点,尽管CSDN对我进行了信誉上的剥夺 在Applet如何读取服务器上的文件????? 怎么在java中获得系统时间? TreeView的 滚动条怎么用? 一个判断问题 如果是按钮button,鼠标移上去变成手指图标。代码怎么写...谢谢...
你可以先A a1=new A()的方式实例化A类,然后用 a1.a=z;的方式给变量赋值。
这是基础噢,看来你java还没学好,继续看书,多多练习。
不存在这个东西你叫人家怎么赋值??
你可以这么理解,既然它是类的方法,那么它可以不创建对象而直接通过类名.静态变量名直接访问(这种情况下要求这个静态变量为公有变量)。
既然它那么它可以不创建对象而访问,那么有可能还没有实例化对象就这样访问了,此时在静态方法内访问实例变量是没有意义的,故编译器会报错。
简单的说就是:静态方法只能调用其它静态方法,访问静态变量,而不能调用非静态方法,不能访问非静态变量!
a1.a = z;同一楼,接分了。
{
b=23;//合法
a=z;//非法
}
}