<< 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.

Back to Question 3

Answer 2

D. false

Explanation 2

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 .

Back to Question 2

Answer 1

The answer is True.

Explanation 1

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

Back to Question 1

-end-

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask