設計一個類LinearEquation用於處理如下的2*2線性方程組,成員包含:
1、私有成員a,b,c,d,e,f;
2、一個6參數構造方法,用於傳入a,b,c,d,e,f;
3、6個getter用於返回a,b,c,d,e,f,例如getA(), getB(),…;
4、一個方法isSolvable()用於判定方程是否有解,有則返回true,否則false;
5、方法getX()和getY()返回一組解。
請提供一個測試類,測試上述所有方法。
import java.util.Scanner;
class LinearEquation
{
private double a,b,c,d,e,f;
//構造方法
LinearEquation(double a1,double b1,double c1,double d1,double e1,double f1){
a=a1;
b=b1;
c=c1;
d=d1;
e=e1;
f=f1;
}
//傳出係數a.b.c.d.e.f
public double getA(){return a;}
public double getB(){return b;}
public double getC(){return c;}
public double getD(){return d;}
public double getE(){return e;}
public double getF(){return f;}
//兩個方程是否相同
private boolean isEquationSame(){
boolean t=false;
if(a==c && b==d && e==f)
t=true;
if(a/c==b/d && a/c==e/f)
t=true;
return t;
}
//是否有解
public boolean isSolvable(){
boolean t=true;
if(a*d-b*c==0)
t=false;
if(isEquationSame()==true) //兩個方程完全相同,有無數個解
t=true;
return t;
}
//解x
public String getX(){
if(isSolvable()==true){
return String.valueOf((e*d-b*f)/(a*d-b*c));
}
else
return "無解";
}
//解y
public String getY(){
if(isSolvable()==true){
return String.valueOf((a*f-e*f)/(a*d-b*c));
}
else
return "無解";
}
}
public class Linear {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("a=");
double a=input.nextDouble();
System.out.print("b=");
double b=input.nextDouble();
System.out.print("c=");
double c=input.nextDouble();
System.out.print("d=");
double d=input.nextDouble();
System.out.print("e=");
double e=input.nextDouble();
System.out.print("f=");
double f=input.nextDouble();
LinearEquation le=new LinearEquation(a,b,c,d,e,f);
System.out.println("a="+le.getA());
System.out.println("b="+le.getB());
System.out.println("c="+le.getC());
System.out.println("d="+le.getD());
System.out.println("e="+le.getE());
System.out.println("f="+le.getF());
System.out.println("isSovable="+le.isSolvable());
System.out.println("X="+le.getX());
System.out.println("Y="+le.getY());
}
}