2014-09-23 25 views
0

我想採取一個構造函數(字符串,字符串,雙),並設置它的值與掃描儀輸入。任何幫助表示讚賞。代碼列表如下。如何將數據從掃描器輸入到構造函數中?

我的程序可以分配我放入的值,但我希望能夠從鍵盤分配它們,並且我想只使用一種構造方法來完成此操作。由於

我把它分爲兩類:

import java.util.Scanner; 

public class EmployeeTest 
{ 
    public static void main(String [] args) 
    { 
     Scanner input = new Scanner(System.in); 

     Employee employee1 = new Employee("james", "ry", 3200); 
     Employee employee2 = new Employee("jim" , "bob" , 2500.56); 

     System.out.println("What is employyee 1's first name? "); 
     employee1.setFname(input.nextLine()); 



    } 
} 

class Employee 
{ 
    private String fname; 
    private String lname; 
    private double pay; 

    public Employee(String fname, String lname, double pay) 
    { 
     this.setFname(fname); 
     this.lname = lname; 
     this.pay = pay; 

     System.out.println("Employee " + fname +" "+ lname + " makes $" + 
       + pay + " this month and with a 10% raise, their new pay is $" + (pay * .10 +  pay)); 

    } 
    void setfname(String fn) 
    { 
    setFname(fn); 
    } 
    void setlname(String ln) 
    { 
     lname = ln; 
    } 
    void setpay (double sal) 
    { 
     pay = sal; 
    } 

    String getfname() 
    { 
     return getFname(); 
    } 
    String getlname() 
    { 
     return lname; 
    } 
    double getpay() 
    { 
     if (pay < 0.00) 
     { 
      return pay = 0.0; 
     } 

     return pay; 
    } 
    public String getFname() { 
    return fname; 
    } 
    public void setFname(String fname) 
    { 
     this.fname = fname; 
    } 

} 
+0

嗨,你可以回答你的問題(S),如果你想通了解決方案。 – Tirath 2014-09-29 22:01:59

回答

0

您可以修改你EmployeeTest類像

class EmployeeTest { 

    public static void main (String...arg) { 
     Scanner s = new Scanner(System.in); 

     String[] elements = null; 
     while (s.hasNextLine()) { 
      elements = s.nextLine().split("\\s+"); 
      //To make sure that we have all the three values 
      //using which we want to construct the object 
      if (elements.length == 3) { 
       //call to the method which creates the object needed 
       //createObject(elements[0], elements[1], Double.parseDouble(elements[2])) 
       //or, directly use these values to instantiate Employee object 
      } else { 
       System.out.println("Wrong values passed"); 
       break; 
      } 
     } 
     s.close(); 
    } 
} 
+0

您好,感謝您的回覆。這不是我學到的方法。然而,我會很好地使用它。感謝您的幫助! – 2014-10-01 14:40:17

相關問題