假设我有一个班级孩子
public class child{
public static int age = 1;
}
我在班级学校使用班级儿童静态变量年龄
public class school{
int var_age;
public school(){ //school constructor
var_age = child.age;
}
}
根据一些逻辑,以下任何一个孩子的年龄值可能是以下任何一个:
public static int age = 1;
public static int age = 2;
我怎样才能实现这个应该应用逻辑的地方?此外,强制要求学校代码保持相同。
答案 0 :(得分:0)
您提供的信息很少,关于这将是什么类型的逻辑,但无论如何它应该在班级Child
内。根据什么类型的逻辑,我可能会把它放在构造函数中。
假设您有以下内容:
public class Child(){
public static int age = 1;
public Child(){
}
}
public class School(){
int var_age;
public School(){
var_age = Child.age;
}
}
使用此代码,类var_age
中的变量School
将始终分配给相同的值。在这种情况下,这将是 1 。如果您想依赖于逻辑,则必须在某个地方(在Child
课程中)实施它,因为您不允许编辑课程School
) 。有两种明显的方法可以做到这一点;
第一种方式 - 构造函数方式:
public class Child(){
public static int age = 1;
public Child(){
age = yourLogic(); // Assign age depending on your logic here!
}
}
通过这种方式,您的变量age
将具有默认值 1 ,并且一旦创建了Child
类型的对象,将采用您的逻辑定义的值。然而,根据您的反馈意见,您可能需要的是第二个版本。
第二种方式 - 田野:
public class Child(){
public static int age = yourLogic(); // Assign age to logic here!
public Child(){
}
}
这样,变量age
将逻辑定义的值作为默认值,因此即使没有创建类Child
的实例。这可能就是你要找的东西。但请注意:
根据逻辑的计算复杂程度,这可能是一种非常糟糕的做法。
顺便说一句,不要将java静态与" dynamic"的反义词混淆。 java意义上的static
仅表示变量绑定到类型而不是 instance / Object 。这意味着无需调用或创建周围类的实例即可访问它。如果你想要与动态相反,那就是java中的final
。