Java Programming, Lecture Notes # 12, Revised 08/04/99.
Students in Prof. Baldwin's Introductory Java Programming classes at ACC are responsible for knowing and understanding all of the material in this lesson (except that they are not responsible for detailed information that is specific to C++).
The detailed material on C++ is provided as supplementary material for the benefit of those persons who are already familiar with C++ and who are making the transition into Java.
New Types
Both Java and C++ make extensive use of classes. When a class is defined in either language, a new type comes into being. The new type definition can then be used to instantiate one or more objects of that new type.
A Blueprint
In both languages, the class definition provides a template or blueprint, which describes the data contained within, and the behavior of objects instantiated according to the new type.
The Data
The data is contained in variables defined within the class (often called variables, data members, or attributes).
The Behavior
The behavior is controlled by methods defined within the class (often called member functions or functions in C++).
State and Behavior
An object is said to have state and behavior. At any instant in time, the state of an object is determined by the values stored in its variables and its behavior is determined by its methods.
Class vs. Instance
In both languages, it is possible to define:
Instance variables and instance methods can only be accessed through an object of the class.
Class variables and class methods can be accessed without first instantiating an object.
The class name alone is sufficient for accessing class variables and class methods by joining the name of the class with the name of the variable or method using a period.
(C++ uses the scope resolution operator as the joining operator for accessing class variables and methods).
The general syntax for defining a class in Java is shown below.
class MyClassName{ . . . } //End of class definition. |
This syntax defines a class and creates a new type named MyClassName.
The definitions of variables and methods are inserted between the opening and closing braces.
C++ programmers should note that there is no semicolon following the closing brace in a Java class definition (although placing a semicolon there doesn't seem to cause a problem with the JDK 1.1.1 compiler). |
.
.
Q - List two of the many names commonly used for variables defined within a class in Java.
A - Instance variables and attributes.
Q - List two of the many names commonly used for the functions defined within a class in Java.
A - Member functions and instance methods.
Q - An object is said to have state and behavior. At any instant in time, the state of an object is determined by the values stored in its ___________ and its behavior is determined by its __________.
A - instance variables, methods
Q - What keyword is used to cause a variable or method to become a class variable or method in Java?
A - static
Q - Instance variables and instance methods can only be accessed through an object of the class in Java: True or False?
A - True
Q - In Java, the class name alone is sufficient for accessing class variables and class methods by joining the name of the class with the name of the variable or method using a colon: True or False?
A - False. A colon is used in C++ while a period is used in Java.
Q - Show the general syntax of an empty class definition in Java.
A - class NameOfClass{}
Q - As with C++, the syntax for a class definition in Java requires a semicolon following the closing brace: True or False?
A - Java does not require the use of a semicolon following the closing brace in a class definition.
-end-
These tutorials were developed by Richard Baldwin and are the copyrighted property of Richard Baldwin. You have permission to print one copy for your own use, but may not, without written permission from Richard Baldwin, redistribute the tutorial documents. The base material in these lessons is believed by the author to be in the public domain. If you use these lessons for any purpose, you are using them at your own risk, and this author assumes no responsibility or liability for any damages that you may incur.
Java, Sun, HotJava and various other related symbols and names are registered trademarks of Sun Microsystems, Inc. Macintosh is a registered trademark of Apple Computer, Inc. OS/2 is a registered trademark of International Business Machines Corporation. Microsoft, MS-DOS, Visual Basic, Windows, Windows NT, Internet Explorer and Visual J++ are registered trademarks of Microsoft Corporation. Netscape and JavaScript are trademarks of Netscape Communications Corporation. All other trademarks and service marks that may have been inadvertently used in these lessons without proper credit being given are the property of their respective owners. If you feel that your trademark or copyright has been compromised, please notify this author immediately, and an appropriate correction to the document will be issued.
© 1996, 1997, 1998, 1999 Richard G. Baldwin