请有人告诉我oops或java中'静态变量'和'正常变量'之间的区别。如果可能,也可以使用它们。
答案 0 :(得分:3)
静态变量通常是与类型相关联的变量。将此与实例变量(与特定的类型实例或局部变量相关联)进行比较,该变量与对方法的一个特定调用相关联。
我不知道“动态变量”的任何标准定义 - 您在哪里遇到过这个术语?
答案 1 :(得分:3)
考虑具有静态和动态变量的类。
答案 2 :(得分:2)
静态变量是类或类型级别的变量。并且只有一个副本可用于该类类型的所有实例。
正如我所知,并没有动态变量的概念。如果您在某个特定情况下遇到过这个概念,那么请提一下,可能对您有所帮助。
已编辑:回答您关于'static int'和'int'之间差异的问题。
假设你有一个班级为
public class StaticInfo{
private static int count;
private int variable;
//.. say setter and getters for variable
//.. static setter and getters for count;
}
因此,如果您创建两个StaticInfo类型的对象,那么这两个将具有两个不同的“变量”成员,但是一个公共计数成员是一个类成员。
希望现在很清楚。
答案 3 :(得分:1)
静态变量在Type的生命周期中实例化一次。
如果您有静态变量,则为Age类 static int staticAge;
和另一个变量作为实例变量int instanceAge;
分配给staticAge的值对于Age的所有实例都是相同的,因为相同的变量将在所有对象之间共享。
instanceAge的值将特定于Age的对象。
答案 4 :(得分:1)
在java中,静态变量是通过使用' static'创建的。变量数据类型前面的关键字。
static int count
如果您要使用静态变量的概念,则不会为每个对象创建静态变量而不是此对象,它只为类创建了一个副本。这里找到java的代码示例
class Company{
static String companyName;
String branch;
}
class Car{
static String carName;
String model;
}
public class Server{
public static void main(String ar[]){
Company company1 = new Company();
Company company2 = new Company();
Company company3 = new Company();
Car car1 = new Car();
Car car2 = new Car();
Car car3 = new Car();
}
}
在上述计划'公司'和' Car' class有3-3个对象但是对于静态变量,只创建一个副本,没有静态变量有3个单独的内存分配所以在' Company' class companyName变量只会创建一次,其中branch变量将为每个对象创建3次,同样的东西适用于Car类。
简而言之,静态变量内存在类的所有对象之间共享,并且可以修改。
动态变量意味着您要创建类动态变量,而这是不可能的,您可以使用java反射在动态上初始化变量。
答案 5 :(得分:0)
除非您制作final
,否则所有变量都是动态的。静态只是另一个野兽。
答案 6 :(得分:0)
这个问题没有多大意义。 Java没有动态变量。例如,CommonLisp就有它们,但Java没有。
答案 7 :(得分:0)
静态变量(应该)保持不变,例如水浴的温度,特定弹簧的k常数。动态变量随着实验的进行而变化,例如气温和压力,自然光量。