【问题标题】:Java: How do you add data into an object?Java:如何将数据添加到对象中?
【发布时间】:2017-02-24 18:19:06
【问题描述】:

我是 Java 新手。如何将 String 数据添加到 Object "myData" 中并在 main 中打印出它的内容?

public class myData {
  static String[] myArray = new String[] { "Mimi Rudolph", "minirudolph" };

  public static String[] cutName(String string) {
    return string.split(" ");
  }

  String[] fullName = cutName(myArray[0]);
  String skype = myArray[1];
  String github = null;
  Object myData = new Object();

  public myData(String[] fullName, String skype, String github) {
    this.fullName = fullName;
    this.skype = skype;
    this.github = github;
  }

  public static void main(String[] args) {

    Object myData = new Object();
  }
}

【问题讨论】:

    标签: java string object constructor add


    【解决方案1】:

    @Tai,我认为您的代码中缺少一些概念。 一旦 Java 成为一种面向对象的编程语言,当你想要一个类的新实例时,你应该避免在你的方法中使用 static

    要使用static 调用方法,您不需要对象的新实例(例如,可以将其称为MyData.cutName

    另一方面,构造函数将在您创建对象的新实例时被访问。

    我相信您可以摆脱数组,但我将其保留在您的 cutName 方法中。 你可以有这样的东西。

    public class MyData {
        private String fullname;
        private String skype;
        private String github;
    
        public MyData(String fullname, String skype, String github) {
            this.fullname = fullname;
            this.skype = skype;
            this.github = github;
        }
    
        public String getFullname() {
            return this.fullname;
        }
    
        public String getSkype() {
            return this.skype;
        }
    
        public String getGithub() {
            return this.github;
        }
    
        public String[] cutName(String string) {
            return string.split(" ");
        }
    
        @Override
        public String toString() {
            return "Fullname: " + this.fullname + "; Skype: " + this.skype + "; Github: " + this.github;
        }
    
        public static void main(String[] args) {
            MyData myData = new MyData("Mimi Rudolph", "minirudolph_skype", "minirudolph_githnub");
            System.out.println("First name: " + myData.cutName(myData.getFullname())[0]);
            System.out.println("Last name: " + myData.cutName(myData.getFullname())[1]);
            System.out.println(myData);
        }
    }
    

    输出将是:

    First name: Mimi
    Last name: Rudolph
    Fullname: Mimi Rudolph; Skype: minirudolph_skype; Github: minirudolph_githnub
    

    在你的类中拥有属性并从新实例中设置它会帮助你获得可重用性。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      我认为您正在寻找这样的东西:

      public class MyData {
      
      private static final String[] myArray = new String[]{"Mimi Rudolph", "minirudolph"};
      
      String[] fullName = cutName(myArray[0]);
      String skype = myArray[1];
      String github = null;
      Object myData = new Object();
      
      private static String[] cutName(String string) {
          return string.split(" ");
      }
      
      public MyData(String[] fullName, String skype, String github) {
          this.fullName = fullName;
          this.skype = skype;
          this.github = github;
      }
      
      public static void main(String[] args) {
          MyData myData = new MyData(myArray, "Skype string goes here", "githun string goes here");
          System.out.println(myData.fullName);
          System.out.println(myData.github);
          System.out.println(myData.skype);
      }
      }
      

      【讨论】:

        【解决方案3】:

        你需要简单地创建你的类 myData 的实例作为下一个:

        public static void main(String[] args) {
            myData myData = new myData(myArray, "skype", "github");
            ...
        }
        

        要打印其内容,您可以覆盖方法toString(),例如:

        @Override
        public String toString() {
            return "myData{" +
                "fullName=" + Arrays.toString(fullName) +
                ", skype='" + skype + '\'' +
                ", github='" + github + '\'' +
                ", myData=" + myData +
                '}';
        }
        

        然后您将能够使用System.out.println(myData) 打印其内容。

        所以最终的代码应该是这样的:

        public class myData {
            ...
            @Override
            public String toString() {
                ...
            }
        
            public static void main(String[] args) {
                myData myData = ...
                System.out.println(myData);
            }
        }
        

        【讨论】:

          【解决方案4】:

          通常您可以通过以下简单示例将字符串添加到对象:

           String a = "abc";
           Object b = a;
           System.out.println(b);
          

          如果你想给myData对象赋值一个完整的String数组,那么你需要做如下:

           Object[] myData  = new Object[myArray.length];
                  for(int i=0;i<myArray.length;i++){
                      myData [i] = myArray[i];
                      System.out.println("MyData Object Array holding strings data: "+myData[i]);
                  }
          

          在你的 main 方法中,你需要先将对象更改为数组对象: 来自-Object myData = new Object(); 收件人:Object[] myData = new Object[myArray.length];

          【讨论】:

            猜你喜欢
            • 2010-10-09
            • 2014-07-16
            • 2021-06-20
            • 2020-08-12
            • 1970-01-01
            • 1970-01-01
            • 2013-11-06
            • 2023-04-06
            • 1970-01-01
            相关资源
            最近更新 更多