已知导线的电阻公式为: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是跟导线的形状有关系的如:导线的外形可能是个圆或长方形,截面也有可能是圆或长方形,
那么是不是要在建立一个形状类,以求该形状的周长和面积???

解决方案 »

  1.   

    做一个形状类的接口,声明计算面积的方法,不同的形状都实现这个接口public interface Shape {
        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; 
      

  2.   


    的确可以。但是请注意面向对象的开闭原则。你这种做法每次多一个不同的形状就要改wire类,我的则不需要只要做一个实现接口的类就可以了