有没有办法使用用户输入JAVA将变量从主类发送到子类

时间:2016-10-07 08:08:57

标签: java string variables inheritance subclass

所以我正在开发一个(据称)简单的java应用程序,它使用来自用户的控制台输入,来改变另一个类中的私有变量。现在,我可以通过手动将变量输入到对象中来直接从主类更改EmpCls类中的私有变量的值,例如, EmpCls empObject1 = new EmpCls("josh");但我怎么得到这样的东西 EmpCls empObject1 = new EmpCls(ctName);工作?其中ctName是用户输入的变量。这是主类的相关代码:

import java.util.*;
public class NewWan {
    static Scanner console = new Scanner(System.in);
    public static void main(String[] args) {

    EmpCls empObject1 = new EmpCls(ctName);
    String ctName = empObject1.getName();

    System.out.println("enter name: ");
    ctName = console.next();

    }
}

有问题的子类:

public class EmpCls {

    private String name;
    private String ext;
    private int yearStarted = 0;

    public EmpCls()
    {

    }

    public EmpCls(String inName)
    {

        this.name = inName;

    }

    public void setEmpDetails(String inName) //, String inExt, int inYearStarted)
    {

        this.name = inName;
//          this.ext = inExt;
 //         this.yearStarted = inYearStarted;

    }

    public String getName()
    {
        return this.name;

    }

    public int getYearStarted()
    {
        return this.yearStarted;
    }

    public String getExt()
    {
        return this.ext;
    }

    public void displayDetails()
    {
        System.out.println("Name: " + name);
        System.out.println("Ext: " + ext);
        System.out.println("Year Started" + yearStarted);
    }


}

代码的某些部分仅用于注释,以便更轻松地解决问题,其他部分是我工作中不同问题的一部分。

2 个答案:

答案 0 :(得分:1)

你只需稍微重新排序这些陈述并删除那些没有意义的陈述:

public static void main(String[] args) {
    System.out.println("enter name: ");
    String ctName = console.next();
    EmpCls empObject1 = new EmpCls(ctName);
}

答案 1 :(得分:0)

嗯......只是为了好好整理你的代码?你在获取值之前使用变量,然后在声明它之前......奇怪的方式^^

public static void main(String[] args) {

    System.out.println("enter name: "); 
    String ctName = console.next();

    EmpCls empObject1 = new EmpCls(ctName);

    System.out.println("You just enter " + empObject1.getName()); 
}