已知导线的电阻公式为:R = ρ* L/ S
其中ρ电阻率,L为长度, S为面积。
那么我们需要建立一个类
public class wire()
{
public wire()
{
.....
}
public void setR()
{
R = ρ* L/ S;
}
private double ρ;
private double R;
private L;
}
但是L和S是跟导线的形状有关系的如:导线的外形可能是个圆或长方形,截面也有可能是圆或长方形,
那么是不是要在建立一个形状类,以求该形状的周长和面积???
其中ρ电阻率,L为长度, S为面积。
那么我们需要建立一个类
public class wire()
{
public wire()
{
.....
}
public void setR()
{
R = ρ* L/ S;
}
private double ρ;
private double R;
private L;
}
但是L和S是跟导线的形状有关系的如:导线的外形可能是个圆或长方形,截面也有可能是圆或长方形,
那么是不是要在建立一个形状类,以求该形状的周长和面积???
public double getArea();
}public class Round implements Shape {
private double r;
private final static double pi = 3.14; //其他方法省略....
public double getArea() {return r*r*pi};
}public class Square implements 正方形{
private double l; //其他方法省略....
public double getArea() {return l*l};
}public class wire()
{
private Shape shape = null;
public wire()
{
.....
}
public void setShape(Shape shape) {
this.shape = shape;
}
public void setR()
{
if(shape == null) throw new Exception();
R = ρ* L/ shape.getArea();
}
private double ρ;
private double R;
private L;
}
的确可以。但是请注意面向对象的开闭原则。你这种做法每次多一个不同的形状就要改wire类,我的则不需要只要做一个实现接口的类就可以了