<< Chapter < Page Chapter >> Page >

Computing the area of a circle

In this program, the Worker class provides a static method named area that receives a double parameter representing the radius of a circle. It computes and returns the area of the circle as a double value. The static method named area is shown in the following code fragment.

class Worker{ public static double area(double r){return r*r*Math.PI; }//end area()}// end class

As a driver, the main method of the controlling class calls the area method twice in succession, passing different values for the radius of a circle. In each case, the main method receives and displays the value that is returned by the area method representing the area of a circle.

Static methods in the class libraries

If you examine the Java API documentation carefully, you will find numerous examples of static methods that produce and return something on a non-persistent basis. (Again, non-persistent in this context means that no attempt is made by the static method to store any historical information. It does a job, forgets it, and goes on to the nextjob when it is called again.)

Factory methods

For example, the alphabetical index of the JDK 1.3 API lists several dozen static methods named getInstance , which are defined in different classes. These methods, which usually produce and return areference to an object, are often called factory methods .

Here is the text from the API documentation describing one of them:

getInstance(int)

Static method in class java.awt.AlphaComposite

Creates an AlphaComposite object with the specified rule.

Back to Question 10

Answer 9

C. 5

Explanation 9

Going through a reference to ...

This program illustrates a rather convoluted methodology by which a static method can gain access to an instance member of an object.

class Worker{ private int x = 5;public static void staticMethod(){ System.out.println(new Worker().getX()); }//end staticMethod()public int getX(){return x; }//end getX()}// end class

In this example, the static method calls a getter method on a reference to an object to gain access to an instance variable belongingto that object. This is what I meant in the discussion in the previous question when I said "going through a reference to an object of the class."

Back to Question 9

Answer 8

A. Compiler Error

Explanation 8

A static method cannot access ...

A static method cannot access non-static or instance members of its class without going through a reference to an object of the class.

In this program, the static method attempts to directly access the instance variable named x . As a result, JDK 1.3 produces the following compiler error:

Ap107.java:17: non-static variable x cannot be referenced from a static contextSystem.out.println(x);

Back to Question 8

Answer 7

C. A static method

Explanation 7

Using a static method

This is a very straightforward example of the use of a static method.

When a method is declared static , it is not necessary to instantiate an object of the class containing the method in order to access themethod (although it is possible to do so unless the class is declared abstract) . All that is necessary to access a public static method is to refer to the name of the class in which it is defined and the name of the method joined by aperiod.

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