• Java自学第五十一天


      今天做C++典型例题。

      

    定义shape类,无数据成员,包含两个纯虚函数成员void setvalues() 和float area() ,由shape类进行派生如下:

    矩形类,包含两个数据成员变量用于描述底和高,均为float类型,重新定义上述两个纯虚函数成员,完成数据成员值的设定和面积的计算;

    三角形类,包含两个数据成员变量用于描述底和高,均为float类型,重新定义上述两个纯虚函数成员,完成数据成员值的设定和面积的计算;

    正方形类,包含一个数据成员变量用于描述边长,float类型,重新定义上述两个纯虚函数成员,完成数据成员值的设定和面积的计算;

    圆形类,包含一个数据成员变量用于描述半径,float类型,重新定义上述两个纯虚函数成员,完成数据成员值的设定和面积的计算;

    在主函数中定义相应的指针对象和普通对象,利用虚函数实现多态,依次分别输入矩形的底和高,三角形的底和高,正方形的边长,圆形的半径,若其中任何一个值小于等于0,则输出Set Value Error!,然后退出程序,对于之前已正确输入的数值计算相应形状的面积。

        代码如下

      

    package hello;

    import java.util.Scanner;

    abstract class shape{

        abstract public void setvalues(float a,float b);

        abstract public float area();

    }

    class juxing extends shape{

        private float di,gao;

        public void setvalues(float a,float b) {

            di=a;

            gao=b;

        }

        public float area() {

            return di*gao;

        }

    }

    class sanjiao extends shape{

        private float di,gao;

        public void setvalues(float a,float b) {

            di=a;

            gao=b;

        }

        public float area() {

            return di*gao/2;

        }

    }

    class zheng extends shape{

        private float bian;

        public void setvalues(float a,float b) {

            bian=a;

        }

        public float area() {

            return bian*bian;

        }

    }

    class yuan extends shape{

        private float r;

        public void setvalues(float a,float b) {

            r=a;

        }

        public float area() {

            return (float) (3.14*r*r);

        }

    }

    public class helloword {

        public static void main(String[] args){

        Scanner cn=new Scanner(System.in);

        System.out.println("输入矩形的底和高");

        juxing j=new juxing();

        j.setvalues(cn.nextFloat(), cn.nextFloat());

        System.out.println("矩形面积:"+j.area());

        sanjiao s=new sanjiao();

        System.out.println("输入三角形的底和高");

        s.setvalues(cn.nextFloat(),cn.nextFloat());

        System.out.println("三角形的面积:"+s.area());

        zheng z=new zheng();

        System.out.println("输入正方形的边长");

        z.setvalues(cn.nextFloat(), 0);

        System.out.println("正方形的面积:"+z.area());

        yuan y=new yuan();

        System.out.println("圆的半径");

        y.setvalues(cn.nextFloat(),0);

        System.out.println("圆的面积:"+y.area());

        }

    }

       这道题目都继承了一个类shape,都会重写shape类中的函数,可以算多个图形的面积。

      明天继续做C++典型例题。

  • 相关阅读:
    自定义滚动条原理
    多个轮播图或者选项卡显示在一个页面是,使用代码重用
    浮动与清除
    cni 添加网络 流程分析
    《MapReduce: Simplified Data Processing on Large Cluster 》翻译
    OpenStack overview 笔记
    docker containerd shim分析
    docker containerd 中的create 容器操作
    MIT jos 6.828 Fall 2014 训练记录(lab 6)
    docker containerd中的容器操作
  • 原文地址:https://www.cnblogs.com/ruangongwangxiansheng/p/13591344.html
Copyright © 2020-2023  润新知