Java OOP三角存在

时间:2012-10-13 09:59:41

标签: java oop input geometry

我最近开始编程。到目前为止,我已经学习了基础知识,现在是OOP的时间,因此我有一些问题,因为我正在构建基本程序,以便理解主体并链接到我将以实际方式使用它的方式。

所以我在Java中制作简单的三角形程序,到目前为止它计算周长(以后会广告其他形状和其他参数),我碰到了我想添加三角形存在的墙(因为一边不能为负)我也想允许用户输入。事情是我不知道在哪里放置代码以及如何引用类。线性(非OOP)方式很简单,但是如何在OOP中完成,我是否必须通过方法创建另一个类或Triangle类?

我的代码:

public class Trissturis {
    private int sideA, sideB, sideC;
    private double perimeter;

    public Trissturis(int a, int b, int c) {
        sideA = a;
        sideB = b;
        sideC = c;
    }

    public double getPerimeter() {
        return sideA + sideB + sideC;
    }
}

public class TestTri {
    public static void main(String[] args) {

        Trissturis t1 = new Trissturis(10, 20, 30);
        System.out.println("perimeter is  " + t1.getPerimeter());

        Trissturis t2 = new Trissturis(-1, 20, 30);

    }
}

3 个答案:

答案 0 :(得分:3)

要验证三角形,您必须检查所有边的长度是否大于零,并且没有边长于其他两边的总和。实现此目的的方法是:

public boolean isValid(){
    return (sideA>0)&&(sideB>0)&&(sideC>0)&&(sideA+sideB>sideC)&&(sideA+sideC>sideB)&&(sideC+sideB>sideA);
}

对于用户输入值,最好有单独的用户界面类。如果这是一个桌面应用程序,你可以使用一些Swing类,例如(尽管有其他选择)。

答案 1 :(得分:2)

interface TriangleFactory {

  Triangle create();

}

class ConsoleTriangleFactory implements TriangleFactory {
  @Override
  Triangle create() {
    // read perimeter from console here with some nice prompt
    // check that every side is > 0, 
    // if it's not a number or less than 0 - then do some alert
  }
}

答案 2 :(得分:1)

检查三角形是否正确构造(带有非负值等)的代码属于Triangle类。

获取用户输入的代码可以在Test的一个小程序的main()中,但可以在一个单独的UI命名空间中用于更大的应用程序。

HTH