在类的方法中可以定义静态变量吗?

1)在非静态方法中可以定义静态变量吗?为什么?
2)在静态方法中可以定义静态变量吗?为什么?

第1个回答  2009-07-23
都不行,
java虚拟机的运行机制是在第一次调用类的任意一个静态方法(构造函数默认也是静态方法)之前就必须给所有的静态变量在内存中分配地址。
比如说new的时候所有的静态变量的值应该已经设定好了,而方法内部的变量肯定是调用方法的时候才分配地址,这样一来就坏了规矩,java虚拟机没法工作了。所以语法里规定不能这么定义,从逻辑上来说这样也不合逻辑
第2个回答  2009-07-23
(1)不能
(2)不能本回答被提问者采纳
第3个回答  2009-07-23
不要问为什么,就是不能。这是开始设计java的时候,就设计好的。也为的是分清楚吧。记住就行

在类的方法中可以定义静态变量吗?
都不行,java虚拟机的运行机制是在第一次调用类的任意一个静态方法(构造函数默认也是静态方法)之前就必须给所有的静态变量在内存中分配地址。比如说new的时候所有的静态变量的值应该已经设定好了,而方法内部的变量肯定是调用方法的时候才分配地址,这样一来就坏了规矩,java虚拟机没法工作了。所以语法里...

方法里能够定义static变量么
不能在方法里声明一个变量为static的。static修饰的变量,任何一个类的实例对象都可以访问,是共享的。而方法中声明的变量都是局部的,方法执行完后就要销毁,释放缓存空间的。

java中静态变量和实例变量的区别?
静态变量与实例变量的主要区别在于它们的内存分配、访问方式以及在类中的共享性质。静态变量属于类,可以在类的任意方法中访问,也可以在其他类中通过类名直接访问。实例变量则属于实例对象,每个对象有自己的内存空间,只能在实例对象的方法中访问。在实际编程中,定义静态属性和常量时,我们通常通过类名.静...

C++的类中怎么用静态变量?
C++类支持静态成员变量,在使用的时候,遵循类内声明,类外定义的原则。即在类内部进行声明该变量的类型以及静态属性,但不可以赋初始值,而是要在类外定义,同时赋初始值。初始值部分,=init_value可以省略,省略时默认赋值为0。在使用上:1 成员函数均可使用静态变量;2 如果静态变量属性为public,那么...

java中静态变量在方法里面与方法外面的区别
(1)成员变量:定义在类中,方法外。有默认值。(2)局部变量:定义在代码块{}或方法中。没有默认值,使用之前必须显示赋值。2.成员变量可以分为静态变量和非静态变量,都有默认值。3.Java不像C\/C++,不可以在方法里面使用static定义所谓的“静态局部变量”。所以Java里的静态变量都是成员变量。

C++类中静态变量和静态方法使用介绍
静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全...

c++ 为什么不能在类类对static成员定义? 我看的都是类内声明,类外定义...
你好,静态数据成员为各对象所共有,而不只属于某个对象的成员,所有对象都可以引用它。静态的数据成员在内存中只占一份空间,而不是每个对象都分别为它保留一份空间。所以静态数据成员只能在类体外进行初始化。再复制一下看到的别人的解释吧。静态数据成员对于所有类对象来说只有一份,因此不能在类体内...

如何初始化一个类中的静态成员变量
1. 在类中,只是声明了静态变量,并没有定义。2. 声明只是表明了变量的数据类型和属性,并不分配内存;定义则是需要分配内存的。注意:如果在类里面这么写int a; 那么是既声明了变量,也定义了变量,两者合在一起了。3. 静态成员是“类级别”的,也就是它和类的地位等同,而普通成员是“对象(...

Java中,在main方法中定义如下变量,结果报错,static float b = 10.98f...
方法内的变量为局部变量,它的作用域是整个方法体,也就是说,当方法结束的时候该变量的空间也会被释放掉。而使用static修饰的变量为类变量,一旦定义,常驻内存,这与局部变量的定义是矛盾的。望楼主采纳。

java静态变量可以在函数中吗
是可以的。静态变量如果想要在 方法(函数)中使用的话,方法也得是静态的。比较正规的说法: 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员

相似回答