2014-03-25 67 views
1

所以我有2個文件叫做Employee.java和Write.java(這兩個在同一個包中)。在Employee.java內部說我有跨多個文件創建對象(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中,我想創建一個Employee類型的對象叫做temp。像

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

但是,我得到一個錯誤,告訴我它無法找到該行中的符號。

public void obtainInfo(Employee temp) { 

我只是想知道我出錯了,我不能在不同的文件中創建一個對象。儘管他們在同一個包中,我無法訪問它們?

我希望能夠在稍後將其用於幫助我通過讀取數組列表來構建文本文件,但我想先從讀取對象中的單行開始。

+0

請張貼所有Write.java的,所以我們可以看到錯誤所在。 –

回答

0

聽起來,你正在嘗試設置一些東西,以便你可以製作一份員工的副本並能夠將屬性寫入文本文件。這不會寫入文本文件,但我認爲它可能會爲您清除一些問題。

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

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