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

Fraction class example

Here is a small class example -- it is a type for implementing Fraction objects.

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.

More class examples in Deitel Chapter 8