<< Chapter < Page | Chapter >> Page > |
Default behavior of equals method
The default version of the equals method behaves essentially the same as the == operator.
That is to say, the inherited default version of the equals method will return true if the two objects being compared are actually the sameobject, and will return false otherwise.
As a result, this program displays false.
Overridden equals is required for valid testing
If you want to be able to determine if two objects instantiated from a class that you define are "equal", you must override the inherited equals method for your new class. You cannot depend on the inherited version ofthe equals method to do that job for you.
Overriding may not be easy
That is not to say that overriding the equals method is easy. In fact, it may be quite difficult in those cases where the classdeclares instance variables that refer to other objects. In this case, it may be necessary to test an entire tree of objects for equality.
D. false
Use of the == operator with references to objects
This program illustrates an extremely important point about the use of the == operator with objects and reference variables containing references to objects.
You cannot determine...
You cannot determine if two objects are "equal" by applying the == operator to the reference variables containing references to those objects.
Rather, that test simply determines if two reference variables refer to the same object.
Two references to the same object
Obviously, if there is only one object, referred to by two different reference variables, then it is "equal" to itself.
Objects of same type containing same instance values
On the other hand, two objects of the same type could contain exactly the same data values, but this test would not indicate that they are "equal." (In fact, that is the case in this program.)
So, how do you test two objects for equal?
In order to determine if two objects are "equal", you must devise a way to compare the types of the two objects and actually compare the contents of oneobject to the contents of the other object. Fortunately, there is a standard framework for doing this.
The equals method
In particular, the class named Object defines a default version of a method named equals that is inherited by all other classes.
Class author can override the equals method
The intent is that the author of a new class can override the equals method so that it can be called to determine if two objects instantiated fromthat class are "equal."
What does "equal" mean for objects?
Actually, that is up to the author of the class to decide.
After having made that decision, the author of the class writes that behavior into her overridden version of the method named equals .
The answer is True.
Not much to explain here
There isn't much in the way of an explanation to provide for this program.
Evaluate seven relational expressions
Each of the seven relational expressions in the argument list for the println method is evaluated and returns either true or false as a boolean value.
Concatenate the individual results, separated by a space
The seven boolean results are concatenated, separated by space characters, and displayed on the computer screen.
Brief description of the relational operators
Just in case your aren't familiar with the relational operators, here is a brief description.
Each of these operators returns the boolean value true if the specified condition is met. Otherwise, it returns false.
== Left operand equals the right operand
!= Left operand is not equal to the right operand
<Left operand is less than the right operand
<= Left operand is less than or equal to the right operand
>Left operand is greater than the right operand
>= Left operand is greater than or equal to the right operand |
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?