【每日日报】第十天

1 今天写了以圆类Circle为基础设计球类Sphere

 实验要求:

 

 

  程序源代码:

package Point;
import java.util.Scanner;
public class Ma {
 public static void main(String[] args){
  Scanner input = new Scanner(System.in);
     double r = input.nextDouble();
     Sphere s1=new Sphere(1,2,4);
     Sphere s2=new Sphere(s1);
     s1.show();
     System.out.println();
     System.out.println("Area="+s1.area());
     System.out.println("Volume="+s1.volume());
     s2.setRadius(r);
     s2.show();
     System.out.println();
     System.out.println("Area="+s2.area(1));
     System.out.println("Circumference="+s2.circumference());
     input.close();
 }
}
 
package Point;
public class Point {
     double x;
     double y;
     Point()//无参构造
     {
      x=0;
      y=0;
         System.out.println("Point Constructor run");
     }
     Point(double xv,double yv)//有参构造
     {
      x=xv;
      y=yv;
      System.out.println("Point Constructor run");
     }
     Point(Point p)            //拷贝构造
     {
      x=p.x;
      y=p.y;
      System.out.println("Point CopyConstructor run");
     }
     void show()            //显示Point信息
     {
      System.out.println("("+x+","+y+")");
     }
     double area(){return 0;}           //面积=0
     void setX(double xv){x=xv;}        //设置X坐标
     void setY(double yv){y=yv;}        //设置Y坐标
     double getX() {return x;}           //获取X坐标
     double getY() {return y;}           //获取Y坐标
}
 
package Point;

public class Circle extends Point{
 static double PI=3.14159;
 double radius;
 Circle()
    {
        System.out.println("Circle Constructor run");
    }
 Circle(double xx,double yy,double rr)
    {
  super(xx,yy);
     radius=rr;
        System.out.println("Circle Constructor run");
    }
  Circle(Circle cir)
    {
      super(cir);
         radius=cir.radius;
         System.out.println("Circle CopyConstructor run");
  }
  void setRadius(double r){radius=r;}
  double getRadius() {return radius;}
     double circumference() {return 2*PI*radius;}        //用于计算圆的周长
     double area() {return PI*radius*radius;}            //用于计算圆的面积
     void show() {System.out.println("("+x+","+y+"),"+"Radius="+getRadius());}
}
 
package Point;
public class Sphere extends Circle{
 Sphere(){System.out.println("Sphere Constructor run");}
 Sphere(double xx, double yy, double rr)//有参构造函数Sphere
 {
  super(xx,yy,rr);
  System.out.println("Sphere Constructor run");
 }
 Sphere(Sphere sp)          //拷贝构造函数Sphere
 {
      super(sp);
         setRadius(sp.getRadius());
         System.out.println("Sphere CopyConstructor run");
  }
 double volume()  //用于计算球的体积
 {
     double r=getRadius();
     return 4*PI*r*r*r/3;
 }
 double area()  //用于计算球的表面积
 {
     double r=getRadius();
     return 4*PI*r*r;
 }
 double area(int i)
 {return super.area();}
}

  运行截图:

2  今天学到可以在子类通过super调用父类的构造以及其他函数,可以在子类中通过函数的重载调用父类已经被覆盖的函数。

3 明天继续写题

原文地址:https://www.cnblogs.com/linmob/p/13303303.html