public double getArea() { return /* ??? */;}

Given:

public class Circle {
double radius;
public double area:
public Circle (double r) { radius = r;}
public double getRadius() {return radius;}
public void setRadius(double r) { radius = r;}
public double getArea() { return /* ??? */;}
}
class App {
public static void main(String[] args) {
Circle c1 = new Circle(17.4);
c1.area = Math.PI * c1.getRadius() * c1.getRadius();
}
}

This class is poorly encapsulated. You need to change the circle class to compute and return the area instead.
What three modifications are necessary to ensure that the class is being properly encapsulated?

Given:

public class Circle {
double radius;
public double area:
public Circle (double r) { radius = r;}
public double getRadius() {return radius;}
public void setRadius(double r) { radius = r;}
public double getArea() { return /* ??? */;}
}
class App {
public static void main(String[] args) {
Circle c1 = new Circle(17.4);
c1.area = Math.PI * c1.getRadius() * c1.getRadius();
}
}

This class is poorly encapsulated. You need to change the circle class to compute and return the area instead.
What three modifications are necessary to ensure that the class is being properly encapsulated?

A.
Change the access modifier of the setRadius () method to private

B.
Change the getArea () method
public double getArea () { return area; }

C.
When the radius is set in the Circle constructor and the setRadius () method, recomputed the area and store it into the area field

D.
Change the getRadius () method:
public double getRadius () {
area = Math.PI * radius * radius;
return radius;
}

Explanation:
A: There is no need to have setRadius as public as the radius can be set through the Circle method.
B: We need to return the area in the getArea method.
C: When the radius changes the Area must change as well.
Incorrect answer:
D: the getRadius() method does not change the radius, so there is no need to recomputed the area.



Leave a Reply 3

Your email address will not be published. Required fields are marked *


Jazz

Jazz

A,B,C

Explanation:

A: There is no need to have SetRadius as public as the radius can be set through the Circle method.
B: We need to return the area in the GetArea method.
C: When the radius changes the Area must change as well.

Incorrect answer:
D: the getRadius() method does not change the radius, so there is no need to recomputed the area in getRadius().

Hans

Hans

Is the class properly encapsulated when you make a method (that you may be needing to reset the radius) to private? I don’t think so.

D is indeed a lousy answer too.

James

James

The Answer is A, B, C.