Java求解答,一道小题 老是报错

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package yuan;

public class Yuan {
double x;
double y;
double r;

public Yuan(double x, double y,double r)
{
this.x=x;
this.y=y;
this.r=r;

}

public void setPerimeter(double c)
{
c=2*r*r*Math.PI;
}
public double getPerimeter(double c)
{
return c;
}
public void setArea(double s)
{
s=Math.PI*r*r;
}
public double getArea(double s)
{
return s;
}

}
public class Yuanzhu extends yuan
{
protected double h;
protected double a;
protected double b;
double Area,Volume;
public Yuanzhu(double x,double y,double r)
{
super(x,y,r);
}
public void seth(double h)
{
h=h;
}
public double geth(double h)
{
return h;
}
public void setArea(double h,double r)
{
a=4*r*r*Math.PI+h*Math.PI*r*r;
}
public double getArea(double a)
{
return a;
}
public void setVolume(double h,double r)
{
b=h*Math.PI*r*r;
}
public double getVolume(double b)
{
return b;
}
public void print()
{
System.out.println("表面积是"+a);
System.out.println("体积是"+b);
}
public static void main(String args[])
{
Yuanzhu t;
t=new Yuanzhu(3,4,5);
t.print();
}

}

亲发现你几个小问题。

1  public class Yuanzhu extends yuan 这句有两个错误 一个文件只能有一个public 类  Yuanzhu 继承与Yuan 首字母要大写。
2  你调用的  System.out.println("表面积是"+a);
            System.out.println("体积是"+b);  
            输出的是a 和 b的值, 
             protected double a;
             protected double b;
             注定了 返回的是两个0.0
 3 方法不是这么调用的,我知道你想的是调用一个然后系统自己再去调别的 给你算出结果,但是系统不会那么去做的。你只有把计算的方式 定义到这个方法中然后把计算的值返回就行了。
4. 你检查一下你都没给出圆柱的高度,怎么去运算啊
public class Yuan {
 double x;
 double y;
 double r;
 public static void main(String args[]) {
  Yuanzhu t;
  t = new Yuanzhu(3, 4, 5);
  t.h = 10;//这里添加了圆柱的高度
  t.print();
 }
 public Yuan(double x, double y, double r) {
  this.x = x;
  this.y = y;
  this.r = r;
 }
 public void setPerimeter(double c) {
  c = 2 * r * r * Math.PI;
 }
 public double getPerimeter(double c) {
  return c;
 }
 public void setArea(double s) {
  s = Math.PI * r * r;
 }
 public double getArea(double s) {
  return s;
 }
}
 class Yuanzhu extends Yuan {
 protected double h;
 protected double a;
 protected double b;
 double Area, Volume;
 public Yuanzhu(double x, double y, double r) {
  super(x, y, r);
 }
 public void seth(double h) {
  h = h;
 }
 public double geth(double h) {
  return h;
 }
 public void setArea(double h, double r) {
  a = 4 * r * r * Math.PI + h * Math.PI * r * r;
 }
 public double getArea(double a) {
  return a;
 }
 public void setVolume(double h, double r) {
  b = h * Math.PI * r * r;
 }
 public double getVolume(double b) {
  return b;
 }
 public void print() {
  a = 4 * r * r * Math.PI + h * Math.PI * r * r;//把计算方法添加到这
  b = h * Math.PI * r * r;
  System.out.println("表面积是" + a);
  System.out.println("体积是" + b);
 }
 
}
这样就ok了
希望能帮到你,望采纳,谢谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-27
 public void print()
    {
        System.out.println("表面积是"+this.getArea());
        System.out.println("体积是"+this.getVolume);
    }

追问

追答

哪有this.getArea1()啊,是this.getArea();

追问

改完了 , 还是雷同性的错误。。。 麻烦了

追答

this.getVolume();然后运行试试。如果不行,错误提示给我发一下。

追问

追答

我要运行时候的错误提示。。。。

第2个回答  2013-06-27
报什么错啊 同一个java'文件里 只能有一个public类 而且这儿public类的名字要和文件名相同追问

哦,那是不是把子类前面的public 去掉就好了呢?我去试试

追答

en 不知道 我没试 你自己试试 有问题我再给你解决

追问

呃,再麻烦下,我现在解决了报错问题,并且把main函数放到了 public 括号里了 ,能运行,但是结果都显示为0.0 这是怎么回事呢?

追答

问题解决了吗 没解决的话 我就看看 要是解决了 我也省事了