Accepting and Returning Objects when Programming with Methods in Java - Methods returning objects: explanation
(Page 5 of 5 )
This section will explain the code listed in previous section. The following is the new “method” I introduced in the class “MyCalc”:
public MyCalc getDoubledValues() {
MyCalc t = new MyCalc();
t.x = x * x;
t.y = y * y;
return t;
}
The above is a bit different from any of the methods listed till now. Let us consider the first line:
public MyCalc getDoubledValues()
From the above line, the name of the method is “getDoubledValues." It accepts no parameters and returns a value of type “MyCalc.” In fact, “MyCalc” is not a standard data type like “int” or “float.” It is of type “class.” That means the method is trying to return an “object” of type “MyCalc” class. We have the second line as follows:
MyCalc t = new MyCalc();
In the above statement, we are simply creating a new temporary object “t,” which is also of type “MyCalc.” That means again “t” consists of all members available in the “MyCalc” class. Now, I assign the values to “x” and “y” of “t” based on the double values available in the calling object:
t.x = x * x;
t.y = y * y;
Once the values are filled, we return the temporary object “t” back to the calling program using the following statement:
return t;
Now, if we proceed to our “test” frame, we have the following initially:
MyCalc obj1 = new MyCalc();
MyCalc obj2 = new MyCalc();
obj1.x = 10;
obj1.y = 20;
obj2 = obj1.getDoubledValues();
I declared two objects named “obj1” and “obj2.” Now, both of them internally contain members (x, y, copyValues, getDoubledValues, getSum). You can also observe that I am simply providing the values of “x” and “y” for only “obj1.” Proceeding further, we have the following:
obj2 = obj1.getDoubledValues();
The above is the most important statement of our example. I am calling the method “getDoubledValues” from “obj1” (which has some values of x and y in it), by assigning the returned object to “obj2.”
Once the method is called, the object “t” which is instantiated at “getDoubledValues” will be assigned back to “obj2.” That means all the members/values in “t” will referred by “obj2” now.
int r;
r = obj1.getSum();
this.lblMsg.setText("Sum = " + String.valueOf(r));
r = obj2.getSum();
this.lblMsg2.setText("Sum = " + String.valueOf(r));
The above does nothing but get the sum of “x” and “y” and display it. My previous article gives you a better understanding of it.
The entire code for this article is freely available in the form of a zip file. That downloadable solution was developed using NetBeans 4.1 IDE together with Microsoft Windows 2003 Standard Edition. I didn’t really test it in any other version or platform. Please follow the respective platform documentation to get it working. And please note that this series is dedicated to the beginners who wanted to work with NetBeans IDE.
Any doubts, bugs, errors, suggestions, feedback etc. are highly appreciated at jag_chat@yahoo.com.
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |