Java新对象实例更改旧实例

Java新对象实例更改旧实例,java,object,instances,Java,Object,Instances,因此,我目前正试图用java语言用命题逻辑构造句子,但我遇到了一个问题,可能是基本java语言,但我尝试过研究它,我不知道到底是什么错了 我遇到的问题是,当我构造一个新的复句(有一个二元连接词、一个左边和一个右边)时,它会改变我的旧句子。如果我启动了一个全新的实例,甚至没有将其添加到知识库中,它如何改变以前的实例?当我运行调试器时,它看起来就像在构造新的第二句话时,它仍然使用旧实例,因为旧实例是调试器变量中的“this” 以下是我的主要方法: public static void main(S

因此,我目前正试图用java语言用命题逻辑构造句子,但我遇到了一个问题,可能是基本java语言,但我尝试过研究它,我不知道到底是什么错了

我遇到的问题是,当我构造一个新的复句(有一个二元连接词、一个左边和一个右边)时,它会改变我的旧句子。如果我启动了一个全新的实例,甚至没有将其添加到知识库中,它如何改变以前的实例?当我运行调试器时,它看起来就像在构造新的第二句话时,它仍然使用旧实例,因为旧实例是调试器变量中的“this”

以下是我的主要方法:

 public static void main(String[] args) {

    runModusPonens();
}


public static void runModusPonens(){
    KB modusKB=new KB();
    Symbol p=modusKB.intern("P");
    Symbol q=modusKB.intern("Q");
    modusKB.add(p);
    Sentence im=new ComplexSentence(LogicalConnective.IMPLIES,p,q);

    modusKB.add(im);

    modusKB.printWorld();

    Sentence i=new ComplexSentence(LogicalConnective.AND,q,p);

    modusKB.printWorld();
}
**输出为:

第一个modusKB打印输出:

P

(P IMPLIES Q)
第二个modusKB打印输出(创建第二个句子后)

还有我的补习班

public class ComplexSentence implements Sentence{
//Sentence structure: leftSide(left hand side sentence) binarycon(connective) rightSide(right hand side sentence)
public static LogicalConnective binarycon;
public static Sentence leftSide;
public static Sentence rightSide;

public ComplexSentence(LogicalConnective connective,Sentence left, Sentence right){
    binarycon=connective;
    leftSide=left;
    rightSide=right;
}



public String toString() {
    return "("+this.leftSide+" "+this.binarycon+" "+this.rightSide+")";
}

}

注意:句子界面中还没有任何内容,所以不能是它

您的问题似乎是静态成员,这些成员由您的
complexEntence
类的所有实例共享:

public static LogicalConnective binarycon;
public static Sentence leftSide;
public static Sentence rightSide;

使它们非静态,以便允许类的不同实例具有不同的值。

所有变量都是静态的。如果你不想让任何一个实例改变它们的值,它们就不应该是静态的。哦,你的权利,非常感谢你!我忽略了这一点。
public static LogicalConnective binarycon;
public static Sentence leftSide;
public static Sentence rightSide;