嗨,我有一个要求,我需要动态的is4cselected值。
public class A {
boolean is4cselected=false;
public A(){
//
//
}
public void set4c(){
is4cselected=true;
}
}
class B{
public static void main(String args[]){
A a=new A();
a.set4c();
}
}
我没有看到它发生,因为我们必须首先创建A类的对象。
有没有其他方法可以实现这一目标?我的意思是说我需要is4cselected在某些情况下是假的,并且在main()中的某些if-else条件中是真的。在此先感谢
答案 0 :(得分:0)
如果is4cselected与所有A类相关联,而不仅仅是A类的特定实例,那么您可以使用静态成员(换句话说,如果只有1 is4cselected
,在所有A
)之间共享;
public class A {
static boolean is4cselected=false;
......
然后您可以将其称为A.is4cselected,像往常一样使用private
,public
等
或者如果 与特定实例相关联,那么只需在构造函数中传递它
public class A {
boolean is4cselected;
public A(boolean is4cselected){
this.is4cselected=is4cselected;
}
......
你会像这样创建A类;
A a=new A(true);
答案 1 :(得分:0)
您可以添加一个构造函数,该构造函数接受该字段的布尔值,并在您想要使用非默认值创建该类的实例时调用它:
public A(boolean is4cselected){
this.is4cselected = is4cselected
}
然后:
public static void main(String args[]){
A a = new A(true);
}
答案 2 :(得分:0)
在拥有实例之前,您无法更改实例成员(is4cselected
)的值。
你可以添加一个构造函数,让你可以在A
以外的任何内容访问实例之前设置该值:
public A(boolean sel) {
is4cselected = sel;
}
...你会在B
中使用这样的:
A a = new A(true);
或者您可以为它添加工厂功能:
public static A buildWithFlagSet() {
A rv = new A();
rv.set4c();
return rv;
}
...你会在B
中使用这样的:
A a = A.buildWithFlagSet();
答案 3 :(得分:0)
public class A {
boolean is4cselected=false;
public A(is4cselected){
this.is4cselected = is4cselected;
}
public void set4c(){
is4cselected=true;
}
}
class B{
public static void main(String args[]){
A a=new A(true);
}
}
答案 4 :(得分:-3)
YES:
看@ static {}我添加到你的代码
public class A {
static{
boolean is4cselected=false;
}
public A(){
//
//
}
public void set4c(){
is4cselected=true;
}
}
class B{
public static void main(String args[]){
A a=new A();
a.set4c();
}
}