【Java】—— Java面向对象进阶:继承小练习-Java中实现圆柱体类及其体积计算

news2024/9/19 10:40:53

目录

1. 定义圆类(Circle)

2. 定义圆柱体类(Cylinder)

3. 测试圆柱体类

4. 总结


        在Java中,我们可以通过面向对象的方式来模拟现实世界中的物体,比如圆柱体。本篇文章将通过一个简单的示例来展示如何定义一个圆柱体类(Cylinder),并计算其体积。此外,我们还将创建一个圆类(Circle)作为基类,因为圆柱体的底面本质上是一个圆。

根据下图实现类。在CylinderTest类中创建Cylinder类的对象,设置圆柱的底面半径和高,并输出圆柱的体积。

1. 定义圆类(Circle)

首先,我们需要定义一个圆类Circle,它包含圆的半径和计算圆面积的方法。

package exer5;  
  
public class Circle {  
    private double radius;  
  
    // 无参构造函数,默认半径为1  
    public Circle() {  
        radius = 1;  
    }  
  
    // 带参数的构造函数  
    public Circle(double radius) {  
        this.radius = radius;  
    }  
  
    // 获取半径  
    public double getRadius() {  
        return radius;  
    }  
  
    // 设置半径  
    public void setRadius(double radius) {  
        this.radius = radius;  
    }  
  
    // 计算圆的面积  
    public double findArea(){  
        return Math.PI * radius * radius; // 注意这里应该是半径的平方  
    }  
}

注意:在findArea方法中,我们使用了Math.PI来表示圆周率,并且圆的面积计算公式是πr²。

2. 定义圆柱体类(Cylinder)

        接着,我们定义一个圆柱体类Cylinder,它继承自Circle,并添加了圆柱体的高(length)属性和计算体积的方法。

package exer5;  
  
public class Cylinder extends Circle{  
    private double length;  
  
    // 无参构造函数,默认半径为1,高也为1  
    public Cylinder() {  
        super(); // 调用父类的无参构造函数  
        length = 1;  
    }  
  
    // 带高的构造函数  
    public Cylinder(double length) {  
        super(); // 同样调用父类的无参构造函数  
        this.length = length;  
    }  
  
    // 带半径和高的构造函数  
    public Cylinder(double radius, double length) {  
        super(radius); // 调用父类的带参数构造函数  
        this.length = length;  
    }  
  
    // 获取高  
    public double getLength() {  
        return length;  
    }  
  
    // 设置高  
    public void setLength(double length) {  
        this.length = length;  
    }  
  
    // 计算圆柱体的体积  
    public double findVolume(){  
        return findArea() * length; // 圆柱体体积 = 圆的面积 * 高  
    }  
}

3. 测试圆柱体类

最后,我们创建一个测试类CylinderTest来实例化圆柱体对象,并计算其体积。

package exer5;  
  
public class CylinderTest {  
    public static void main(String[] args) {  
        Cylinder cy = new Cylinder(2.3, 1.4); // 创建圆柱体对象,半径为2.3,高为1.4  
  
        System.out.println("圆柱的体积为:" + cy.findVolume()); // 输出圆柱体的体积  
    }  
}

4. 总结

        通过上述步骤,我们成功地定义了一个圆柱体类Cylinder,并通过继承圆类Circle来实现对圆柱体底面半径的管理。此外,我们还添加了计算圆柱体体积的方法,并通过测试类CylinderTest验证了代码的正确性。

        面向对象编程的一个重要特点是代码的复用性和可扩展性。通过继承机制,我们可以很容易地重用已有的代码,并通过添加新的属性和方法来扩展类的功能。在这个例子中,通过        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国大学生数学建模竞赛系统使用手册

注意!国赛是学校统一报名,所以如果在操作上有任何不清楚的地方,一定要在赛前即使询问自己学校组织数模的老师!并详细阅读本文和官网通知,以及:数模国赛提交MD5码和论文的坑! 数模比赛的建模手、…

【Python报错已解决】“ModuleNotFoundError: No module named ‘timm‘”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言:一、问题描述1.1 报错示例:当我们尝试导入timm库时,可能会看到以下错误信息。…

颠覆传统:基于全文索引驱动下的高效一对多表结构设计!

首发公众号:赵侠客 引言 在数据库表结构设计中,一对多(1:N)关系的处理是非常常见需求,如一个用户有多个分类或角色。传统关系型数据库表设计方式通常要包括三张表:用户表、分类表、以及用户与分类之间的关…

LC开源电路的学习(一)

TI的升压芯片,电压虽然能升高,但是带来的问题就是最大电流大幅降低: CC1和CC2芯片接快充芯片之后,直接接到单片机的下载口: 这个有点意思,用导线换电阻: 、 PD快充芯片CH224K需要连接typeC的D…

华为云征文|基于Flexus云服务器X实例的应用场景-部署脚手架开源项目若依

🔴大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂 先看这里 写在前面**Flexus X实例**的云服务器简介环境准备若依项目拉取导入数据库启动本地项目(后端)启动本地项目(前端)打包后…

图片转为PDF怎么弄?看这里,三款软件助你一键转换!

嘿,朋友们!现在信息这么多,图片在我们学习、工作、生活中帮了大忙。但有时候,我们想把图片整理好、分享给别人或者打印出来,PDF格式就特别合适。PDF文件不管在哪儿打开,内容都不会变样,还能加密…

Pandas 9-绘制柱状图

1. 准备数据 首先,需要准备一个DataFrame。 import pandas as pd # 创建一个DataFrame data { Name: [Alice, Bob, Charlie, David], Age: [24, 27, 22, 32], City: [New York, Los Angeles, Chicago, Houston], Score: [85, 92, 78, 88]} df pd.…

【生成模型系列(初级)】自编码器——深度学习的数据压缩与重构

【通俗理解】自编码器——深度学习的数据压缩与重构 第一节:自编码器的类比与核心概念 1.1 自编码器的类比 你可以把自编码器想象成一个“智能压缩机”,它能够把输入的数据(比如图片)压缩成一个更小的表示(编码&#…

超声波模块

HCSR04超声波模块是一种常用的测距模块,它通过检测超声波发射后遇到障碍物所反射的回波,从而测量出与障碍物之间的距离。以下是对HCSR04超声波模块的详细讲解: 一、模块组成与工作原理 组成:HCSR04超声波模块主要由两个压电陶瓷超…

【我的Android进阶之旅】快来给你的Kotlin代码添加Markdown格式的注释吧!

文章目录 一、 传统 HTML 格式注释二、 Markdown 格式注释三.、Markdown格式注释详解3.1. 基础语法3.1.1 单行注释3.1.1 多行注释3.2 标题3.3 列表3.4 加粗和斜体3.5 代码块3.6 链接3.7 引用3.8 表格3.9. 图片3.10. 示例代码3.11. 注释模板的使用场景3.12 实例示例四、总结在 A…

2024年9月深圳200万~300万的三房笔记

​整理了2024年9月深圳200万~300万的三房笔记,数据可能有​出入。有些商品房数据是我看到工抵房的数据,群里说工抵房的房价数据需要乘以1.2就比较接近当前现场的价格​。对于我个人来说关注地铁,即是否方便打工还有价格​。看着一些商品房的工…

【华三】不懂链路聚合?看这篇就够了!华三配置详解

【华三】不懂链路聚合?看这篇就够了!华三配置详解 背景链路聚合基本概念聚合组和聚合接口的类型二层聚合组/二层聚合接口三层聚合组/三层聚合接口聚合接口特性 聚合接口参考端口成员端口 操作Key成员端口的配置分类协议类配置-第一类配置属性配置-第二类…

Day 1 : 数据结构

引入 以张三为例:CEF不能同时举办。 数据的逻辑结构 数据结构是什么 研究计算机数据之间的关系 逻辑结构和存储结构及其操作 基本概念 数据 数据元素 逻辑结构 按前趋和后继数将逻辑结构分为:线性结构和非线性结构。 即:找前…

云首席产品规划专家的必修课

大家好,我是卢旗。 今天和大家探讨一下云计算规划专家的必备研究内容。 一、市场与客户需求分析: 1,市场调研:深入了解当前及未来云计算市场的趋势、竞争格局、客户需求变化等,识别出潜在的市场机会和威胁。 结合20…

C++ string类—容量、元素获取

一、Capacity size:string类对象中字符的个数为size;length:size作用一样,返回string对象中有效数据个数;capacity:一个string对象的容量capacity决定了这个对象能存储多少字符(不包括\0)&…

活动系统开发之采用设计模式与非设计模式的区别-需求整理

用户需求(活动系统): 1、活动类型:答题、图片展示、签到、抽奖、组团等活动 2、活动介绍: a、答题活动: 第一种是签到后,随机抽取10道题,答对8到就可以抽奖; 第二种是随机抽取一道题&#xff0…

Python优化算法24——基于觅食生境选择的粒子群算法(FHSPSO)

科研里面优化算法都用的多,尤其是各种动物园里面的智能仿生优化算法,但是目前都是MATLAB的代码多,python几乎没有什么包,这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考:Python优化算…

c/c++基础及类和对象汇总

目录 c基础 extern关键字及c中(隐式类型转换时)的引用 c中的引用(&)及&做返回值问题 c语言中的宏函数及c的内联函数及auto及NULL 计算类的大小及深入理解this指针(深入浅出) c中的const权限及s…

C语言典型例题58

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.10 求100~200中的全部素数。 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.10 求100~200中的全部素数。#include <stdio.h> #include <math.h>int m…

python学习11-Pytorch环境安装与模型搭建

先查看下自己的电脑是否是英伟达显卡 如果不是就需要租用平台了,如 AutoDL算力云 https://www.autodl.com/home CUDA 当涉及到深度学习和 Python 时&#xff0c;CUDA 是一个非常重要的概念&#xff0c;它是 NVIDIA 开发的并行计算平台和应用程序编程接口&#xff08;API&am…