2016-12-15 2 views
0

würde ich gerne eine Testdatei verwenden, mehrere Objekte zu lesen, aber ich habe eine Null von Schritt 2 4.Java Tester Datei return null

Für Name zu dem Schritt, wenn ich Eingabe Steven, würde ich ste123 bekommen zurück

Hier (123 sollte eine Zufallszahl sein) ist der Code:

public class Lab14Tester 
{ 

    public static void main(String[] args) 
    { 
     Introduction step1 = new Introduction(); 
     System.out.println(step1.giveline1()); 
     System.out.println(step1.giveline2()); 
     System.out.println(step1.giveline3()); 
     System.out.println(step1.giveline2()); 
     System.out.println(step1.giveline1()); 

     Scanner in= new Scanner(System.in); 
     System.out.print("\nName: "); 
     String inputname = in.nextLine(); 
     Username step2 = new Username(); 
     String givename = step2.givename(); 
     System.out.println("Your username is " + givename); 

     System.out.print("\nGive me a number: "); 
     int inputnumber =in.nextInt(); 
     OddEven step3 = new OddEven(); 
     System.out.println(step3.givenumbertype()); 

     System.out.print("\nGive me a number grade: "); 
     double grade = in.nextDouble(); 
     NumberToLetter step4 = new NumberToLetter(); 
     System.out.printf("\n%.1f", grade); 
     System.out.print(" is equal to a " + step4.giveletter()); 
    } 
} 


public class Username 
{ 

    private String subname; 
    private int randomnumber; 
    private String outputname; 

    public void getname(String inputname) 
    { 
     subname = inputname.substring(0,3); 
     randomnumber = (int)(Math.random()*1000); 
     outputname = subname + randomnumber; 
    } 

    public String givename() 
    { 
     return outputname; 
    } 
} 
+0

Ihre 'Username' Klasse fehlt ein Konstruktor die Werte seiner Elementvariablen zu setzen. –

+2

NICHT CODE IN KOMMENTARE POST. [Bearbeiten] Ihre ursprüngliche Post. –

+0

Danke, welche Art von Konstruktor soll ich erstellen? – maymay

Antwort

-2

Sie Probleme haben werden, weil Sie einen String mit einem Integer sind verketten.

Versuchen Sie folgendes:

public void getname(String inputname) 
{ 
    subname = inputname.substring(0,3); 
    randomnumber = (int)(Math.random()*1000); 

    String randomnumberAsString = String.valueOf(randomnumber); 

    outputname = subname + randomnumberAsString; 
} 
+0

In Java konvertiert 'str + int' automatisch den' int' in einen 'String'. Siehe öffentliche Klasse Zomg {public static void main (String [] Argumente) {System.out.println ("abc" + (int) (Math.random() * 1000)); }} '. –

+0

Ja ja, ich denke schon. Dann muss ich irgendetwas im Klassencode ändern? Die anderen beiden Objekte, die in der Testerdatei verwendet werden, geben ebenfalls Nullwerte zurück. – maymay