【Java每日一题】——第三十六题:设计一个长方形类Rectangle和它的3个子类:圆类Circle、圆球体类Sphere和圆柱体类Cylinder,分别求它们的面积

简介: 【Java每日一题】——第三十六题:设计一个长方形类Rectangle和它的3个子类:圆类Circle、圆球体类Sphere和圆柱体类Cylinder,分别求它们的面积

🎯问题:

4、设计一个长方形类Rectangle和它的3个子类:圆类Circle、圆球体类Sphere和圆柱体类Cylinder,分别求它们的面积,具体步骤如下:


(1)定义长方形类Rectangle,定义其成员变量:x坐标(double x)、y坐标(double y),定义无参构造方法、带1个参数(x坐标)的构造方法和带2个参数的构造方法,定义以上成员变量对应的getXxx()/setXxx()方法,定义一个求其面积的area()方法,定义显示其成员变量信息和面积信息的toString()方法;


(2)定义圆类Circle,该类继承Rectangle类,定义无参构造方法和带1个参数(继承自父类的成员方法x)的构造方法,重写父类的area()方法求园的面积,重写父类的toString()方法显示园的半径和面积信息;


(3)定义圆球体类Sphere,该类继承Rectangle类,定义无参构造方法和带1个参数(继承自父类的成员方法x)的构造方法,重写父类的area()方法求圆球体的面积,重写父类的toString()方法显示圆球体的半径和面积信息;


(4)定义圆柱体类Cylinder,该类继承Rectangle类,定义无参构造方法和带2个参数(继承自父类的成员方法x表示圆柱体的半径,继承自父类的成员方法y表示圆柱体的高)的构造方法,重写父类的area()方法求圆柱体的面积,重写父类的toString()方法显示圆球体的半径、高和面积信息;


(5)在测试类Demo中分别创建Rectangle对象、Circle对象、Sphere对象、Cylinder对象,调用它们的toString()方法。测试结果如下:

b0421a8b5c58682a518925220213b011_498e015655f54fe1bb93feff032b2cfe.png

🎯 结果:

package file3;
class Rectangle{
  private double x;
  private double y;
  public Rectangle() {
    super();
  }
  public Rectangle(double x) {
    super();
    this.x = x;
  }
  public Rectangle(double x, double y) {
    super();
    this.x = x;
    this.y = y;
  }
  public double getX() {
    return x;
  }
  public void setX(double x) {
    this.x = x;
  }
  public double getY() {
    return y;
  }
  public void setY(double y) {
    this.y = y;
  }
  public double area(){
    return x*y;
  }
  @Override
  public String toString() {
    return  "长方形的长:" + getX() + " 长方形的宽:" + getY() + " 表面积:" + area();
  }
}
 
class Circle extends Rectangle{
  public Circle (){
    super();
  }
 
  public Circle(double x) {
    super(x);
  }
  @Override
  public double area() {
    // TODO Auto-generated method stub
    return getX()*getX()*3.1615926;
  }
 
  @Override
  public String toString() {
    return "圆的半径为:"+getX()+" 面积为:"+area();
  }
}
class Sphere extends Rectangle{
 
  public Sphere() {
    super();
  }
 
  public Sphere(double x) {
    super(x);
  }
  @Override
  public double area() {
    // TODO Auto-generated method stub
    return 4*3.1415926*getX()*getX();
  }
 
  @Override
  public String toString() {
    return "球的半径:" + getX()+" 表面积为:"+area();
  }
}
class Cylinder extends Rectangle{
 
  public Cylinder() {
    super();
    // TODO Auto-generated constructor stub
  }
 
  public Cylinder(double x, double y) {
    super(x, y);
    // TODO Auto-generated constructor stub
  }
  @Override
  public double area() {
    // TODO Auto-generated method stub
    return getX()*getX()*3.1415926*2+getX()*2*3.1415926*getY();
  }
  @Override
  public String toString() {
    return "圆柱的底面半径为:"+getX()+" 高为:"+getY()+" 表面积为"+area();
  }
}
public class Demo {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Rectangle r1=new Rectangle(2.4,5.6);
    System.out.println(r1.toString());
    Circle c1=new Circle(3.0);
    System.out.println(c1.toString());
    Sphere s1=new Sphere(3.0);
    System.out.println(s1.toString());
    Cylinder c2=new Cylinder(3.0, 5.0);
    System.out.println(c2.toString());
  }
 
}


💛废话文学:

Java的优势:

跨平台性: Java是一种跨平台的编程语言,即一次编写,到处运行。Java程序在不同的操作系统上具有很高的移植性,这使得开发人员能够通过Java开发应用程序,无需担心底层操作系统的差异。


面向对象: Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种编程范式使得代码可以更加模块化、可重用,并且有助于提高代码的可维护性和可扩展性。


强大的生态系统: Java拥有丰富的标准库和第三方库,提供了各种功能强大的工具和框架,如Spring、Hibernate和JUnit等。这些工具和框架使得Java开发人员能够更加高效地开发应用程序,并提供了解决特定问题的解决方案。


多线程支持: Java内置了对多线程编程的支持,使得开发人员可以轻松地创建并发应用程序。多线程编程可以有效地利用多核处理器的性能,并提高程序的响应速度和吞吐量。


安全性: Java拥有严格的安全机制,包括字节码验证、安全管理器和安全沙箱等,可以防止恶意代码对系统的破坏。这使得Java成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
2月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
263 83
|
3月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
173 35
|
4月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
70 0
|
16天前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
102 0
|
2月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
84 11
|
2月前
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
55 0
|
2月前
|
安全 Java
JAVA:Collections类的shuffle()方法
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的工具方法,适用于洗牌、抽奖等场景。该方法直接修改原列表,支持自定义随机数生成器以实现可重现的打乱顺序。使用时需注意其原地修改特性及非线程安全性。
85 0
|
2月前
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
|
2月前
|
SQL Java 数据库连接
Java 期末考试救急必备涵盖绝大多数核心考点及五大类经典代码助你过关
本文为Java期末考试复习指南,涵盖基础语法、面向对象编程、异常处理、文件操作、数据库连接五大核心考点,提供详细解析与实用代码示例,助力快速掌握重点,高效备考,轻松应对考试。
64 0

热门文章

最新文章