zoukankan      html  css  js  c++  java
  • 以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere

    学习内容:以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere

    代码示例:

    package 实验三;

    import java.util.Scanner;

    class Point{
    private double x;
    private double y;
    public Point(double x,double y) {
    this.x=x;
    this.y=y;
    System.out.println("Point Constructor run");
    }
    public void setX(double x) {//设置x坐标
    this.x=x;
    }
    public final double getX(){//返回x坐标
    return x;
    }
    public void setY(double y) {//设置y坐标
    this.y=y;
    }
    public final double getY(){//返回y坐标
    return y;
    }
    public void show() {//显示点的坐标
    System.out.print("Point(X="+x+",Y="+y+")");
    }
    }
    abstract class Plane extends Point{
    private double x;
    private double y;
    public Plane(double x, double y) {
    super(x, y);
    this.x=x;
    this.y=y;
    }
    double length() {
    return 0;
    }
    double area() {
    return 0;
    }
    }
    class Circle extends Plane{

    private double x;
    private double y;
    final double PI=3.14159;
    private double radius;
    public Circle(double x,double y,double radius){
    super(x,y);
    this.x=x;
    this.y=y;
    this.radius=radius;
    System.out.println("Circle Constructorrun");
    }
    public void setR(double r) {
    radius=r;
    }
    public double getR() {
    return radius;
    }
    public void show() {
    System.out.println("Circle(Point("+x+","+y+"),Radius="+radius+")");
    }
    public double area() {
    double area=PI*radius*radius;
    System.out.println("Area="+area);
    return 0;
    }
    public double length() {
    double length=2*PI*radius;
    System.out.println("Length="+length);
    return 0;
    }
    }
    abstract class Solid extends Circle{
    private double x;
    private double y;
    private double radius;
    public Solid(double x, double y, double radius) {
    super(x, y, radius);
    this.x=x;
    this.y=y;
    this.radius=radius;
    }
    public double volume() {//计算体积
    return 0;
    }
    public double s_Area() {//计算表面积
    return 0;
    }
    }

    public class Sphere extends Solid{

    private double x;
    private double y;
    private double radius;
    final double PI=3.14159;
    public void setR(double r) {
    radius=r;
    }
    public double getR() {
    return radius;
    }
    public Sphere(double x, double y, double r) {
    super(x, y, r);
    this.x=x;
    this.y=y;
    radius=r;
    System.out.println("Sphere Constructor run");
    }
    public final void show() {
    System.out.println("Sphere(Circle(Point("+x+","+y+"),Radius="+radius+")");
    }
    public final double s_Area() {
    double sarea=4*PI*radius*radius;
    System.out.println("s_Area="+sarea);
    return 0;
    }
    public final double volume() {
    double volume=(4.0/3.0)*PI*radius*radius*radius;
    System.out.println("Volume="+volume);
    return 0;
    }

    public static void main(String[] args) {
    double r1;
    System.out.println("请输入r:");
    Scanner sc=new Scanner(System.in);
    r1=sc.nextDouble();
    Sphere s1=new Sphere(1,2,3);
    Sphere s2=s1;
    s1.show();
    System.out.println();//换行
    System.out.print("s1的面积:");
    s1.area();
    System.out.println();
    System.out.print("s1的周长:");
    s1.length();
    System.out.println();
    System.out.print("s1的表面积:");
    s1.s_Area();
    System.out.println();
    System.out.print("s1的体积:");
    s1.volume();
    System.out.println("...............................................");
    s2.setR(r1);
    s2.show();
    System.out.println();
    System.out.print("s2的面积:");
    s2.area();
    System.out.println();
    System.out.print("s2的周长:");
    s2.length();
    System.out.println();
    System.out.print("s2的表面积:");
    s2.s_Area();
    System.out.println();
    System.out.print("s2的体积:");
    s2.volume();
    System.out.println();

    }

    }

    运行截图:

    遇到的问题:面积、周长、表面积、体积无法输出

    解决方法:面积、周长、表面积、体积无法输出原因为程序中包含旧方法,设置面积、周长、表面积、体积函数时直接返回了计算公式导致错误。解决方法为在函数中重新设置变量分别表示面积、周长、表面积、体积,输出该变量,返回值设为0.

    明天任务:以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle

  • 相关阅读:
    刷题[CISCN2019 华东南赛区]Web4
    刷题[GWCTF 2019]你的名字
    刷题[b01lers2020]Life on Mars
    刷题[SUCTF 2018]GetShell
    洛谷入门2-分支结构
    洛谷入门3-循环结构:回文质数、斐波那契数列
    洛谷入门3-循环结构:金币、最长连号
    洛谷入门3-循环结构:津津的储蓄计划
    C++类成员初始化方法
    英语听力
  • 原文地址:https://www.cnblogs.com/zyj3955/p/13439429.html
Copyright © 2011-2022 走看看