<< Chapter < Page | Chapter >> Page > |
This program uses the second of the two ways listed above.
Declaring a reference variable for an array object
The following code fragment was extracted from the method named doArrays().
St[] myArray = {new St("Tom"),new St("Dick"),
new St ("Harry")};
The code to the left of the assignment operator declares a reference variable named myArray . This reference variable is capable of holding a reference to an array object that contains an unspecified number of references to objectsinstantiated from the class named St (or any subclass of the class named St) .
Note the square brackets
You should note the square brackets in the declaration of the reference variable in the above code (the declaration of a reference variable to hold a reference to an ordinary object doesn't include square brackets) .
Create the array object
The code to the right of the assignment operator in the above fragment causes the new array object to come into being. Note that the new operator is not used to create the array object in this case. (This is one of the few cases in Java, along with a literal String object, where it is possible to create a new object without using either the new operator or the newInstance method of the class whose name is Class .)
Populate the array object
This syntax not only creates the new array object, it also populates it. The new array object created by the above code contains three elements, becausethree initial values were provided. The initial values are separated by commas in the initialization syntax.
Also instantiates three objects of the St class
The code in the above fragment also instantiates three objects of the class named St . Once the array object has come into being, each of the three elements in the array contains a reference to a new object of the class St . Each of those objects is initialized to contain the name of a student by using a parameterizedconstructor that is defined in the class.
The length property value is 3
Following execution of the above code, the length property of the array object will contain a value of 3, because the array contains three elements, onefor each initial value that was provided.
Using the length property
The code in the following fragment uses the length property of the array object in the conditional clause of a for loop to display a String representation of each of the objects.
for(int cnt = 0;
cnt<myArray.length;
cnt++){System.out.print(
myArray[cnt]+ " ");
Overridden toString method
The class named St , from which each of the objects was instantiated, defines an overridden toString method that causes the string representation of an object of that class to consist of the String stored in an instance variable of the object.
Thus, the for loop shown above displays the student names that were originally encapsulated in the objects when they were instantiated.
The class named St
The code in the following fragment shows the beginning of the class named St including one instance variable and a parameterized constructor.
class St{
private String name;public St(String name){this.name = name;
}//end constructor
A very common syntax
This constructor makes use of a very common syntax involving the reference named this . Basically, this syntax says to get the value of the incoming parameter whose name is name and to assign that value to the instance variable belonging to this object whose name is also name .
Initializing the object of type St
Each time a new object of the St class is instantiated, that object contains an instance variable of type String whose value matches the String value passed as a parameter to the constructor.
Overridden toString method
The overridden toString method for the class named St is shown in the following code fragment.
public String toString(){
return name;}//end toString()
This version causes the value in the String object, referred to by the instance variable named name , to be returned when it is necessary to produce a String representation of the object.
The answer is item D, which reads as follows:
"Backslash"->\
Understand
Don't confuse the compiler
If you include certain characters inside a literal String , you will confuse the compiler. For example, if you simply include a quotationmark (") inside a literal String , the compiler will interpret that as the end of the string. From that point on, everything will be out of synchronization.Therefore, in order to include a quotation mark inside a literal string, you must precede it with a backslash character like this:
\"
Multiple lines
If you want your string to comprise two or more physical lines, you can include a newline code inside a String by including the following in the string:
\n
Escape character sequences
These character sequences are often referred to as escape character sequences . Since the backslash is used as the first character in such a sequence, if you want to include a backslash in a literal string, you must do itlike this:
\\
There are some other escape sequences used in Java as well. You would do well to learn how to use them before going to an interview for a job as a Javaprogrammer.
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?