程序求解(简化)
郁零 2019-04-08 08:14:51 新人。
题目:创建一个三角形类,包含属性:private int a,b,c;分别代表三角形的三条边。设计是需要满足如下需求:
a. 在创建对象输入三条边,三边取值必须合法(三边均为正值,且任意两边之和大于第三边),否则将无法创建对象;
b.为使类更易于维护,必须单独设计一个boolean limit(…)函数,实现对三条边的限制检查,符合创建条件则返回真,否则返回假。
c.该类有一个public boolean setEdges(int x, int y, int z)方法,将a/b/c的值替换成x/y/z,返回true。但当x,y,z的值不满足三角形限制条件时,将不予替换,并返回false;
d. 三角形至多能创建3个。
设计该三角形类,并验证上述需求。
我把程序做复杂了(就是打印新三角的那一步),不知如何简化,希望大家看看。
class sanjiao{
private static int total=3;
private static int count;
private static int a,b,c;
public sanjiao(int x,int y,int z){
a=x;b=y;c=z;
count++;
}
public String toString(){return " a="+a+" b="+b+" c="+c;}
private static boolean limit(int x,int y,int z){
return x>0&&y>0&&z>0&&(x+y>z)&&(x+z>y)&&(y+z>x)&&count<total;
}
public static sanjiao creat(int x,int y,int z){
if(limit(x,y,z)==true)
return new sanjiao(x,y,z);
else return null;
}
public static boolean setEdges(int x,int y,int z){
if(limit(x,y,z)==true){
a=x;b=y;c=z;
return true;
}
else return false;
}
}
class app{
public static void main (String[] args) {int a,b,c;
sanjiao s=new sanjiao(2,3,4);System.out.print(s);
if(sanjiao.setEdges(1,2,3)==true)
{System.out.println("\nreplace success!");
sanjiao w=new sanjiao(1,2,3);System.out.print(w);}
else System.out.println("\nreplace false!");
}
}