2016-12-15 1 views
0

Я хотел бы использовать тестовый файл для чтения несколько объектов, но я получил нуль от step2 к шагу 4.Java Tester Возвращение файла нуль

Для имени, если я вход Стивен, я хотел бы получить ste123 назад (123 должно быть случайное число)

Вот код:

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

Ваш класс 'Username' отсутствует конструктор для установки значений переменных-членов. –

+2

НЕ ПОСЛЕ КОДА В КОММЕНТАРИИ. [править] ваш оригинальный пост. –

+0

Спасибо, какой конструктор я должен создать? – maymay

ответ

-2

вы могли бы возникли проблемы, потому что вы конкатенация строки с Integer.

Попробуйте это:

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

    String randomnumberAsString = String.valueOf(randomnumber); 

    outputname = subname + randomnumberAsString; 
} 
+0

В Java 'str + int' автоматически преобразует' int' в 'String'. См. 'Public class Zomg {public static void main (String [] args) {System.out.println (" abc "+ (int) (Math.random() * 1000)); }} '. –

+0

Да, я так думаю. Тогда есть что-то, что мне нужно изменить в коде класса? Так как другие два объекта, используемые в файле тестера, также возвращают нулевые значения. – maymay