Input 如何将数据从扫描仪输入构造函数?

Input 如何将数据从扫描仪输入构造函数?,input,java.util.scanner,Input,Java.util.scanner,我试图获取一个构造函数(string,string,double)并使用scanner输入设置其中的值。感谢您的帮助。代码如下所示 我的程序可以分配我输入的值,但我希望能够从键盘分配它们,我只想使用一个构造函数方法来完成这一点。谢谢 我将其分为两类: import java.util.Scanner; public class EmployeeTest { public static void main(String [] args) { Scanner in

我试图获取一个构造函数(string,string,double)并使用scanner输入设置其中的值。感谢您的帮助。代码如下所示

我的程序可以分配我输入的值,但我希望能够从键盘分配它们,我只想使用一个构造函数方法来完成这一点。谢谢

我将其分为两类:

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

}
import java.util.Scanner;
公营雇员测验
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
雇员雇员1=新雇员(“詹姆斯”,“ry”,3200);
雇员2=新雇员(“吉姆”、“鲍勃”,2500.56);
System.out.println(“员工1的名字是什么?”);
employee1.setFname(input.nextLine());
}
}
班级员工
{
私有字符串fname;
私有字符串名称;
私人双薪;
公共雇员(字符串fname、字符串lname、双薪)
{
this.setFname(fname);
this.lname=lname;
这个。支付=支付;
System.out.println(“员工”+fname+“”+lname+”赚$+
+工资+”这个月,加10%的工资,他们的新工资是“+(工资*.10+工资));
}   
void setfname(字符串fn)
{
setFname(fn);
}
void setlname(字符串ln)
{
lname=ln;
}
无效设置支付(双倍sal)
{
工资=萨尔;
}
字符串getfname()
{
返回getFname();
}
字符串getlname()
{
返回lname;
}
双倍支付
{
如果(支付<0.00)
{
报酬=0.0;
}
报酬;
}
公共字符串getFname(){
返回fname;
}
公共void setFname(字符串fname)
{
this.fname=fname;
}
}

您可以修改
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();
    }
}

您好,如果您已经找到了解决方案,您可以回答您的问题。您好,谢谢您的回复。这不是我学过的方法。不过,我会好好利用它。谢谢你的帮助!