如何将信息从一个类传递到另一个类

时间:2011-06-02 12:54:03

标签: java

我正在创建一个程序,允许用户输入客户的详细信息。当他们保存每个客户记录时,可以选择添加其他信息。我在附加类中获取保存文件的名称时遇到问题。我需要文件名,以便我可以将其他信息保存到已为客户创建的同一文件中。如何将文件名从一个文件传递到另一个文件。

File FName = fileChooser.getSelectedFile();
      String name = FName.getName();

 public String getname() { return name; }

此代码在我的客户类中如何在我的附加类中获取此信息?

4 个答案:

答案 0 :(得分:1)

可能是这样的:

Customer customer = new Customer();
// do some stuff with your customer object, including initiating the File and saving its name to a String field called name
Append append = new Append();
append.foo(customer.getName()); // passes the name of the file to the foo method of class Append

这假设您只需要该方法中的文件名(尽管您可以将其作为方法foo()的一部分保存到字段中)。您需要在Append类中实现方法foo(String name)

另一种选择是将其作为Append:

的构造函数传递
Append append = new Append(customer.getName());
append.foo();

为此,您需要在Append类中实现构造函数Append(String name)

答案 1 :(得分:0)

有几种方法可以做到这一点,具体取决于你想要做什么。

  1. 为Append类提供Customer类的成员变量
  2. 让Append类构造函数获取一个引用Customer的参数,例如Name of String或Customer对象,因为这是Java

答案 2 :(得分:0)

我的问题并不完全清楚,但根据您的说明,您可能会遇到一些问题:

  • getName()应返回什么,文件名或人名?如果它应该返回文件名,那么使用getFileName()代替 - 它更清楚!

我真的不明白为什么你需要一个Append课程。就个人而言,我会在Customer类中附加附加信息。我这样做是为了每次添加或更改值时,信息都会保存回文件中,如:

class Customer {
    public void setForename(String forename) { 
        this.forename = forename;
        save();
    }
    public void setSurname(String surname) { 
        this.surname = surname;
        save();
    }
    public void save() {
        // clear file
        // add new content
        String fileContents = "forename="+forname+"&surname="+surname;
        // save to file
    }

也许我不能正确理解你的需求......

答案 3 :(得分:0)

除了DeadPassive将附加信息与Customer对象相关联的答案:

保存客户数据不属于客户类。持久化数据的逻辑属于单独的层,而不是处理操作问题域的代码。控制器或服务类似乎是放置持久性逻辑的更合适的位置。