簡體   English   中英

使用 inheritance 和 NetBeans 運行程序,因為 NetBeans output 不應該“工作”

[英]Run a program using inheritance with NetBeans because NetBeans output doesn't “work” as it should

是的,標題不是很有描述性,但那是因為我不知道如何稱呼這個問題。

問題是下一個:我使用 inheritance 和一個步驟列表,例如總和:

  1. “給我第一個號碼”的消息
  2. “插入第一個數字”
  3. “給我第二個號碼”的消息
  4. “插入第二個數字”
  5. 顯示結果

但是 output 做到了:

  1. "插入第一個數字" 2 "插入第二個數字"
  2. “給我第一個號碼”的消息
  3. “給我第二個號碼”的消息
  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 的代碼(這是運行所有的 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();
    }
}

這是所有運行的副本。 這里的問題是顯示/運行順序的問題(因此不存在錯誤消息[是的,我非常多余])

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 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" 運行 NetBeans保存執行時編譯。 跳過階段執行,將使用依賴項目的 output 目錄(打開保存時編譯)而不是它們的 jar 工件。

正在掃描項目...

------------< DOS:JavaClassPrueba2 >--------- ---

構建 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 分鍾完成時間:2021-01-20T16:00:24-03:00

這是運行相同消息的屏幕截圖

這是 NetBeans 上的 maven 的錯誤。 嘗試改變

    System.out.print()

    System.out.println() 

在方法RequestData()

It looks to me as if NetBeans is buffering the output, and may be waiting for an end-of-line character before it writes the output it has collected so far to the Output window. 您正在使用System.out.print ,這不會在寫入文本后寫出行尾字符。

嘗試添加行

System.out.flush();

JavaClass1A.RequestData()中兩次調用System.out.print()之后。 By calling flush() , this might force the NetBeans Output window to display the output it has received so far without waiting for an end-of-line character.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM