试图创建一个测试类,但我似乎无法将两者连接起来。有什么想法吗?我一直在犯错误
错误:在类矩形中找不到Main方法,请将Main方法定义为:public static void Main(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用
import java.util.Scanner;
class Rectangle {
private double length;
private double width;
//constructors
//set width and length to one as defaults
public void Rectangle() {
length = 1;
width = 1;
}
public void Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
//Set for length and width
public void setLength(double length) {
if(length > 0.0 || length < 20.0) {
this.length = length;
}else{
throw new IllegalArgumentException("Please choose between 0.0 and 20.0");
}
}
public void setWidth(double width){
if(width > 0.0 || width < 20.0) {
this.width = width;
}else{
throw new IllegalArgumentException("Please choose between 0.0 and 20.0");
}
}
//Get for length and width
public double getLength(){
return length;
}
public double getWidth(){
return width;
}
//Methods to calculate
public double getPerimeter() {
return (length * 2) + (width * 2);
}
public double getArea() {
return length * width;
}
public void showRec() {
System.out.println("Length: " + getLength() + "\nWidth: " + getWidth() + "\nArea: " + getArea() + "\nPerimeter: " + getPerimeter());
}
}
class TestRectangle{
public static void main(String[] args) {
System.out.println("Skylar Jackson - Assignment 7\n");
Scanner input = new Scanner(System.in);
double length;
double width;
System.out.print("1. Set Length\n2. Set Width\n3. Exit\nChoice: ");
int number = input.nextInt();
try {
Rectangle rec = new Rectangle();
switch(number) {
case 1:
System.out.println("Length:");
input.nextDouble();
rec.setLength(length);
break;
case 2:
System.out.println("Width:");
input.nextDouble();
rec.setWidth(width);
break;
case 3:
System.exit(0);
break;
default:
System.out.println("Unknown Option");
break;
}
rec.showRec();
}catch(IllegalArgumentException e) {
System.out.println("The Length or Width needs to be between 0.0 and 20.0");
}
}//end main
} //end test
您的Rectgle类中没有main方法。请仔细检查您没有错误地调用它。
我自己也是初学者,但是我发现了你的程序的一些问题。
我假设您创建了两个名为Rectangle的独立文件。java和TestRectangle。Java语言如果没有,请先这样做。
分别编译它们,您会遇到以下3个错误:
错误:在类矩形中找不到Main方法,请将Main方法定义为:public static void Main(String[]args)或JavaFX应用程序类必须扩展JavaFX。应用应用
TestRectangle.java:20:错误:变量长度可能没有被初始化rec.set长度(长度);
测试ectangle.java:25:错误:变量宽度可能没有初始化rec.set宽度(宽度);
如您所见,您还没有初始化局部变量“长度”、“宽度”。您还将这两个未初始化的变量传递给方法:您的另一个类-R的setLlong(双精度)和setWidth(双精度)ectangle.java
我认为您的意思是接受用户的某些“长度”和“宽度”作为输入。
如果在TestRectangle类的开关情况下执行此操作:
switch(number) {
case 1:
System.out.println("Length:");
**length=input.nextDouble();**
rec.setLength(length);
break;
case 2:
System.out.println("Width:");
**width=input.nextDouble();**
rec.setWidth(width);
break;
您的程序将运行,但程序中存在逻辑错误。让我们看看TestRectangle类是如何运行的:
代码执行1:
Skylar Jackson-作业7
选项:2
宽度:
89.4
长度:0.0
宽度:89.4
面积:0.0
周长:178.8
代码执行2:
Skylar Jackson-作业7
选择: 1
长度:
24.95
长度:24.95
宽度:0.0
面积:0.0
周长: 49.9
您可以看到,由于您的开关大小写逻辑,您的代码可以只接受长度或宽度。
此外,当您接受输入时,您的程序无法捕获“您的长度和宽度应在0.0和20.0之间”的异常(正如您从上面看到的,我接受的长度和宽度远远高于20.0)。
提示:使用单个case同时接受两个输入。类似这样:
switch(number) {
case 1:
System.out.println("Length:");
length=input.nextDouble();
rec.setLength(length);
System.out.println("Width:");
width=input.nextDouble();
rec.setWidth(width);
break;
case 2:
System.exit(0);
break;
default:
System.out.println("Unknown Option");
break;
}
如果这样做,代码将如下运行:-
代码执行3:
Skylar Jackson-作业7
选择: 1
长度:
23.5
宽度:
35.6
长度:23.5
宽度: 35.6
面积: 836.6
周长:118.2
但我仍然可以轻松地输入超过20.0的长度和宽度值,而您的程序无法检测到这一点。所以您需要使用do-while循环。使用该选项将允许继续要求用户输入,直到和除非用户在给定的(0-20)范围内输入
switch(number) {
case 1:
do {
System.out.println(" Enter Length value (0-20):");
length=input.nextDouble();
System.out.println("Enter Width value (0-20):");
width=input.nextDouble();
} while ((length > 20.0 && width > 20.0) || (length < 0.0 && width <0.0));
rec.setLength(length);
rec.setWidth(width);
break;
case 2:
System.exit(0);
break;
default:
System.out.println("Unknown Option");
break;
}
现在,如果超出范围(0-20),程序将继续请求输入。请再次运行:
代码执行4:
Skylar Jackson-作业7
选择: 1
输入长度值(0-20):
-96
输入宽度值(0-20):
-24
输入长度值(0-20):
85个
输入宽度值(0-20):
31个
输入长度值(0-20):
12个
输入宽度值(0-20):
7.
长度:12.0
宽度:7.0
面积:84.0
周长:38.0
现在,您的程序正在提供所需的输出
由于我不知道你的作业到底需要什么,所以我无法给出合适的解决方案。到目前为止,我已经暴露了你编程逻辑中的一些缺陷,并给了你一些如何修复代码的提示。祝你的作业一切顺利。
我使用以下命令为调试生成启用了proguard: 当我这样做时,我遇到的问题是gradle构建也希望在proGuard dDebugTest任务期间推进测试。我似乎无法修改以访问此特定任务。有没有一种方法可以预先调试apk,而不是测试apk?
我在测试一个android项目时遇到了麻烦。 我有一个没有源的调试apk。“开始activity”类是 我把它安装在 然后使用以下build.gradle和androidmanifest.xml创建一个新项目 null null 但当我运行测试时,它报告找不到“com.restfriedchicken.android.mainActivity”: 看来仪器没有成功?
我是PHPUnit和单元测试的新手,所以我通过作曲家安装了PHPUnit和phar,一切都很好,直到我尝试开始我的简单测试。我使用PhpStorm,我可以看到所有的类都是自动加载的,但是当我试图开始我的测试时,我得到了一个错误: 我不明白他为什么要在高于PHPUnit的文件夹中查找它? 我试图在composer中配置自动加载部分。json和检查phpunit中的设置。xml,但什么都不起作用。 加
有什么想法吗?(角2)
当我通过命令提示符从本地设置运行构建时,我给出命令“mvn eviware:maven-soapui-plugin:test”,它执行位于/src/test/SoapUI文件夹中的SoapUI TestSuite。关于詹金斯..我不知道詹金斯必须在哪里输入这个命令才能执行它。
我是刚到爪哇的。我正在做我的学校项目,我遇到了这个问题与错误消息。 下面是我的测试代码: 这是我的IntList.java