-1

Hey I'm having some trouble managing multiple instances of the same class in a java program. I've creating a few instances of a java class that contains a few methods that add/subtract from an integer in the class, but what's happening is that the adding and subtracting is being done on all of the instances (see code below), any tips on managing these instances is most appreciated.

Integerclass num1 = new Integerclass();
Integerclass num2 = new Integerclass();
Integerclass num3 = new Integerclass();
num1.assignvalue(3);
num2.assignvalue(5);
num1.addone();
num2.subtractone();
System.out.println(num1.i);
System.out.println(num2.i);

So what happens when I try to print out the integer 'i' from the integer class from each instance they are identical even though they should be different values since they are different instances and I was adding and subtracting different values to them.

4
  • 2
    Add the IntegerClass here Commented Apr 20, 2014 at 2:51
  • 7
    Well, in this case, since 1+3 and 5-1 both are 4, I'm not surprised you are getting the same number... Commented Apr 20, 2014 at 2:51
  • 1
    If there truly is a problem here, then most likely the issue is that "i" is declared "static". Don't do that! Remove the "static" and the problem will magically resolve. Commented Apr 20, 2014 at 3:24
  • thx I removed the static and it seems to have worked now (btw I didn't mean to use 5 and 3 it was for any integers, the 4's were a coincidence) Commented Apr 20, 2014 at 4:13

1 Answer 1

1

Let's go through this step by step.

Integerclass num1 = new Integerclass();
Integerclass num2 = new Integerclass();

We have two new instances, num1 and num2.

num1.assignvalue(3);

num1 is now 3.

num2.assignvalue(5);

num2 is now 5.

num1.addone();

num1 is now 4.

num2.subtractone();

num2 is now 4.

System.out.println(num1.i);
System.out.println(num2.i);

Both num1 and num2 are 4 so these will print the same thing.

Your code appears to be fine. If you don't do the exact same calculations, they will print differant values.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.