赵翼 读二十二史札记:JAVA程序问题```

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 12:11:51
阅读并回答下列代码
1. public class Point {
2. protected int x, y;
3.
4. public Point()
5. {
6. setPoint(0,0);
7. }
8.
9. public Point( int x, int y)
10. {
11. setPoint( x, y);
12. }
13.
14. public void setPoint( int x, int y )
15. {
16. this.x = x;
17. this.y =y;
18. }
19.
20. public int getX()
21. {
22. return x;
23. }
24.
25. public int getY()
26. {
27. return y;
28. }
29.
30. public String toString()
31. {
32. return "[" + x + ", " + y + "]";
33. }
34.
35. }

1. public class Circle extends Point{
2. protected double radius;
3.
4. public Circle()
5. {
6. setRadius(0);
7. }
8.
9. public Circle(double radius, int x, int y)
10. {
11. super (x, y);
12. setRadius(radius );
13. }
14.
15. public void setRadius( double radius)
16. {
17. this.radius = (radius < 0.0 ? 0.0 :radius );
18. }
19.
20. public double getRadius()
21. {
22. return radius;
23. }
24.
25. public double area()
26. {
27. return Math.PI * radius * radius;
28. }
29.
30. public String toString()
31. {
32. return "中心点 = " + super.toString()+" ; 半径 = " + radius;
33. }
34.
35. }

1. import java.text.DecimalFormat;
2. import javax.swing.JOptionPane;

3. public class InheritanceTest {

4. public static void main( String[] args )
5. {
6. Point point1;
7. Circle circle1;
8.
9. point1=new Point(30, 50);
10. circle1 = new Circle( 2.7, 120, 89 );
11.
12. String output = "point1点: " + point1.toString() + "\ncircle1圆: " + circle1.toString();
13.
14. JOptionPane.showMessageDialog( null, output );
15.
16. System.exit( 0 );
17.
18. }
19. }

问题1:
1. (20分)上述代码定义了3个类,分别为:Point、Circle、InheritanceTest,其中可运行的类名是什么?
2. (20分)Point类拥有几个属性和方法?Circle类拥有几个属性和方法?
3. (20分)请说明Point与Circle之间的关系、InheritanceTest与Point和Circle类之间的关系。(提示:类与类之间有两种关系[组合与继承])
4. (20分)在Point类的30行中有一个toString()方法,Circle类中的31行也有一个toString()方法,这种情况是否允许?为什么?
5. (20分)在InheritanceTest类的12行代码,point1.toString()是调用哪个类中的方法、circle1.toString()又是调用哪个类中的方法。

1,可运行类InheritanceTest,因为里面包括main
2、Point有2个属性分别是X,Y,5个方法;
Circle有3个属性,9个方法
3、Point与Circle之间的关系--继承
InheritanceTest与Point之间的关系--组合
InheritanceTest与Circle之间的关系--组合
4、允许,类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。
5、point1.toString()是调用Point类中的方法
circle1.toString()是调用Circle类中的方法