2016-12-15 70 views
0

我想用一个测试文件中读取几个对象,但我从第二步空步骤4的Java测试文件返回NULL

对于名字,如果我输入史蒂芬,我想获得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

你可能会遇到麻烦,因为你用串联整数的字符串。

试试这个:

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