当前位置: 首页 > 面试题库 >

Java错误-“无效的方法声明;需要返回类型”

刘弘新
2023-03-14
问题内容

我们现在正在学习如何使用多个类Java,并且有一个项目要求创建一个Circle包含a
radius和a的类diameter,然后从主类中引用它以找到直径。此代码继续收到错误(标题中提到)

public class Circle
{
    public CircleR(double r)
    {
        radius = r;
    }
    public diameter()
    {
        double d = radius * 2;
        return d;
    }
}

感谢您的帮助,-AJ

更新1 :好的,但是我不必将第三行声明public CircleR(double r)为double,对吗?在我正在学习的书中,该示例没有做到这一点。

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)?无论出于什么原因,本书的代码中都没有错误,但是我的说法是那里有错误。


问题答案:

如您所见,代码public Circle(double r)....与我在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; 
  }
 ....
}

你的代码是正确的

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;
    }
}

正如Froyo和John B所指出的,我还在您的方法中添加了返回类型double。

请参阅有关构造函数的本文。

HTH。



 类似资料:
  • 我刚开始学Java。下面是我尝试在Intellij上运行的代码。我没想到下面的代码在执行时会有问题,因为我复制和粘贴的代码100%相似。从学习材料中可以看出,它应该工作得很顺利。我想知道这里出了什么问题?谢谢,我希望有人能向我澄清。

  • 公共GUI错误该怎么办?它给了我无效的方法声明返回类型,这是我第一次使用GUI

  • 问题内容: 我正在尝试实现UITableViewDataSource的必需方法,但出现一个奇怪的错误: “无效的’tableview(_:cellForRowAtIndexPath :)重新声明’” 但是我不确定是什么问题。这是相关的两行代码,即类的声明和符合协议/超类的代码: 以及触发错误的函数声明: 问题答案: 您在课堂上有两次此功能。搜索它并删除其中之一。

  • 在执行基本方法重载程序时,我始终收到以下错误: sh-4.3 $ javac HelloWorld . Java < br > HelloWorld . Java:10:错误:方法show()已在类hello world中定义< br > static void show()< br > hello world . Java:25:错误:方法show(int,int)已在类hello world中

  • 问题内容: 我正在在线关注CS106A的讲座。我正在阅读第12讲中的代码,但这给了我Eclipse错误。 这是我的代码。似乎错误是由于我的方法中的单词void 。我尝试删除main方法,但是没有它,Java当然无法运行。 我是一名新手,没有人解释这东西的真正含义,但有人告诉我,请不要理会它并使用它。如果有人也可以向我解释,我将不胜感激。 这个错误也出现在“ toLower”方法上。不知道这意味着什

  • 问题内容: 有谁知道会导致这个问题的原因吗? PHP致命错误:无法重新声明类 问题答案: 这意味着您已经创建了一个类。 例如: 第二个Foo会抛出错误。