• 简单的Java面向对象程序


    上一篇随笔Java静态方法和实例方法的区别以及this的用法,老师看了以后说我还是面向过程的编程,不是面向对象的编程,经过修改以后,整了一个面向对象的出来:

    /**
     * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
     * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
     */
    
    package mission3;
    
    /**
     * 定义一个圆形类,以及圆形的私有成员属性
     */
    public class Circular {
        private double r;               //圆的半径
        private double PI;              //圆周率
        private double circularArea;    //圆的面积
    
        //自动生成getter和setter方法
        public double getR() {
            return r;
        }
    
        public void setR(double r) {
            this.r = r;
        }
    
        public double getPI() {
            return PI;
        }
    
        public void setPI(double PI) {
            this.PI = PI;
        }
    
        public double getCircularArea() {
            return circularArea;
        }
    
        public void setCircularArea(double circularArea) {
            this.circularArea = circularArea;
        }
    }
    /**
     * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
     * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
     */
    
    package mission3;
    
    /**
     * 定义一个三角形类,以及三角形的私有成员属性
     */
    public class Triangle {
        private double base;            //三角形的底边长
        private double high;            //三角形的高
        private double triangleArea;    //三角形的面积
    
        //自动生成getter和setter方法
        public double getBase() {
            return base;
        }
    
        public void setBase(double base) {
            this.base = base;
        }
    
        public double getHigh() {
            return high;
        }
    
        public void setHigh(double high) {
            this.high = high;
        }
    
        public double getTriangleArea() {
            return triangleArea;
        }
    
        public void setTriangleArea(double triangleArea) {
            this.triangleArea = triangleArea;
        }
    }
    /**
     * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
     * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
     */
    
    package mission3;
    
    /**
     * 定义一个梯形类,以及梯形的私有成员属性
     */
    public class Trapezoid {
        private double topLength;       //梯形上底边长
        private double baseLength;      //梯形下底边长
        private double high;            //梯形的高
        private double trapezoidArea;   //梯形的面积
    
        //自动创建setter和getter方法
        public double getTopLength() {
            return topLength;
        }
    
        public void setTopLength(double topLength) {
            this.topLength = topLength;
        }
    
        public double getBaseLength() {
            return baseLength;
        }
    
        public void setBaseLength(double baseLength) {
            this.baseLength = baseLength;
        }
    
        public double getHigh() {
            return high;
        }
    
        public void setHigh(double high) {
            this.high = high;
        }
    
        public double getTrapezoidArea() {
            return trapezoidArea;
        }
    
        public void setTrapezoidArea(double trapezoidArea) {
            this.trapezoidArea = trapezoidArea;
        }
    }
    /**
     * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
     * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
     */
    
    package mission3;
    
    import java.util.Scanner;
    
    /**
     * 定义一个计算类,专门用来存计算方法供主类调用
     */
    public class Calculator {
        //计算圆面积的方法
        public void calculateArea(Circular circular){
            //获取圆的对象的属性,计算出圆的面积属性赋给圆这个对象
            circular.setCircularArea(circular.getR()*circular.getR()*circular.getPI());
        }
    
        //计算三角形面积的方法
        public void calculateArea(Triangle triangle){
            //获取三角形对象的属性,计算出三角形的面积赋值给三角形对象
            triangle.setTriangleArea(triangle.getBase()*triangle.getHigh()/2);
        }
    
        //计算梯形的面积的方法
        public void calculateArea(Trapezoid trapezoid){
            //获取梯形对象的属性,计算出梯形的面积赋值给梯形对象
            trapezoid.setTrapezoidArea((trapezoid.getTopLength()+trapezoid.getBaseLength())*trapezoid.getHigh()/2);
        }
    
    
    }
    /**
     * 3 延续任务2, 定义表示圆形,三角形和梯形的类并在以上三个类中定义圆的半径,三角形的底和高,梯形的上底下底和高属性并设置set和get方法;
     * 在Calculator中定义能够实现计算图形面积的方法,能够对给定的以上圆形,三角形和梯形实现计算面积功能并最终返回计算后的面积结果.
     */
    
    package mission3;
    
    public class Test {
        public static void main(String[] args) {
            //new一个圆的类
            Circular cir = new Circular();
            //给圆的属性赋值
            cir.setR(50);
            cir.setPI(Math.PI);
    
            //new一个计算类
            Calculator cal = new Calculator();
            //调用计算类进行计算
            cal.calculateArea(cir);
            //输出圆的属性
            System.out.println("半径为"+cir.getR()+",圆周率为"+cir.getPI()+"情况下的圆的面积是:"+cir.getCircularArea());
    
            //new一个三角形的类
            Triangle tri = new Triangle();
            //给三角形的属性赋值
            tri.setBase(20);
            tri.setHigh(30);
            //调用计算类进行计算
            cal.calculateArea(tri);
            //输出三角形的属性
            System.out.println("底边长为"+tri.getBase()+",高为"+tri.getHigh()+"的三角形面积是:"+tri.getTriangleArea());
    
            //new一个梯形的类
            Trapezoid tra = new Trapezoid();
            //给梯形的属性赋值
            tra.setBaseLength(20);
            tra.setTopLength(30);
            tra.setHigh(20);
            //调用计算类进行计算
            cal.calculateArea(tra);
            //输出梯形的属性
            System.out.println(
                    "上底边长为"+tra.getTopLength()
                    +",下底边长为"+tra.getBaseLength()
                    +",高为"+tra.getHigh()
                    +"的梯形面积是"+tra.getTrapezoidArea());
        }
    }
  • 相关阅读:
    Linux下OpenSSL自签ssl证书
    戌蛤怒触铁铁树
    Python自动化办公-自动化操作Excell-openpyxl
    Python正则表达式
    Django中F查询
    如何知道自家的宽带是多少兆?
    ‘Diango中明明模版的名称写的是对的,但是访问url的时候发现没调用模版’解决方案
    Django中的聚合函数
    Django中的跨关系查询
    【RabbitMQ】零、Windows64位安装
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/14868580.html
Copyright © 2020-2023  润新知