More on Classes and Objects

Objects as Method Parameters

Class Variables and Methods

The modifier static can be used on variables and on methods To make a class variable constant, add the keyword final as a modifier on the declaration. It's better to make your constants also static -- since the value won't change, it's more efficient to have one variable shared by the entire class.

Example

 class Student
 {
   private int testGrade;		// instance variable (non-static)
   private static int numStudents = 0;	// static variable (class variable)
   private final static int pointsPossible = 100;       // class constant

   public Student()
   {   testGrade = 0;   }

   public void setGrade(int gr)
   {   testGrade = gr;  }

   public int getGrade()
   {   return testGrade;  }

   public static void incrementNumStudents()
   {   numStudents++;   }

   public static int getNumStudents()
   {   return numStudents;  }  

 }
In this sample code: Student.java - You can get a copy of this code example here, along with a small sample main() program that illustrates some calls.

The Keyword this

From inside a class method, the keyword this is a reference variable that refers to the current object. (i.e. an instance method was called through an object. Once inside the method, this acts as the reference name for the object).

Arrays of Objects

Creating an array of objects is a little trickier than an array of a primitive type.
  1. Create an array using similar syntax to primitive types, but use the class name instead of the primitive type name:
      Student[] list = new Student[10];
    
    This only creates an array of reference variables -- references for type Student
     
  2. Create the individual objects with new, and attach to the reference variables (the array positions). This can be done separately:
      list[0] = new Student();
      list[1] = new Student();
    
    but it's easier with a loop (as long as you are using the same constructor for each object):
      for (int i = 0; i < list.length; i++)
        list[i] = new Student();
    
    Each list[i] is the reference to an object now.

Another class example

Here is a small class example that is not in the textbook. This is a class that implements Fraction objects.

More class Examples (last year's textbook)

More class examples in Deitel Chapter 8