title: How to Increment a class Integer references value in java from another method
body: <pre><code>package myintergertest;
  
  /**
   *
   * @author Engineering
   */
  public class Main {
  
      /**
       * @param args the command line arguments
       */
      public static void main(String[] args) {
          //this one does not increment 
          Integer n = new Integer(0);
          System.out.println("n=" + n);
          Increment(n);
          System.out.println("n=" + n);
          Increment(n);
          System.out.println("n=" + n);
          Increment(n);
          System.out.println("n=" + n);
          Increment(n);
  
          //this one will increment
          MyIntegerObj myInt = new MyIntegerObj(1);
          Increment(myInt);
          System.out.println("myint = " + myInt.get());
          Increment(myInt);
          System.out.println("myint = " + myInt.get());
          Increment(myInt);
          System.out.println("myint = " + myInt.get());
  
      }
  
      public static void Increment(Integer n) {
          //NO.  this doesn't work because a new reference is being assigned
          //and references are passed by value in java
          n++;
      }
  
      public static void Increment(MyIntegerObj n) {
          //this works because we're still operating on the same object
          //no new reference was assigned to n here.
          n.plusplus();   //I didn't know how to implement a ++ operator...
      }
  }
  </code></pre>
  
  <p>The result for all of those is n=0.  Integer n is an object and therefore passed by reference, so why isn't the increment reflected back in the caller method (main)?  I expected output to be n=0 n=1 n=2 etc...</p>
  
  <p>UPDATE:
  Notice I updated the code example above.  If I'm understanding correctly, Jon Skeet answered the question of why myInt would increment and why n does not.  It is because n is getting a new reference assigned in the Increment method.  But myInt does NOT get assigned a new reference since it's calling a member function.</p>
  
  <p>Does that sound like I understand correctly lol ?</p>