当前位置: 代码迷 >> Java相关 >> HELP!JAVA题。(菜鸟级)问题见代码!
  详细解决方案

HELP!JAVA题。(菜鸟级)问题见代码!

热度:116   发布时间:2005-08-17 11:38:00.0
请问问什么要这样做?
这里有一段代码: class Test extends A
{
public static void main(String args[])
     {
   Test t=new Test();
      t.print();
     }
}
class A
{String s;
A(String s)
{ this.s=s;
}
public void print()
{System.out.println(s);
}
}
但是对于这段代码要把构造方法删除才可以运行~~~请问各位大哥这是什么原因?
谢谢`~~~~~
----------------解决方案--------------------------------------------------------
非常感谢,两位版主!
switch(cFuhao)
这步的C是把Fuhao强制转换成字符型了吗?
----------------解决方案--------------------------------------------------------
小弟有问题请大哥帮忙
下面是我刚写的程序请问错误是是: abstract class GeometricObject
{   protected String color;
    protected double weight;
    protected GeometricObject()
    { color ="white";
      weight=1.0;
    }
    protected GeometricObject(String color,double weight)
    {this.color=color;
     this.weight=weight;
    }
    public String getColor()
    {return color;
    }
    public void setColor(String color)
    {this.color=color;
    }
    public double getWeight()
    {return weight;
    }
    public void setWeight(double weight)
    {this.weight=weight;
    }
    public abstract double findArea();
    public abstract double findPerimeter();
}
class Triangle extends GemometricObject
{  private  double side1,side2,side3;
   Triangle(double side1,double side2,double side3)
    {side1=3.0;
     side2=4.0;
     side3=5.0;
    }
    public double findArea()
    {double s=(side1+side2+side3)/2;
     double area=Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
     return area;
    }
    public double findPerimeter()
    {double s=(side1+side2+side3)/2;
      return s;
    }
}
public class Example
{public static void main(String[] args)
   {Triangle t=new Triangle();
    double b=t.findArea();
    System.out.println("the triangle's s is:"+t.findPerimeter()+"now the triangle's area is:"+t.findArea());
   }
}
请各位大哥帮帮忙哈
----------------解决方案--------------------------------------------------------
还有好象是不能构建一个类的实列,请问这是什么原因?
----------------解决方案--------------------------------------------------------
本人希望各位大哥帮帮忙哈
----------------解决方案--------------------------------------------------------
你编译后报什么错误啊?
----------------解决方案--------------------------------------------------------
363057223, 回答你11楼的问题,错误的原因如下: 首先, main 方法属于子类中的一个方法, 第二,你在子类中并没有定义 default constructor 而你在 main 方法中通过 default constructor 来建立 t 这个 Object , 此时,系统将自动为你建立一个 default constructor, 这个系统自动生成的default construtor 只是为 t 这个Object 开辟空间而已, 但是 由于子类继承了父类, 在建立 t 这个 Object 时, 必然要调用父类的 constructor, 此时发现类型不符, 所以就报错了. 现将你的代码更改如下: class A { String s; A(String s) { this.s=s; } public void print() { System.out.println(s); } } class Test extends A { Test(String s) { super(s); } public static void main(String args[]) { Test t=new Test("Hello World"); t.print(); } }
----------------解决方案--------------------------------------------------------
qiuligao, 回答你12 楼的问题, char cFuhao =fuhao.charAt(0); // cFuhao 被定义为 字符型 switch 语句中只允许整数型, 所以String 类型是不行的, 但是 char 却是可以的, 因为 char可以被当作整数类型运用, 只是数据范围小一些罢了.
----------------解决方案--------------------------------------------------------
363057223, 你的那个问题在你另外的那个帖子中予以了回复
----------------解决方案--------------------------------------------------------
好了,知道啦,我已经记下来了。多谢了!
----------------解决方案--------------------------------------------------------
  相关解决方案