使用 NetBeans 的继承运行程序,因为 NetBeans 输出不会按预期"work"



是的,标题不是很有描述性,但那是因为我不知道如何称呼这个问题。

接下来的问题是:我对一个步骤列表使用继承,例如sum:

  1. 留言"give me the first number">
  2. 插入第一个数字
  3. 留言"give me the second number">
  4. 插入第二个数字
  5. 显示结果

但是输出是这样的:

  1. 插入第一个数字2插入第二个数字
  2. 短信"give me the first number">
  3. 留言"give me the second number">
  4. 显示结果(但忽略第一个数字的存在)

现在是代码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的代码(这是运行所有的类):

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

这是所有运行的副本。这里的问题是显示/运行顺序的问题(因此不存在错误信息[yes i am very冗余])

cd C:UsersUsuarioDocuments NetBeansProjects JavaClassPrueba2;"JAVA_HOME = C: Program Files Java jdk1.8.0_151"cmd/c " c:Program Files netbeans -12.1netbeansjavamavenbinmvn.cmd"-Dexec.args="-classpath %classpath MetodoMain.MainClass1A"-Dexec.executable ="C: Program Files Java jdk1.8.0_151 bin java.exe"-Dexec。class.path= C:Program Files netbeans- 12.1netbeansjavamaven-nblibnetbeans-eventspy.jar"-Dfile。utf - 8编码= org.codehaus.mojo: exec-maven-plugin: 1.5.0: exec"运行NetBeans编译保存执行。阶段执行被跳过,依赖项目的输出目录(打开Compile on Save)将被使用,而不是它们的jar构件。

扫描项目…

------------------------& lt;DOS: JavaClassPrueba2祝辞 ;------------------------

build JavaClassPrueba2 1.0.0-SNAPSHOT

--------------------------------[ jar ]---------------------------------

——exec-maven-plugin:1.5.0:exec (default-cli) @ JavaClassPrueba2——

5这是我输入的数字,就像其他3

10

给我第一个值:给我第二个值:和的结果是:15

90年

100年

给我第一个值:给我第二个值:减法的结果是:-10


构建成功

总用时:01:05 min完成时间:2010-01-20 16:00:24-03:00

这是运行

时相同信息的截图

这是NetBeans上maven的一个错误。尝试更改

System.out.print()

System.out.println() 

方法RequestData()

在我看来,好像NetBeans正在缓冲输出,并且可能在将迄今为止收集的输出写入output窗口之前等待行结束字符。您使用的是System.out.print,它不会在写入文本后写出行结束符。

尝试添加

一行
System.out.flush();
JavaClass1A.RequestData()中两次呼叫System.out.print()

后均。通过调用flush(),这可能会强制NetBeans Output窗口显示它迄今为止收到的输出,而无需等待行结束字符。

最新更新