我最近开始编程。到目前为止,我已经学习了基础知识,现在是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);
}
}
答案 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