【问题标题】:how to use an object that is created already as an argument in java如何使用已经创建的对象作为java中的参数
【发布时间】:2015-11-10 03:35:58
【问题描述】:

我的程序中有一个AddressBook 类和一个Persons 类。 AddressBook 类有一个 Persons 对象数组。

import java.util.*;
public class Persons {
    private String name;
    private String lastName;
    private String addres;
    private String city;
    private String state;
    private int zip;
    private String phoneNumber;

    public Persons(String name , String lastname,String phoneNumber) {
        this.name = name;
        this.lastName = lastname;
        this.phoneNumber = phoneNumber;
    }

//some getter and setter here for all private fields and some other code

这是AddressBook.addPerson 方法:

public void addPerson(Persons prs) {
    for (int i = 0; i < ArrayOfPerson.length; i++) {
        if (ArrayOfPerson[i] == null) {
            ArrayOfPerson[i] = prs;
            break;
        }
    }
}

还有Main 类:

public class Main {        
    public static void main(String[] args) {
        AddressBook addr = new AddressBook();
        addr.addPerson(new Persons("first name", "first lastname", "123"));// in here for example/ how can i use this person object later
        addr.addPerson(new Persons("second name", "second lastname", "456"));
        addr.addPerson(new Persons("third name", "thirs last name", "789"));
        addr.addPerson(new Persons("fourth name", "fourth last name", "101112"));
    }
}

我的问题是关于 Main 类的。如何重用创建的人员对象?例如,我想做这样的事情:

System.out.println(x.getname());

其中 x 是由 new 关键字作为参数创建的人员对象。

如果我的问题是初学者的问题,请原谅......我在谷歌搜索并没有找到任何东西。

【问题讨论】:

  • 你正在以一种“匿名”的方式构造Persons 对象。创建的对象(来自new)本身可以通过您的集合访问,但在您的main 范围内,您无法以变量的形式访问它。您应该实例化每个Persons 对象并将其设置为一个变量,然后然后使用您的.addPerson 方法将每个对象添加到AddressBook
  • 您可以在创建变量时将其分配给变量,也可以从数组中获取。

标签: java variable-assignment


【解决方案1】:

您只需在创建该对象时将其分配给一个变量,然后您就可以访问它并将其作为参数传递:

Persons firstOne = new Persons("first name","first lastname","123");

您的代码将是:

public static void main(String[] args) {
    AddressBook addr = new AddressBook();
    Persons firstOne = new Persons("first name","first lastname","123");

    //You will use it as parameter like this:
    addr.addPerson(firstOne);
    addr.addPerson(new Persons("second name", "second lastname","456"));
    addr.addPerson(new Persons("third name", "thirs last name","789"));
    addr.addPerson(new Persons("fourth name", "fourth last name","101112"));
}

然后你可以这样访问它:

System.out.println(firstOne.getname());

或者在不创建变量的情况下,您可以通过其索引addr.get(index) 从集合中获取它:

System.out.println(addr.get(0).getname());

【讨论】:

    【解决方案2】:

    你会这样做:

      public class Main {
    
    public static void main(String[] args) {
        AddressBook addr = new AddressBook();
        addr.addPerson(new Persons("first name","first lastname","123"));// in here for example/ how can i use this person object later
        addr.addPerson(new Persons("second name", "second lastname","456"));
        Person x = new Persons("third name", "thirs last name","789")
        addr.addPerson(x);
        addr.addPerson(new Persons("fourth name", "fourth last name","101112"));
        System.out.println(x.getName());
    }
    

    【讨论】:

      【解决方案3】:

      你必须将这个人分配给一个变量:

      Person x = new Persons("fourth name", "fourth last name","101112"));
      

      那么你可以这样做:

      addr.addPerson(x);
      System.out.println(x.getname());
      

      或者你可以从灯中取出元素:

      System.out.println(addr.get(3).getname())
      

      【讨论】:

        【解决方案4】:

        您应该将每个 Persons 存储到这样的变量中:

        Persons p1 = new Persons("first name","first lastname","123")
        

        然后获取字段name

        System.out.println(p1.getName());
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 1970-01-01
          • 2021-12-24
          • 2017-08-10
          • 1970-01-01
          相关资源
          最近更新 更多