我可以更改由另一个类的构造函数传递的属性的值吗?

时间:2019-04-25 17:10:57

标签: java

我想通过构造函数更改基于主类的布尔属性。 这是代码:

public class NewJDialog{

    public boolean CHECK;
    java.awt.Label label;
.
.
.
    Trasporta valore = new Trasporta(CHECK,label);
.
.
.
}

Class2

public class Trasporta implementsMouseListener,MouseMotionListener{



public  boolean value;

java.awt.Label label;



public Trasporta(boolean value, java.awt.Label ... pns){

    for ( java.awt.Label genericlabel : pns){
         genericlabel.addMouseListener(this);
         genericlabel.addMouseMotionListener(this);             
    }

   this.value=value;
}




@Override
public void mousePressed(MouseEvent e) {


    this.value = true;
}

这样,CHECK属性将不会变为“ true”。

你能告诉我为什么吗? 我该如何解决?

提前感谢您的答复。

1 个答案:

答案 0 :(得分:-1)

您将CHECK声明为原始类型,并且不对其进行初始化,因此它将具有默认值(原始布尔值初始化为 false

将代码更改为

Trasporta valore = new Trasporta(true,label);

如果要使用value = true初始化Transporta类;

此外,您应该阅读有关Java命名约定的本文。 https://www.oracle.com/technetwork/java/codeconventions-135099.html