Java を学んでいるので、Java のオブジェクト指向の側面もいくつか試してみることをお勧めします。次のようなことができます。
public class Triangle{
private int side1;
private int side2;
private int side3;
public Triangle(int side1, int side2, int side3){
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
public boolean isValid(){
return side1>0 && side2>0 && side3>0;
}
public boolean isTriangle(){
return (side1+side2<=side3)
|| (side1+side3<=side2)
|| (side2+side3<=side1);
}
public static void main(String[] args){
try{
side1=Integer.parseInt(args[0]);
side1=Integer.parseInt(args[0]);
side1=Integer.parseInt(args[0]);
Triangle t=new Triangle(side1,side2,side3);
if(t.isValid() && t.isTriangle())
System.out.println("Yes this makes a valid triangle");
else System.out.println("Sorry this is not a valid triangle");
}
catch(NumberFormatException e){
System.out.println("Please make sure all arguments are numeric.");
}
}
}
さらに進んで、このクラスを拡張して RightTriangle クラスを作成することもできます。三角形の側面のフィールドは非公開であるため、側面ごとに Triangle クラス (public int getSide1(){return side1;}) に getter メソッドを追加する必要があります。
public class RightTriangle extends Triangle{
public RightTriangle(int side1, int side2, int side3){
super(side1,side2,side3);
}
@Override
public boolean isValid(){
int a=getSide1();
int b=getSide2();
int c=getSide3();
return super.isValid()
&& ((a*a + b*b = c*c)
|| (a*a + c*c = b*b)
|| (b*b + c*c = a*a));
}
public static void main(String[] args){
//this is basically the same as the triangle class only now
//instantiate the RightTriangle class
RightTriangle rt=new RightTriangle(side1,side2,side3);
if(rt.isTriangle() && rt.isValid())
System.out.println("Yes this is a valid right triangle");
else System.out.println("sorry, this is not a right triangle");
}
}