2017-10-08 54 views
-3

這是一個我開始學習的技術,所以我爲任何沉悶的錯誤道歉。我有兩個Java文件消防和SIM卡。我試圖在它們之間交換變量,但是它編譯的卻似乎無法計算,甚至無法交換我希望的值。java文件之間的基本交換變量

火:

import java.util.Scanner; 

public class Fire { 

public static void main(String[] args) { 
    if (args.length != 3) { 
     return; 
    } 
    try { 
     Integer width = Integer.parseInt(args[1]); 
     Integer height = Integer.parseInt(args[2]); 
    } catch (Exception e) { 
     return; 
    } 

    Scanner keyboard = new Scanner (System.in); 

    Integer seed = Integer.parseInt(args[0]); 
    Integer width = Integer.parseInt(args[1]); 
    Integer height = Integer.parseInt(args[2]); 

    Integer addFire = Sim.add; 
    System.out.println("Test below"); 
    System.out.println(addFire); 
    } 
} 

辛:

public class Sim { 

public int width; 
public int height; 
public static int add; 

public Sim(int widthSim, int heightSim) { 
    this.width = widthSim; 
    this.height = heightSim; 
} 

public static void main(String [] agrs) { 
    Integer FirebotWidth = Fire.width; 
    Integer FirebotHeight = Fire.height; 

    Integer add = FirebotWidth + FirebotHeight; 
    } 
} 

的目標是什麼,是取變量的寬度和高度(從ARGS 1和2)給他們的模擬文件,該文件執行計算「Integer add = FirebotWidth + FirebotHeight;」,然後將其結果輸出到Fire控制檯中。但是我只得到0作爲輸出:

輸出:

Test 
0 

所有幫助表示讚賞很大。謝謝。

+1

您可能並不想要兩種主要方法 – Steampunkery

+0

閱讀Java書籍的一個很好的介紹,特別是強調面向對象的概念和Java的介紹,因爲這對您有很大的幫助。 –

回答

0

這裏是低於

Fire.java說明您的修補代碼:

import java.util.Scanner; 

public class Fire { 

public static Integer width; 
public static Integer height; 

public static void main(String[] args) { 
    if (args.length != 3) { 
     return; 
    } 
    try { 
     width = Integer.parseInt(args[1]); 
     height = Integer.parseInt(args[2]); 
     Integer seed = Integer.parseInt(args[0]); 
    } catch (Exception e) { 
     return; 
    } 

    Scanner keyboard = new Scanner (System.in); 

    Integer addFire = Sim.add(); 
    System.out.println("Test below"); 
    System.out.println(addFire); 
    } 
} 

Sim.java:

public class Sim { 

public int width; 
public int height; 

public Sim(int widthSim, int heightSim) { 

    this.width = widthSim; 
    this.height = heightSim; 
} 

public static Integer add() { 
    Integer FirebotWidth = Fire.width; 
    Integer FirebotHeight = Fire.height; 

    return FirebotWidth + FirebotHeight; 
    } 
} 

我從SIM類中刪除的主要方法,因爲你只需要一個入口點。我在您的Sim類中創建了一個名爲add()的方法,該方法返回從Fire添加的變量。你在Fire類中有一個實例變量和一個類變量widthheight,我認爲你只是想讓類變量(如果你想同時擁有這兩個變量,只需添加它)。我將您的種子變量初始化移動到try/catch之內,因爲您要撥打parseInt()。我做了所有這些只是爲了讓它正確運行,但代碼中存在更多的錯誤。我建議你a)在java上學一門課或者b)閱讀本書的全面教程,以便了解基本的Java OOP。