2017-10-08 1 views
-3

Dies ist eine Technik, die ich zu lernen beginnen, also entschuldige ich mich für alle dummen Fehler. Ich habe zwei Java-Dateien Feuer und Sim. Ich versuche, Variablen zwischen ihnen auszutauschen, es kompiliert, aber es scheint nicht zu berechnen oder sogar die Werte auszutauschen, die ich wünsche.Basic Austausch von Variablen zwischen Java-Dateien

Fire:

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

Sim:

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

Was das Ziel ist, nehmen ist, die Variablen Breite und Höhe (von args 1 und 2) geben sie an die Simulationsdatei, die die Berechnung "Integer add = FirebotWidth + FirebotHeight;" vornimmt und dann das Ergebnis daraus nimmt und in der Fire-Konsole ausgibt. Ich bekomme jedoch nur 0 als Ausgang:

Ausgang:

Test 
0 

Alle Hilfe wird sehr geschätzt. Vielen Dank.

+1

Sie wahrscheinlich nicht zwei Hauptmethoden haben – Steampunkery

+0

Lesen Sie eine gute Einführung in Java-Buch, vor allem eine, die objektorientierte Konzepte und Java betont, wie dies wird Ihnen sehr helfen. –

Antwort

0

Hier ist Ihre überarbeitete Code mit einer Erklärung unten

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

ich die wichtigste Methode von der SIM-Klasse entfernt, weil Sie Ich möchte nur einen Einstiegspunkt. Ich habe eine Methode namens add() in Ihrer Sim-Klasse, die Ihre Variablen aushinzugefügt zurückgegeben. Sie hatten eine Instanzvariable und eine Klassenvariable width und height in Ihrer Fire-Klasse, und ich denke, Sie wollten nur die Klassenvariable haben (Wenn Sie beides haben wollten, fügen Sie es einfach zurück). Ich habe die Initialisierungsvariable initialisiert auf try/catch, weil Sie parseInt() aufrufen. Ich habe all das getan, um es richtig laufen zu lassen, aber es ist mehr falsch mit deinem Code. Ich empfehle Ihnen a) nehmen Sie eine Klasse auf Java oder b) lesen Sie eine gründliche Anleitung für Buch, damit Sie grundlegende Java OOP verstehen.

Verwandte Themen