【问题标题】:Is there a way to send variables from main class to subclass using user input JAVA有没有办法使用用户输入JAVA将变量从主类发送到子类
【发布时间】:2016-10-07 08:08:57
【问题描述】:

所以我正在开发一个(据说)简单的 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);
    }


}

代码的某些部分被注释只是为了更容易解决问题,其他部分是我正在处理的不同问题的一部分。

【问题讨论】:

  • 以同样的方式称呼它

标签: java string variables inheritance subclass


【解决方案1】:

您只需要稍微重新排序语句并删除没有意义的语句:

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

【讨论】:

    【解决方案2】:

    嗯...只是为了以良好的方式组织您的代码?你在获取价值之前使用变量,在声明它之前......奇怪的方式^^

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

    【讨论】:

    • 天哪,这行得通。谢谢!我还是个菜鸟,所以请原谅奇怪的排序哈哈
    • 没问题,每个人都开始了一天 ^^ 考虑为此使用和配置一个好的 IDE,比如 Eclipse、Netbeans 或 IntelliJ。它们很强大,可以向您显示大量错误,例如这个!
    猜你喜欢
    • 2020-04-07
    • 2023-03-29
    • 2018-05-30
    • 2021-05-15
    • 1970-01-01
    • 2022-07-01
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多