0

hi people, I am a newbie to Java OOP,i cam across this example in a text book, but i just cldn't understand how the area is calculated.

hope that someone can explain this simple problem to me

the code is:

public class TestPassingObject
{
// Main method
public static void main ( String [ ] args )
{
// Create a Circle object with default radius 1
Circle myCircle = new Circle ( );


// Print areas for radii 1, 2, 3, 4 and 5
int n = 5;
printAreas ( myCircle, n );


// See myCircle.radius and times
System.out.println ( " \n " + " Radius is " + myCircle.radius );
System.out.println ( " n is " + n );
}


// Print a table of areas for radius
public static void printAreas ( Circle c, int times )
{
System.out.println ( " Radius \t \t Area " );
while ( times >= 1)
{
System.out.println ( c.radius + " \t \t " + c.findArea ( ) );
c.radius ++;
times--;
}
}
}


and the results are :


Radius       Area


1.0          3.14159


2.0          12.56636


3.0          28.27431


4.0          50.26544


5.0          78.53975



Radius is 6.0


n is 5

thanks in advance : )

Edited by happygeek: fixed formatting

2
Contributors
9
Replies
11
Views
12 Years
Discussion Span
Last Post by tristan17
0

The area is found when then findArea() method is called on the circle object. Area of a circle is its radius * Pi.

So, the Cicle object most likely takes it's radius (that must be hard coded to be set at 1 when a new instance of Circle is created) and multiplies it by Pi.

On a side note, i'm not sure if i'm a fan of the radius attribute of the Circle being public. There should be a setter and a getter for the Circle's radius attribute.

Regards,

Nate

0

hi Nate,

thanks for the reply...i have another question tat is, since i did not defined the formulae for the calculation of the area, didi the method do the calculation on its own? i mean, is there a defined formulae for the calculation of the area?

rgds,
tris

0

Yes, there is definently a formula that was called. If you have the code, look in the Circle.java file. You should see the formula in the findArea() method. If you don't have the Circle.java file and only have the Circle.class file then download a tool called DJ (a java decompiler) and open the Circle.java file with that tool. It will show you the code for the findArea() method.

Regards,

Nate

0

thanks, that was what i could not fiigure out initially.right now, i am using bluej as my compiler for java. do u think it has the Circle.java file?

rgds,
tris

0

Well, something has to. Post your codes import statements. If your code doesn't have any import statements then the Circle.class file and hopefully the Circle.java file will be in the same directory as your TestPassingObject.java file.

Also, if you could post your classpath that would be splended. You can find your classpath by opening a command prompt window and typing set classpath. Then, you will also want to try and find your classpath inside of bluej. I'm not exactly sure how this is done. Did the book you're reading ask you to download any files from the web? If so, which ones?

Regards,

Nate

0

Area of a circle is its radius * Pi.

Just saw some ones elses code for a circle and found that the area of a circle is it's radius squared times pi. I'm an idiot.

Warmest Regards,

Nate

0

hi Nate,

yup, i can find a Circle.class file in the same project folder as the TestPassingObject.java file. but i still dun understand what the class file is for? does it contain some predefined code or statement so that whenever i want to calculate the area of a circle, this .class file will be generated?

rgds,
tris

0

the Circle.class file is the compiled version of the Circle.java file. One way to think about is... .java files are the human readable code while the .class files are created from the .java files for computer readability.

So, if you open Circle.class with notepad, you're get a bunch of garbily gook. But, if you open it with DJ Decompiler like mentioned above, you'll get the human readable code again.

Regards,

Nate

0

hi Nate,

Thanks for the quick reply, really appreciate. I'm getting some idea about it. Will con't to work on it and post more questions so that people can learn as i learn. Hopefully, i can discuss more questions with you in the future. Nice knowing you :cheesy:

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.