0

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

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

我的代码:

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);

    }
}
4

3 回答 3

3

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

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

对于用户输入值,最好有单独的用户界面类。如果这将是一个桌面应用程序,您可以使用一些 Swing 类,例如(尽管有替代品)。

于 2012-10-13T10:05:13.937 回答
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
  }
}
于 2012-10-13T10:09:47.437 回答
1

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

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

hth

于 2012-10-13T10:08:44.197 回答