我正在尝试创建一个代码,以便最终能够根据用户输入计算矩形的面积和周长。截至目前,当我尝试调用我的矩形类来创建一个新矩形时,编译器说矩形构造函数是未定义的。
import java.util.Scanner;
public class rectangles {
public class rectangle {
public rectangle() {}
public int length;
public int width;
public rectangle(int len, int wid) {
length = len;
width = wid;
}
}
public void runner() {
Scanner scanner = new Scanner(System.in);
String input1 = scanner.nextLine();
String input2 = scanner.nextLine();
rectangle first = new rectangle(input1, input2); //Error here
System.out.println(first);
scanner.close();
}
public static void main(String[] args) {}
}
错误是“构造函数rectangles.rectangle(java.lang.String,java.lang.String)未定义”
答案 0 :(得分:0)
制作rectangle
类private
,每个public
类通常需要在自己的可编辑文件中。
您定义的构造函数也需int
,但您传递String
考虑使用Integer.parse (input1);
答案 1 :(得分:0)
错误就像编译器所说的那样 - 你已经声明了一个带有两个int
参数的构造函数,但尝试使用两个rectangle
来创建一个String
。这些类型是不兼容的。您应该使用扫描程序阅读int
或使用Integer
类中的一种实用程序方法将String
转换为int
或Integer
。您还应该了解编码标准,例如大写的类名。
答案 2 :(得分:0)
首先,您应该使用正确的Java约定。这意味着类型名称为PascalCase
,变量/方法名称为camelCase
。
您已经为rectangle
创建了一个构造函数,它需要两个int
,但是您传递了两个String
。 Scanner
类有一种方便的方法可以从输入中获取int
:Scanner#nextInt
。
您应该重构代码,以便input1
和input2
为int
类型:
Scanner scanner = new Scanner(System.in);
int input1 = scanner.nextInt();
int input2 = scanner.nextInt();
rectangle first = new rectangle(input1, input2);