简单的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());
    }
}
原文地址:https://www.cnblogs.com/zengyu1234/p/14868580.html