簡體   English   中英

java在靜態方法和main方法中使用變量聲明和初始化

[英]java working with variable declaration and initialization in static methods and main method

當我運行我的程序時,我得到了這個:

run:
Planetary DataPlanet   Diameter(km)   Mass(kg)   g(m/s^2)
_________________________________________________
Exception in thread "main" java.util.IllegalFormatPrecisionException: 1
Mercury at java.util.Formatter$FormatSpecifier.checkInteger(Formatter.java:2936)
at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2684)
at java.util.Formatter.parse(Formatter.java:2528)
at java.util.Formatter.format(Formatter.java:2469)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at GravityV1.diameterr(GravityV1.java:45)
at GravityV1.main(GravityV1.java:73)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)

我試圖在main方法中顯示由靜態方法生成的信息。 不知何故,當我在main方法中調用它時它沒有顯示它,我也在嘗試計算引力並且它沒有識別我的一些變量,比如引力的通用常數,我使重力靜態方法高於主要方法並在主要計算方法中聲明和初始化萬有引力常數。 任何幫助將不勝感激。 以下是我的代碼:

public class GravityV1 {

// title static method
public static void title(){

    // title
    System.out.printf("%10s", "Planetary Data");

    // heading
    System.out.println("Planet   Diameter(km)   Mass(kg)   g(m/s^2)");

    // create line
    System.out.println("_________________________________________________");
}

// months static method
public static void planetss(){

    // create months array
    String[] planets = {"Mercury", "Venus", "Earth", "Mars", "Jupiter", 
        "Saturn", "Uranus", "Neptune"};

    // display planets
    System.out.printf("%5s", (Object[]) planets);
}

// diameter static method
public static void diameterr(){

    // create array of diameter
    double[] diameter = {4880, 12103.6, 12756, 6794, 142984, 120536, 51118, 
        49532};

    // display diameter
    System.out.printf("%4.1d", diameter);
}

// mass static method
public static void masss(){

    // create array of mass
    double[] mass = {3.30E23, 4.869E24, 5.97E24, 6.4219E23, 1.900E27, 
        5.68E26, 8.683E25, 1.0247E26};

    // display mass
    System.out.printf("%4.1d", mass);
}

// gravity calculation static method
public static double gravity(double g){

    // calculate gravity
    g = (G * mass) / Math.pow(diameter / 2, 2);

    return g;
}

// main method
public static void main(String args[]){

    title();
    planetss();
    diameterr();
    masss();

    double G = 6.67384 * Math.pow(10, -11);
}
}

double類型的格式說明符不是d而是f 您應該將diameterr方法中的printf語句替換為:

System.out.printf("%4.1f", diameter);

暫無
暫無

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

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