title: What is the point of setters and getters in java?
body: <p>Please forgive the length, but here are two programs, both the exact same, but one with and one without setters, getters, and constructors.</p>
  
  <p>I've taken a basic C++ class before and don't remember any of these from it, and at the moment I'm not seeing the point of them, if anyone could explain them in lamen's terms I'd much appreciate it...at the moment they seem to be nothing more than space wasters to make my code look longer, but the teacher says they are important (and so far that's it).</p>
  
  <p>Thanks in advance! And now here's the code:
  Mileage.java:</p>
  
  <pre><code>package gasMileage;
  
  import java.util.Scanner; //program uses class Scanner
  
  public class Mileage 
  {
      public int restart;
      public double miles, gallons, totalMiles, totalGallons, milesPerGallon;
      public Mileage(int newRestart, double newMiles, double newGallons, 
                     double newTotalMiles, double newTotalGallons, double newMilesPerGallon)
      {
          setRestart(newRestart);
          setMiles(newMiles);
          setGallons(newGallons);
          setTotalMiles(newTotalMiles);
          setTotalGallons(newTotalGallons);
          setMilesPerGallon(newMilesPerGallon);
      }
      public void setRestart(int newRestart)
      {
          restart = newRestart;
      }
      public int getRestart()
      {
          return restart;
      }
      public void setMiles(double newMiles)
      {
          miles = newMiles;
      }
      public double getMiles()
      {
          return miles;
      }
      public void setGallons(double newGallons)
      {
          gallons = newGallons;
      }
      public double getGallons()
      {
          return gallons;
      }
      public void setTotalMiles(double newTotalMiles)
      {
          totalMiles = newTotalMiles;
      }
      public double getTotalMiles()
      {
          return totalMiles;
      }
      public void setTotalGallons(double newTotalGallons)
      {
          totalGallons = newTotalGallons;
      }
      public double getTotalGallons()
      {
          return totalGallons;
      }
      public void setMilesPerGallon(double newMilesPerGallon)
      {
          milesPerGallon = newMilesPerGallon;
      }
      public double getMilesPerGallon()
      {
          return milesPerGallon;
      }
      public void calculateMileage()
      {
          Scanner input = new Scanner(System.in);
          while(restart == 1)
          {
              System.out.print("Please input number of miles you drove: ");
              miles = input.nextDouble();
              totalMiles = totalMiles + miles;
              System.out.print("Please input number of gallons you used: ");
              gallons = input.nextDouble();
              totalGallons = totalGallons + gallons;
              milesPerGallon = miles / gallons;
              System.out.printf("Your mileage is %.2f MPG.\n", milesPerGallon);
              System.out.print("Would you like to try again? 1 for yes, 2 for no: ");
              restart = input.nextInt();
          }
          milesPerGallon = totalMiles / totalGallons;
          System.out.printf("Your total mileage for these trips is: %.2f.\nYour total gas consumed on these trips was: %.2f.\n", totalMiles, totalGallons);
          System.out.printf("Your total mileage for these trips is: %.2f MPG", milesPerGallon);
      }
  }
  </code></pre>
  
  <p>Mileagetest.java:</p>
  
  <pre><code>package gasMileage;
  
  public class Mileagetest 
  {
      public static void main(String[] args) 
      {
          Mileage myMileage = new Mileage(1,0,0,0,0,0);
          myMileage.calculateMileage();
      }
  }
  </code></pre>
  
  <p>And now for the one without setters and getters:</p>
  
  <p>Testmileage.java:</p>
  
  <pre><code>package gasMileage;
  
  import java.util.Scanner;
  
  public class Testmileage 
  {
      int restart = 1;
      double miles = 0, milesTotal = 0, gas = 0, gasTotal = 0, mpg = 0;
      Scanner input = new Scanner(System.in);
      public void testCalculate()
      {
          while(restart == 1)
          {
              System.out.print("Please input miles: ");
              miles = input.nextDouble();
              milesTotal = milesTotal + miles;
              System.out.print("Please input gas: ");
              gas = input.nextDouble();
              gasTotal = gasTotal + gas;
              mpg = miles/gas;
              System.out.printf("MPG: %.2f", mpg);
              System.out.print("\nContinue? 1 = yes, 2 = no: ");
              restart = input.nextInt();
          }
              mpg = milesTotal / gasTotal;
              System.out.printf("Total Miles: %.2f\nTotal Gallons: %.2f\nTotal MPG: %.2f\n", milesTotal, gasTotal, mpg);
      }
  }
  </code></pre>
  
  <p>Testmileagetest.java:</p>
  
  <pre><code>package gasMileage;
  
  public class Testmileagetest 
  {
  
      /**
       * @param args
       */
      public static void main(String[] args) 
      {
          Testmileage test = new Testmileage();
          test.testCalculate();
      }
  
  }
  </code></pre>
  
  <p>Thanks again!</p>