title: How to turn static methods into non-static. Small explanation/examples related to java oop
body: <p>I cant get how to use/create oop code without word static. I read Sun tutorials, have book and examples. I know there are constructors, then "pointer" this etc. I can create some easy non-static methods with return statement. The real problem is, I just don't understand how it works.I hope some communication gives me kick to move on. If someone asks, this is not homework. I just want to learn how to code.
  The following code are static methods and some very basic algorithms. I'd like to know how to change it to non-static code with logical steps(please.)
  The second code shows some non-static code I can write but not fully understand nor use it as template to rewrite the first code. 
  Thanks in advance for any hints.</p>
  
  <pre><code>    import java.util.Scanner;
  
  /**
   *
   * @author
   */
  
  public class NumberArray2{
  
      public static int[] table() {
          Scanner Scan = new Scanner(System.in);
          System.out.println("How many numbers?");
          int s = Scan.nextInt();
          int[] tab = new int[s];
  
          System.out.println("Write a numbers: ");
          for(int i=0; i&lt;tab.length; i++){
             tab[i] = Scan.nextInt();
          }
          System.out.println("");
          return tab;
      }
  
      static public void output(int [] tab){
          for(int i=0; i&lt;tab.length; i++){
              if(tab[i] != 0)
                  System.out.println(tab[i]);
          }
  
      }
  
      static public void max(int [] tab){
         int maxNum = 0;
          for(int i=0; i&lt;tab.length; i++){
              if(tab[i] &gt; maxNum)
                  maxNum = tab[i];
  
          }
      //return maxNum;
         System.out.println(maxNum);
      }
  
      static public void divide(int [] tab){
          for(int i=0; i&lt;tab.length; i++){
              if((tab[i] % 3 == 0) &amp;&amp; tab[i] != 0)
                  System.out.println(tab[i]);
          }
      }
  
      static public void average(int [] tab){
            int sum = 0;
            for(int i=0; i&lt;tab.length; i++)
              sum = sum + tab[i];
              int avervalue = sum/tab.length;
              System.out.println(avervalue);
  
  }
  
  
  
  
          public static void isPrime(int[] tab) {
          for (int i = 0; i &lt; tab.length; i++) {
              if (isPrimeNum(tab[i])) {
                  System.out.println(tab[i]);
              }
          }
  
  
      }
  
      public static boolean isPrimeNum(int n) {
          boolean prime = true;
          for (long i = 3; i &lt;= Math.sqrt(n); i += 2) {
              if (n % i == 0) {
                  prime = false;
                  break;
              }
          }
          if ((n % 2 != 0 &amp;&amp; prime &amp;&amp; n &gt; 2) || n == 2) {
              return true;
  
          } else {
              return false;
          }
      }
  
  
  
  
      public static void main(String[] args) {
          int[] inputTable = table();
  
          //int s = table();
  
  
          System.out.println("Written numbers:");
          output(inputTable);
          System.out.println("Largest number: ");
          max(inputTable);
          System.out.println("All numbers that can be divided by three: ");
          divide(inputTable);
          System.out.println("Average value: ");
          average(inputTable);
          System.out.println("Prime numbers: ");
          isPrime(inputTable);
  
  
      }
  }
  </code></pre>
  
  <p>Second code</p>
  
  <pre><code>public class Complex {
  // datové složky
  
      public double re;
      public double im;
  // konstruktory
  
      public Complex() {
      }
  
      public Complex(double r) {
          this(r, 0.0);
      }
  
      public Complex(double r, double i) {
          re = r;
          im = i;
      }
  
  
      public double abs() {
          return Math.sqrt(re * re + im * im);
      }
  
      public Complex plus(Complex c) {
          return new Complex(re + c.re, im + c.im);
      }
  
      public Complex minus(Complex c) {
          return new Complex(re - c.re, im - c.im);
      }
  
  
      public String toString() {
          return "[" + re + ", " + im + "]";
      }
  }
  </code></pre>