学习内容:以圆类 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

以圆类 Circle 及立体图形类 Solid 为基础设计球类 Sphere的更多相关文章

  1. 以圆类 Circle 及立体图形类 Solid 为基础设计圆锥类 Cone

    学习内容:以圆类 Circle 及立体图形类 Solid 为基础设计圆锥类 Cone 代码示例: import java.util.Scanner; class Point4{ private dou ...

  2. 以圆类 Circle 及立体图形类 Solid 为基础设计圆柱类 Cylinder

    学习内容:以圆类 Circle 及立体图形类 Solid 为基础设计圆柱类 Cylinder 代码示例: import java.util.Scanner;class Point3{ private ...

  3. 以圆类 Circle 为基础设计球类 Sphere

    学习内容:实验二以圆类 Circle 为基础设计球类 Sphere 代码示例: import java.util.Scanner; class Point{ private double x; pri ...

  4. 以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle

    学习内容:以点类 Point 及平面图形类 Plane 为基础设计圆类 Circle 代码示例: import java.util.Scanner; class Point2{ private dou ...

  5. 以点类 Point 及平面图形类 Plane 为基础设计三角形类 Triangle

    学习内容:以点类 Point 及平面图形类 Plane 为基础设计三角形类 Triangle 代码示例: import java.util.Scanner; class Point{ private ...

  6. 创建一个圆类Circle的对象,分别设置圆的半径计算并分别显示圆半径、圆面积、圆周长。

    编写一个圆类Circle,该类拥有: ①一个成员变量 Radius(私有,浮点型): // 存放圆的半径: ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) ...

  7. 实验二——以点类 Point 为基类设计圆类 Circle

    学习内容:以点类 Point 为基类设计圆类 Circle 示例代码: package 实验二; import java.util.Scanner; class Point{//父类Point pri ...

  8. 2.定义图形类Shape,该类中有获得面积的方法getArea();定义长方形类Rect,该类是Shape的子类,类中有矩形长和宽的变量double a,double b,设置长和宽的方法setWidth()、setHeight(),使用getArea()求矩形面积;利用getArea方法实现题1中圆面积的求解。

    // 图形类Shape package d922B; public class Shape { double getArea(ShapePara x){ return x.getArea(); } d ...

  9. 使用IntelliJ IDEA查看类的继承关系图形

    最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟. 这次利用了IDEA的diagram,结果一目了然,也是好用到 ...

随机推荐

  1. c/c++中的i++和++i的区别

    使用 i++ vs. ++i i++是先赋值再加1 ++i是先加1再赋值 到目前为止,你已经学习了如何编写下面这样的 C++ for 循环: for (int i = 0; i < 10; i+ ...

  2. 浏览器视图层级中的“根”:<html>和<body>的属性研究

    做前端开发的同学都会知道,每一个UI系统(比如IOS或Android)中都会有一个view hierarchy(视图层级)的概念,即所有的可视元素(大到一个页面,小到一个button)都在一个树形结构 ...

  3. vue后台管理系统组件弹窗

    //addFormVisibleIcon可在data中设置true与falsehttps://element.eleme.io/#/zh-CN/component/installation <e ...

  4. vue Element验证input提示

    <el-form-item prop="userName" class="userName_color"> <b>详细地址<i c ...

  5. JavaScript 数组(Array)对象的方法

    JavaScript 数组(Array)对象的方法 concat() 描述:用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 原型:arrayObject.conc ...

  6. python入门基础—安装

    说明:0基础,那就先练习python语言基础知识,等基础知识牢固了,再对各开发平台分别进行介绍.这里只介绍两个简单而又容易搭建开发平台Anaconda和pycharm Anaconda是一个开源的Py ...

  7. 羽夏壳世界—— PE 结构(上)

    羽夏壳世界之 PE 结构(上),介绍难度较低的基本 PE 相关结构体.

  8. Java语言学习day31--8月06日

    今日内容介绍1.正则表达式的定义及使用2.Date类的用法3.Calendar类的用法 ###01正则表达式的概念和作用 * A: 正则表达式的概念和作用 * a: 正则表达式的概述 * 正则表达式也 ...

  9. java高级用法之:JNA类型映射应该注意的问题

    目录 简介 String Buffers,Memory,数组和Pointer 可变参数 总结 简介 JNA提供JAVA类型和native类型的映射关系,但是这一种映射关系只是一个大概的映射,我们在实际 ...

  10. 2021.07.23 P3275 糖果(差分约束)

    2021.07.23 P3275 糖果(差分约束) [P3275 SCOI2011]糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.为了满足更多更多约束条件,合适地 ...