运行 一个使用 NetBeans 继承的程序,因为 NetBeans 输出没有 "work" 它应该的
Run a program using inheritance with NetBeans because NetBeans output doesn't "work" as it should
是的,标题不是很详细,但那是因为我不知道如何称呼这个问题。
下一个问题是:我使用带有步骤列表的继承,
例如总和:
- 留言“给我第一个号码”
- "插入第一个数字"
- “给我第二个号码”的留言
- "插入第二个数字"
- 显示结果
但是输出是这样的:
- “插入第一个数字”
2 "插入第二个数字"
- 留言“给我第一个号码”
- “给我第二个号码”的留言
- 显示结果(但忽略第一个数字的存在)
现在是代码
JavaClassPrueba1A代码:
package package1;
import java.util.Scanner;
public class JavaClass1A {
protected int value1, value2, result;
Scanner dataEntry = new Scanner(System.in);
//Este método pide los valores al usuario
public void RequestData(){
System.out.print("Give me the first value: ");
value1 = dataEntry.nextInt();
System.out.print("Give me the second value: ");
value2 = dataEntry.nextInt();
}
//Este método muestra el resultado
public void ShowResult(){
System.out.println(result);
}
}
JavaClassPrueba2A代码:
package package1;
public class JavaClass2A extends JavaClass1A{
public void Sum(){
result = value1 + value2;
}
}
JavaClassPrueba3A代码:
package package1;
public class JavaClass3A extends JavaClass1A{
public void Subtraction(){
result = value1 - value2;
}
}
MainClass1A的代码(这是class那运行全部):
package MetodoMain;
import package1.JavaClass2A;
import package1.JavaClass3A;
public class MainClass1A {
public static void main(String[] args){
JavaClass2A messageSum = new JavaClass2A();
messageSum.RequestData();
messageSum.Sum();
System.out.print("The resultado of the sum is: ");
messageSum.ShowResult();
JavaClass3A messageSubtraction = new JavaClass3A();
messageSubtraction.RequestData();
messageSubtraction.Subtraction();
System.out.print("The resultado of the Subtraction is: ");
messageSubtraction.ShowResult();
}
}
这是所有 运行 的副本。这里的问题是事物排列顺序的问题displayed/run(因此不存在错误消息[是的,我非常多余])
cd C:\Users\Usuario\Documents\NetBeansProjects\JavaClassPrueba2; "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_151" cmd /c ""C:\Program Files\NetBeans-12.1\netbeans\java\maven\bin\mvn.cmd" -Dexec.args="-classpath %classpath MetodoMain.MainClass1A" -Dexec.executable="C:\Program Files\Java\jdk1.8.0_151\bin\java.exe" -Dexec.classpathScope=runtime -Dmaven.ext.class.path="C:\Program Files\NetBeans-12.1\netbeans\java\maven-nblib\netbeans-eventspy.jar" -Dfile.encoding=UTF-8 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec"
Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts.
Scanning for projects...
------------------------< DOS:JavaClassPrueba2 >------------------------
Building JavaClassPrueba2 1.0.0-SNAPSHOT
--------------------------------[ jar ]---------------------------------
--- exec-maven-plugin:1.5.0:exec (default-cli) @ JavaClassPrueba2 ---
5 this is a number that I inputed like the other 3
10
Give me the first value: Give me the second value: The resultado of the sum is: 15
90
100
Give me the first value: Give me the second value: The resultado of the Subtraction is: -10
BUILD SUCCESS
Total time: 01:05 min
Finished at: 2021-01-20T16:00:24-03:00
And this is a screenshot of the same message of the run
在我看来,NetBeans 似乎正在缓冲输出,并且可能在将到目前为止收集的输出写入输出 window 之前等待行尾字符。您正在使用 System.out.print
,并且在写入文本后不会写出行尾字符。
尝试添加行
System.out.flush();
在 JavaClass1A.RequestData()
中两次调用 System.out.print()
之后。通过调用 flush()
,这可能会强制 NetBeans 输出 window 显示它目前收到的输出,而无需等待行尾字符。
这是NetBeans 上maven 的一个bug。
尝试改变
System.out.print()
至
System.out.println()
在方法中 RequestData()
是的,标题不是很详细,但那是因为我不知道如何称呼这个问题。
下一个问题是:我使用带有步骤列表的继承, 例如总和:
- 留言“给我第一个号码”
- "插入第一个数字"
- “给我第二个号码”的留言
- "插入第二个数字"
- 显示结果
但是输出是这样的:
- “插入第一个数字” 2 "插入第二个数字"
- 留言“给我第一个号码”
- “给我第二个号码”的留言
- 显示结果(但忽略第一个数字的存在)
现在是代码 JavaClassPrueba1A代码:
package package1;
import java.util.Scanner;
public class JavaClass1A {
protected int value1, value2, result;
Scanner dataEntry = new Scanner(System.in);
//Este método pide los valores al usuario
public void RequestData(){
System.out.print("Give me the first value: ");
value1 = dataEntry.nextInt();
System.out.print("Give me the second value: ");
value2 = dataEntry.nextInt();
}
//Este método muestra el resultado
public void ShowResult(){
System.out.println(result);
}
}
JavaClassPrueba2A代码:
package package1;
public class JavaClass2A extends JavaClass1A{
public void Sum(){
result = value1 + value2;
}
}
JavaClassPrueba3A代码:
package package1;
public class JavaClass3A extends JavaClass1A{
public void Subtraction(){
result = value1 - value2;
}
}
MainClass1A的代码(这是class那运行全部):
package MetodoMain;
import package1.JavaClass2A;
import package1.JavaClass3A;
public class MainClass1A {
public static void main(String[] args){
JavaClass2A messageSum = new JavaClass2A();
messageSum.RequestData();
messageSum.Sum();
System.out.print("The resultado of the sum is: ");
messageSum.ShowResult();
JavaClass3A messageSubtraction = new JavaClass3A();
messageSubtraction.RequestData();
messageSubtraction.Subtraction();
System.out.print("The resultado of the Subtraction is: ");
messageSubtraction.ShowResult();
}
}
这是所有 运行 的副本。这里的问题是事物排列顺序的问题displayed/run(因此不存在错误消息[是的,我非常多余])
cd C:\Users\Usuario\Documents\NetBeansProjects\JavaClassPrueba2; "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_151" cmd /c ""C:\Program Files\NetBeans-12.1\netbeans\java\maven\bin\mvn.cmd" -Dexec.args="-classpath %classpath MetodoMain.MainClass1A" -Dexec.executable="C:\Program Files\Java\jdk1.8.0_151\bin\java.exe" -Dexec.classpathScope=runtime -Dmaven.ext.class.path="C:\Program Files\NetBeans-12.1\netbeans\java\maven-nblib\netbeans-eventspy.jar" -Dfile.encoding=UTF-8 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec" Running NetBeans Compile On Save execution. Phase execution is skipped and output directories of dependency projects (with Compile on Save turned on) will be used instead of their jar artifacts.
Scanning for projects...
------------------------< DOS:JavaClassPrueba2 >------------------------
Building JavaClassPrueba2 1.0.0-SNAPSHOT
--------------------------------[ jar ]---------------------------------
--- exec-maven-plugin:1.5.0:exec (default-cli) @ JavaClassPrueba2 ---
5 this is a number that I inputed like the other 3
10
Give me the first value: Give me the second value: The resultado of the sum is: 15
90
100
Give me the first value: Give me the second value: The resultado of the Subtraction is: -10
BUILD SUCCESS
Total time: 01:05 min Finished at: 2021-01-20T16:00:24-03:00
And this is a screenshot of the same message of the run
在我看来,NetBeans 似乎正在缓冲输出,并且可能在将到目前为止收集的输出写入输出 window 之前等待行尾字符。您正在使用 System.out.print
,并且在写入文本后不会写出行尾字符。
尝试添加行
System.out.flush();
在 JavaClass1A.RequestData()
中两次调用 System.out.print()
之后。通过调用 flush()
,这可能会强制 NetBeans 输出 window 显示它目前收到的输出,而无需等待行尾字符。
这是NetBeans 上maven 的一个bug。 尝试改变
System.out.print()
至
System.out.println()
在方法中 RequestData()