文档章节

椎体的三种抽象方法

槑cxy
 槑cxy
发布于 2015/09/29 20:09
字数 393
阅读 12
收藏 0

题目: 编写一个椎体类,可以计算它的体积。

方法一:class 椎体

{

    数据成员:    高;

                         底面积;

    方法:           computeVolume(){   return  1/3*高*computeArea(); };              

              

                      computeArea(){  return 0;   };

                }

}

the point is : how can we compute 底面积?   so we need to add a function to compute 底面积 ;然而对于不同形状的底有不同的面积计算方式,要怎么解决呢?重载!        

class 圆锥 extends 椎体

  {

        数据成员:   半径;

         方法: computeArea(){  return 3.14*半径*半径 ;   };

 }

class 三棱锥 extends 椎体

{

        数据成员:  底边长;

                            底边高;

        方法:computeArea(){    return 1/2 * 底边长*底边高 ;     };

}

          main(){          

            椎体   a = new  圆锥();

            System.out.println(a.computeVolume().toString());

            椎体   b = new 三棱锥();

            System.out.println(b.computeVolume().to.String());

          }                                        

以上体现的我刚刚学会的上转型解决方案,可能且很大可能 有错误,待日后修改。

1、对象的上转型对象 只能 具有 从 父类继承 而来 的 或者 重写 的 数据成员 和 方法 。

            

2、对象的上转型对象一般都是要重写方法的,这也是上转型存在的理由。

另外一种抽象,在我看来更加理性专业 , 但本质和方法一一样,就不作为方法二了。将椎体的属性划分为 几何形状 + 高 。

几何形状 是一个抽象类 ,是上转型对象,仅有一个必须重写的computeArea()方法,ok,接下来就是增加继承它的子类,比如三角形,梯形等等 。

方法二:  


© 著作权归作者所有

槑cxy
粉丝 0
博文 3
码字总数 766
作品 0
东城
私信 提问
不同几种剔除(Culling)在渲染流程中的使用总结

前提 最近在阅读《Real-Time Rendering》Third Edition时,发现对于渲染管线中不同剔除部分的具体含义和生效阶段不甚明了,遂做了一点研究,在这里做一个记录。 涉及到的剔除方法包括: 视椎...

qqhellowgj
2018/04/16
0
0
Occlusion Culling(遮挡剔除)

遮挡剔除指一个物体被其他物体遮挡后,当前摄像机是不可见的,可以不对其渲染。遮挡剔除在unity不是自动进行的,很多时候离摄像机远的物体先渲染,从而覆盖了先前渲染的物体。 这和视椎体剔除...

梦想游戏人
2016/06/16
111
0
《Thinking in Java》Nine 接口

abstract class A{ //抽象方法只有声明而没有方法体 abstract void f();} 包含抽象方法的类称为抽象类,一个类包含一个或多个abstract方法,该类必须限定为abstract的。 抽象类的子类可以不是...

DouDouLee
2016/04/05
72
0
基于RGB颜色模型的图像提取与二值化

  现实中我们要处理的往往是RGB彩色图像。对其主要通过HSI转换、分量色差等技术来提出目标。 RGB分量灰度化:   RGB可以分为R、G、B三分量。当R=G=B即为灰度图像,很多时候为了方便,会直...

KenSporger
10/02
0
0
菜鸟成长系列-工厂模式

菜鸟成长系列-概述 菜鸟成长系列-面向对象的四大基础特性 菜鸟成长系列-多态、接口和抽象类 菜鸟成长系列-面向对象的6种设计原则 菜鸟成长系列-单例模式 工厂模式具有以下三种形态: 简单工厂...

2017/12/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
27分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
29分钟前
4
0
C++容器底层数据结构

内置数组: int arr[10][10];memset(arr,0,10*10*sizeof(int)); //初始化int tmp[10][10];memcpy(arr, tmp, 10 * 10 * sizeof(int));//拷贝 void *memcpy(void *destin, void *source,......

SibylY
30分钟前
3
0
Dubbo-自适应拓展机制

背景 在 Dubbo 中,很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等,这些都是Dubbo的基础组件。这些基础组件的拓展不是在系统框架启动阶段被加载,而是拓展方...

rock-man
58分钟前
7
0
Kali安装fcitx输入法(五笔)

安装fcitx > sudo apt-get install fcitx-rime fcitx-config-gtk3 重启 > sudo reboot fcitx配置 效果就是这样 配置输入法切换 系统设置...

yeahlife
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部