aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes doubt in mock exam java belt Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Reply locked New topic
Author

doubt in mock exam java belt

Syed Naimathullah
Greenhorn

Joined: Feb 18, 2007
Posts: 17
program from mock exam java belt
explain program in full detail

01: class MyClass {
02: static int maxElements;
03:
04: MyClass(int maxElements) {
05: this.maxElements = maxElements;
06: }
07: }
08:
09: public class Q19 {
10: public static void main(String[] args) {
11: MyClass a = new MyClass(100);
12: MyClass b = new MyClass(100);
13:
14: if (a.equals(b))
15: System.out.println("Objects have the same values");
16: else
17: System.out.println("Objects have different values");
18: }
19: }

i thought the output will be
Prints "Objects have the same values"
but the output is "Objects have different values"
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

Please don't post duplicates. Continue this discussion here.


"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
Priyam Srivastava
Ranch Hand

Joined: Oct 29, 2006
Posts: 169
the O/P for this would be "Objects have different values" because class MyClass doesn't override the equals() method. Hence when you called a.equlas(b) the equals method of Object class get called.Object class's equlas() method returns true if both the reference varialble refers to the same object i.e
public boolean equals(Object o) {
.
. // Partial implementation of equals method in Object class..
.
if(this==o)
return true;
else return false;
}

MyClass a = new MyClass(100);
MyClass b = new MyClass(100);
here both a & b refers to two different objects on the heap..hence a.equlas(b) returns false...

change your code to::
MyClass a = new MyClass(100);
MyClass b = a;
System.out.println(a.equals(b));
it will now return true since both a & b refers to the same objetc on heap!!

Read Chapter 6 in K&B for more help..


"History would be kind to me, for I intend to write it."
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

Again, this is a duplicate post. Please continue this discussion under the other thread.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: doubt in mock exam java belt
 
Similar Threads
Need Help For Exam .
equals method
Hi
One Question
Equals