0% found this document useful (0 votes)
6 views1 page

Javanotes5 184

The document describes the definition and functionality of a Student class in Java, which includes instance variables for a student's name and test grades, as well as a method to compute the average grade. It emphasizes that class members are not static, meaning instances of the class can have different values for their variables, and that variables hold references to objects rather than the objects themselves. Additionally, it explains how to create an object of the Student class using the 'new' operator and clarifies the terminology surrounding object references.

Uploaded by

dsstudent05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views1 page

Javanotes5 184

The document describes the definition and functionality of a Student class in Java, which includes instance variables for a student's name and test grades, as well as a method to compute the average grade. It emphasizes that class members are not static, meaning instances of the class can have different values for their variables, and that variables hold references to objects rather than the objects themselves. Additionally, it explains how to create an object of the Student class using the 'new' operator and clarifies the terminology surrounding object references.

Uploaded by

dsstudent05
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

168 CHAPTER 5.

OBJECTS AND CLASSES

public class Student {


public String name; // Student’s name.
public double test1, test2, test3; // Grades on three tests.
public double getAverage() { // compute average test grade
return (test1 + test2 + test3) / 3;
}
} // end of class Student
None of the members of this class are declared to be static, so the class exists only for
creating objects. This class definition says that any object that is an instance of the Student
class will include instance variables named name, test1, test2, and test3, and it will include an
instance method named getAverage(). The names and tests in different objects will generally
have different values. When called for a particular student, the method getAverage() will
compute an average using that student’s test grades. Different students can have different
averages. (Again, this is what it means to say that an instance method belongs to an individual
object, not to the class.)
In Java, a class is a type, similar to the built-in types such as int and boolean. So, a class
name can be used to specify the type of a variable in a declaration statement, the type of a
formal parameter, or the return type of a function. For example, a program could define a
variable named std of type Student with the statement
Student std;
However, declaring a variable does not create an object! This is an important point, which is
related to this Very Important Fact:

In Java, no variable can ever hold an object.


A variable can only hold a reference to an object.

You should think of objects as floating around independently in the computer’s memory. In
fact, there is a special portion of memory called the heap where objects live. Instead of holding
an object itself, a variable holds the information necessary to find the object in memory. This
information is called a reference or pointer to the object. In effect, a reference to an object
is the address of the memory location where the object is stored. When you use a variable of
class type, the computer uses the reference in the variable to find the actual object.
In a program, objects are created using an operator called new, which creates an object
and returns a reference to that object. For example, assuming that std is a variable of type
Student, declared as above, the assignment statement
std = new Student();
would create a new object which is an instance of the class Student, and it would store a
reference to that object in the variable std. The value of the variable is a reference to the
object, not the object itself. It is not quite true, then, to say that the object is the “value of
the variable std” (though sometimes it is hard to avoid using this terminology). It is certainly
not at all true to say that the object is “stored in the variable std.” The proper terminology
is that “the variable std refers to the object,” and I will try to stick to that terminology as
much as possible.
So, suppose that the variable std refers to an object belonging to the class Student. That
object has instance variables name, test1, test2, and test3. These instance variables can

You might also like