簡體   English   中英

如何在不同的類中調用void方法?

[英]How to call void method in different class?

public class Equation {
    public static void quadEquation(double a, double b, double c) {
        double solution1 = (-b + (Math.pow(b,2)-(4*a*c))/(2 * a));
        double solution2 = (-b - (Math.pow(b,2)-(4*a*c))/(2 * a));    
    }
}

我必須通過調用它們在不同的類(測試人員)上打印solution1soltion2

這是一個void方法調用,因此它不返回任何內容。

在這種情況下,我如何在測試器中調用它們?

家庭作業! 這只是我作業的一部分,所以你們可以免費幫助這個

我解決了! 謝謝你們幫助我:)

這就是您在另一個類中調用static void方法的方式。

== 文件練習/Equation.java ==

package exercise;

public class Equation {
    public static void quadEquation(double a, double b, double c) {
        double solution1 = (-b + (Math.pow(b,2)-(4*a*c))/(2 * a));
        double solution2 = (-b - (Math.pow(b,2)-(4*a*c))/(2 * a));  

        // If you want to print the solutions, add some print 
        // statements here!
    }
}

== 文件 OtherClass.java ==

import exercise.Equation;

public class OtherClass {
    public static void main(String[] args) {
        Equation.quadEquation(1.0, 2.0, 3.0);  // calls the method in Equation
    }
}

您應該能夠從命令行編譯和運行上述內容,如下所示。

$ # change directory to directory containing "OtherClass.java"
$ javac -cp . exercise/Equation.java OtherClass.java 
$ java -cp . OtherClass
 

關鍵是:

  1. 如果要在另一個類中使用Equation ,最好在Java 包中聲明該類。

  2. 然后,你需要importEquation為其他類。 (如果兩個類都在同一個包中,這不是必需的。)

  3. 顯然, void方法不能返回任何內容。 因此,如果您想從quadEquation方法中獲得一些輸出,則該方法需要自行打印它。

請注意,上一點中描述的方法通常是澆築設計選擇。 通常不想像那樣混合代碼的“關注點”。 您通常希望將計算和輸出結果視為單獨的問題。 例如,您可能希望quadEquation方法可用於在其他地方輸出一個或多個解決方案的上下文中……或根本不輸出。

其他事情:

  • 如果這應該找到二次方程的根,那么您沒有正確編碼公式。 那里應該有一個“平方根”; https://en.wikipedia.org/wiki/Quadratic_formula

  • 您還需要考慮解為虛數的情況。 (除非你被告知忽略這一點......)

  • 我看到你評論說另一個班級是司機。 這可能會使上面的示例無效。 您將不得不閱讀驅動程序類的代碼(或類的描述),以了解它將如何調用您的類。 很可能你的老師已經為你解決了調用quadEquation的問題。

暫無
暫無

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

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