waclab1807
waclab1807

Reputation: 71

New object ovewrites data from previous created object

my problem is that I`m creating object of class Pierwiastek, with param '4\u221a(5)'. After that I can get parameters of that object like getFirst() and getInside(). Then I create new object, with different parameter '2\u221a(2)'. And here starts problems. Maybe I show that on code:

Pierwiastek p = new Pierwiastek('(4)\u221a(5)');
System.out.println(p.getFirst()+p.getInside());->4 and 5
Pierwiastek d = new Pierwiastek('(2)\u221a(2)');
System.out.println(d.getFirst()+d.getInside());->2 and 2
System.out.println(p.getFirst()+p.getInside());->2 and 2

why at the end is 2 and 2, instead of 4 and 5?

here is my constructor:

public class Pierwiastek {
public static String first;
public static String inside;
public Pierwiastek(String pierwiastek) {
    String[] tmp = pierwiastek.split("\u221a");
    String a , b;
    if(tmp.length > 2){         
        a = pierwiastek.substring(0,pierwiastek.indexOf("\u221a")+1);
        b = pierwiastek.substring(pierwiastek.indexOf("\u221a")+1, pierwiastek.length());
        b = b.replace("\u221a","|");
        pierwiastek = a + b;
    }
    String[] t = pierwiastek.split("\u221a");
        if (String.valueOf(pierwiastek.charAt(1)).equals(")") || String.valueOf(pierwiastek.charAt(0)).equals("\u221a")) { 
            first = "1";
        } else {
            t[0] = t[0].replace("(", "");
            t[0] = t[0].replace(")", "");
            first = t[0];
        }
    t[1] = t[1].replace("(", "");
    t[1] = t[1].replace(")", "");
    t[1] = t[1].replace("|","\u221a");
    inside = t[1];
}
public void setFirst(String f) {
    first = f;
}

public void setInside() {
    inside = this.inside;
}

public String getFirst() {
    return this.first;
}

public String getInside() {
    return this.inside;
}

public static String zlozPierwiastek(){
    return "(" + first + ")\u221a(" + inside + ")";
}
}

Upvotes: 0

Views: 49

Answers (1)

DavidL
DavidL

Reputation: 1150

Attributes first and inside shouldn't be static. Try:

private String first;
private String inside;

Same thing for the zlozPierwiastek function:

public String zlozPierwiastek(){
    return "(" + first + ")\u221a(" + inside + ")";
}

Upvotes: 3

Related Questions