gpt4 book ai didi

JAVA构造函数(我快要用棒球棒砸烂我的电脑了)

转载 作者:行者123 更新时间:2023-12-03 18:07:45 26 4
gpt4 key购买 nike

好吧,我真的很沮丧。本学期我将参加编程入门类(class)的第二部分。我们上学期学的是C++,现在学的是JAVA。在我看来,我们很快就进入了所有领域。我相信这是因为我们希望将我们的 C++ 知识应用到 JAVA 中,因为它们有些相似。我想这是有道理的。我现在很生气,因为我一直在搜索谷歌等以试图理解。

有两个文件/类 - RectangleDemo 和 Rectangle。 RectangleDemo 是主要的。我们被要求编写可以计算面积和周长的代码。我的问题是这样的。当我添加一个新的构造函数时,我原来的类及其在“RectangleDemo”中的对象现在不起作用。此外,我的编译器找不到新构造函数的符号。

这是代码...

public class RectangleDemo {
public static void main(String[] args) {
Rectangle myRect = new Rectangle();

double theArea;
double thePerimeter;

myRect.setLength(25);
myRect.setWidth(5);

theArea = myRect.area();

thePerimeter = myRect.perim();

System.out.println("My rectangle has area " + theArea);
System.out.println("Rectangle Perimiter " + thePerimeter);

Rectangle newRect = new Rectangle(10, 20);

}
}

public class Rectangle {

private double width, length;
private double len, wid;

public void setWidth(double w) {
width = w;
}

public void setLength(double ln) {
length = ln;
}

public double getWidth() {
return width;
}

public double getLength() {
return length;
}

public double area() {
double a;
a = length * width;
return a;
}

public double perim() {
double pr;
pr = (length * 2) + (width * 2);
return pr;
}

public Rectangle(double len, double wid) {
}
}

抱歉代码块,缩进对我来说在 Safari 中有点奇怪。

'Rectangle' 类编译没有错误。

但 'RectangleDemo' 类编译器错误是这样的。

 ----jGRASP exec: javac -g RectangleDemo.java
RectangleDemo.java:5: cannot find symbol
symbol : constructor Rectangle()
location: class Rectangle
Rectangle myRect = new Rectangle ();

我在运行 OSX 10.7.5 的 07 Macbook 上编译

我还没有向构造函数的代码中添加任何内容,因为我什至无法让程序正确无误地找到它。

我一直在做的所有阅读对我了解更多关于 JAVA 的知识很有帮助,但我对这个程序束手无策。更糟糕的是,我敢打赌这只是我的一个愚蠢的小错字。

最佳答案

我认为您缺少的拼图就是这个小 java gem :

  • 当您没有定义任何构造函数时,有一个隐式的无参数构造函数。
  • 当您定义带参数的构造函数时,隐式无参数构造函数消失。

这吸引了许多 Java 新手(我承认,它吸引了我)。


特别出乎意料的是,您可以让客户使用一个类(没有构造函数),然后添加一个 args 构造函数,然后您认为“我正在添加代码,所以这个可以” t 导致任何问题”,然后他们的代码突然中断。那是因为您也在默默地删除代码。

要记住的一个好规则是:如果您有一个无构造函数的类正在被其他人使用,并且您定义了一个带参数的构造函数,请始终添加一个无参数的构造函数。

关于JAVA构造函数(我快要用棒球棒砸烂我的电脑了),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14668525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com