簡體   English   中英

跨多個文件創建對象(Java)

[英]Object creation across multiple files (Java)

所以我有2個名為Employee.java和Write.java的文件(這兩個文件在同一包中)。 在Employee.java中說

public class Employee {
    private String firstName = "test";
    private String lastName = "ing";

    public Employee(String first, String last) {
        firstName = first;
        lastName = last;
    }

    public Employee(Employee copy) {
        firstName = copy.firstName;
        lastName = copy.lastName;
    }
}

然后在我的Write.java中,我想要創建一個名為temp的Employee類型的對象。 喜歡

public void obtainInfo(Employee temp) {
    String firstName = temp.firstName;
    String lastName = temp.lastName;
}

但是我收到一條錯誤消息,告訴我它無法在該行中找到該符號。

public void obtainInfo(Employee temp) {

我只是想知道我哪里出錯了,因為我無法在不同文件中創建對象。 盡管它們位於同一程序包中,但我無法訪問它們?

我希望以后能夠合並它,以幫助我通過讀取數組列表來構建文本文件,但是我想首先從讀取對象的一行開始。

確保Write.java的類具有與Employee(IE:Public)相同的訪問級別。 如果這不是問題,我將特別顯示Write.java的代碼,因為這很可能是問題出處。

在我看來,您正在嘗試進行一些設置,以便可以復制Employee並將屬性寫入文本文件。 這不會寫入文本文件,但我認為這可能會為您清除一些問題。

public class Employee {
    private String firstName;
    private String lastName;

    public Employee(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public Employee(Employee copy) {
        firstName = copy.firstName;
        lastName = copy.lastName;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
        sb.append("Employee");
        sb.append("{firstName='").append(firstName).append('\'');
        sb.append(", lastName='").append(lastName).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

TestClass.java

public class TestClass {

    public static void main(String[] args){
        //First we have to have one to copy
        Employee emp = new Employee("Joe", "Dirt");

        //Now we have a copy
        Employee emp2 = new Employee(emp);

        //Calls the Employee.toString() method and sends it to System.out
        System.out.println("Employee 1 : " + emp);
        System.out.println("Copy of Employee 1 : " + emp2);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM