2016-10-30 91 views
0

我在寫一個由多個類組成的程序。一類稱爲「用戶」,另一類稱爲「用戶組」。我試圖從User類中導入一個包含在構造函數中的變量,並在userGroup類中使用它。如何在新類中引用變量?

我試過下面的代碼:

User userRetrieve = new User(); 
userRetrieve.User(); 

此代碼似乎沒有工作,雖然我已經看到了各種教程,這是你將如何從另一個類檢索數據。第二行有「.User()」,因爲構造函數也被稱爲User,但我不確定這是否正確,並且即使它是程序沒有識別第一行的初始問題仍然存在。

我會告訴代碼形式兩類額外的信息可以顯示在哪裏出了問題:

用戶等級:

public class User { 

    String username; 
    String userType; 
    String name; 

    public User() { 
     username = "x"; 
     userType = "y"; 
     name = "z"; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public String getUserType() { 
     return userType; 
    } 

    public String getName() { 
     return name; 
    } 

    public String setUserType(String admin) { 
     return userType = admin; 
    } 

} 

userGroup表示類:

import java.util.ArrayList; 

public class userGroup { 

    String User; 

    ArrayList<User> userArray = new ArrayList<>(); 

    Integer user0; 

    public void addSampleData() { 

    userArray.add(new User()); 

    } 

    public void getUser(User user0) { 

     user0 = userArray.get(0); 

    } 

    public void printusername() { 

     System.out.println(user0.getUserName()); // x 


    } 
} 

我試圖在User類的構造函數中使用username和userType變量。

P.S任何格式/縮進錯誤的道歉。

+1

爲什麼不使用類用戶get方法? – MordechayS

+0

你不需要10個用戶來顯示[mcve]。 –

回答

1

讓用戶列表

List<User> users = new ArrayList<User>() 

添加用戶

users.add(new User()); 

獲取用戶(列表和數組是零索引)

User user0 = users.get(0); 

打印一些屬性

System.out.println(user0.getUserName()); // x 
0

你可以使用你在構造函數類中創建的get方法嗎?

所以,如果你想獲得用戶名和用戶類型只是使用GET方法

User userRetrieve = new User(); 
String username = userRetrieve.getUsername(); 
String userType = userRetrieve.getUserType(); 

或者你也可以只直接訪問變量,創建一個新的變量:

User userRetrieve = new User(); 
String username = userRetrieve.username; 
String userType = userRetrieve.userType; 
+0

這工作分開形式一個錯誤。錯誤在於它不會將用戶識別爲符號。我不太清楚爲什麼這是因爲那是其他班級的名字。編譯時, –

+0

是同一個文件夾/包中的類嗎? – enem95

+0

是的,我只是雙重檢查。 –

0
User userRetrieve = new User(); 

在這條線上,你正在實例化一個Person, 類型的新對象,你可以通過調用與這個特定類關聯的構造函數來實現這一點。

完成此操作後,可以通過調用您在Person類中定義的各種方法來訪問參數。所以在你的情況下,你應該使用userRetrieve.getUsername()等等..然而,你將需要在調用類中聲明一個變量來存儲這些值。

2

你誤解了一些概念。首先User()方法是構造函數,所以當你做User user = new User()時,該方法被調用。我的建議是改變你的用戶類

public class User { 

    private String username; 
    private String userType; 
    private String name; 

    // Use constructor to pass data to your class 
    public User(String username, String userType, String name) { 
    this.username = username; 
    this.userType = userType; 
    this.name = name; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public String getUserType() { 
     return userType; 
    } 

    public String getName() { 
     return name; 
    } 

    public String setUserType(String admin) { 
     return userType = admin; 
    } 


} 

現在你可以創建你的數組,並添加一個用戶,然後檢索其信息

List<User> users = new ArrayList<User>(); 
users.add(new User("x", "y", "z")); 

users.get(0).getUsername(); // returns "x"