我们现在正在学习如何在Java
中使用多个课程,并且有一个项目要求创建一个包含Circle
和radius
的课程diameter
,然后从主类中引用它来找到直径。此代码继续收到错误(在标题中提到)
public class Circle
{
public CircleR(double r)
{
radius = r;
}
public diameter()
{
double d = radius * 2;
return d;
}
}
感谢您的帮助,-AJ
更新1 :
好的,但我不应该将第三行public CircleR(double r)
声明为双,对吧?在我正在学习的书中,这个例子并没有这样做。
public class Circle
{
//This part is called the constructor and lets us specify the radius of a
//particular circle.
public Circle(double r)
{
radius = r;
}
//This is a method. It performs some action (in this case it calculates the
//area of the circle and returns it.
public double area( ) //area method
{
double a = Math.PI * radius * radius;
return a;
}
public double circumference( ) //circumference method
{
double c = 2 * Math.PI * radius;
return c;
}
public double radius; //This is a State Variable…also called Instance
//Field and Data Member. It is available to code
// in ALL the methods in this class.
}
正如您所看到的,代码public Circle(double r)....
与我在public CircleR(double r)
中所做的有何不同?无论出于何种原因,书中的代码都没有给出任何错误,但我的说法中存在错误。
答案 0 :(得分:25)
正如你所看到的,代码公共圆(双r)......怎么样 与我在公共CircleR(双r)中所做的不同?对于 无论如何,书中的代码都没有给出错误 我说那里有一个错误。
定义类的构造函数时,它们应与其类具有相同的名称。 因此以下代码
public class Circle
{
//This part is called the constructor and lets us specify the radius of a
//particular circle.
public Circle(double r)
{
radius = r;
}
....
}
你的代码时是正确的
public class Circle
{
private double radius;
public CircleR(double r)
{
radius = r;
}
public diameter()
{
double d = radius * 2;
return d;
}
}
是错误的,因为您的构造函数与其类具有不同的名称。您可以按照本书中的相同代码从
更改构造函数public CircleR(double r)
到
public Circle(double r)
或(如果你真的想把你的构造函数命名为CircleR)将你的类重命名为CircleR。
所以你的新课应该是
public class CircleR
{
private double radius;
public CircleR(double r)
{
radius = r;
}
public double diameter()
{
double d = radius * 2;
return d;
}
}
我还在你的方法中添加了返回类型double,如Froyo和John B.所指出的那样。
关于构造函数,请参阅此article。
HTH。
答案 1 :(得分:9)
每个方法(构造函数除外)都必须具有返回类型。
public double diameter(){...
答案 2 :(得分:4)
您忘记将double声明为返回类型
public double diameter()
{
double d = radius * 2;
return d;
}
答案 3 :(得分:-1)
在向main方法添加类时,我遇到了类似的问题。事实证明这不是问题,是我不检查我的拼写。所以,作为一个菜鸟,我了解到错误的拼写可以而且会搞砸了。这些帖子帮助我“看到”了我的错误,现在一切都很好。