Java初学者,遇到编译问题:需要<标示符>,求解决。

代码:
public class AreaVolume {
public static void main (String args []) {
Shapes shape1 = new Shapes (1, 2);
Shapes shape2 = new Shapes (1);
Shapes shape3 = new Shapes (1, 2, 3);
}
}
class Shapes {
double length, width, height, radius;
public Shapes (double length, width) {
System.out.println ("您定义的形状是矩形,其面积为:" + area (length, width) + "。");
}
public Shapes (double radius) {
System.out.println ("您定义的形状是球体,其体积为:" + volume (radius) + "。");
}
public Shapes (double length, width, height) {
System.out.println ("您定义的形状是立方体,其体积为:" + volume (length, width, height) + "。");
}
public static double area (double length, width) {
double area = length * width;
return area;
}
public static double volume (double radius) {
double volume1 = 4/3 * 3.14 * radius*radius*radius;
return volume1;
}
public static double volume (double length, width, height) {
double volume2 = length * width * height;
return volume2;
}
}
编译错误:

AreaVolume.java:11: 需要 <标识符>
public Shapes (double length, width) {
^
AreaVolume.java:17: 需要 <标识符>
public Shapes (double length, width, height) {
^
AreaVolume.java:17: 需要 <标识符>
public Shapes (double length, width, height) {
^
AreaVolume.java:20: 需要 <标识符>
public static double area (double length, width) {
^
AreaVolume.java:28: 需要 <标识符>
public static double volume (double length, width, height) {
^
AreaVolume.java:28: 需要 <标识符>
public static double volume (double length, width, height) {
^
6 错误

错误的原因是方法里面的形参列表中缺省形参类型。比如
AreaVolume.java:28: 需要 <标识符>
public static double volume (double length, width, height) 中width, height并没有定义。
在java里面是严格要求(形参类型,形参)的格式的。不可以省略的,用(形参类型 形参1,形参2,形参3.....)的方法简写。因此你在所有方法都应该改为:

AreaVolume.java:11: 需要 <标识符>
public Shapes (double length, double width)

AreaVolume.java:17: 需要 <标识符>
public Shapes (double length, double width,double height)

AreaVolume.java:17: 需要 <标识符>
public Shapes (double length, double width, double height)

AreaVolume.java:20: 需要 <标识符>
public static double area (double length, double width)

AreaVolume.java:28: 需要 <标识符>
public static double volume (double length, double width,double height
AreaVolume.java:28: 需要 <标识符>
public static double volume (double length, double width, double height)

最后不得不说,class Shapes 中

double length, width, height, radius;此处可以删去,这里是定义类成员变量;我不知道你是不是和形参的定义混了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-12
不会写函数? public Shapes (double length, width){ } 这是你的....改成这样public Shapes (double length, double width) { }本回答被提问者采纳
第2个回答  2012-08-12
每个函数的参数都要加上类型的追问

加什么类型啊?求写一行代码

追答

public Shapes (double length, double width) {

相似回答