簡體   English   中英

如何在我當前班級的其他課程中使用方法

[英]How can I use a method in one of my other classes in my current class

問候:我嘗試在我的GUI類中使用我在另一個類中聲明的方法時遇到問題。

這是我正在嘗試使用的Memba類中的方法:

public void newMember(String Memb_Name,String Memb_Surname,int age,int contact,String address,String username,String password){
    this.Memb_Name = Memb_Name;
    this.Memb_Surname = Memb_Surname;
    this.age = age;
    this.contact = contact;
    this.address = address;
    Memba.username = username;
    Memba.password = password;  
}

該方法創建一個新成員。

在我的GUI類>>注冊類<<我正在嘗試使用該方法,我無法讓它工作。我嘗試創建實例,如下所示:

Memba mmb = new Memba();
Memba mem= new newMember();
Memba mm = new Memba(s1,s2,s3,s4,s5,s6,s7);

代碼已經獲取在文本字段中輸入的數據。

String s1 = nameFld.getText();
String s2 = surnameFld.getText();
int s3 = Integer.parseInt(ageFld.getText());
int s4 = Integer.parseInt(contactFld.getText());
String s5 = addressFld.getText();
String s6 = usernameFld.getText();
String s7 = passwordFld.getText();

請幫我解決這個問題。請注意。

您需要使用構造函數,或者返回Memba實例的方法,而不是void

構造函數

public Memba(String Memb_Name,String Memb_Surname,int age,int contact,String address,String username,String password) {

    this.Memb_Name = Memb_Name;
    this.Memb_Surname = Memb_Surname;
    this.age = age;
    this.contact = contact;
    this.address = address;
    this.username = username;
    this.password = password;  
}

提供新實例的方法 (通常以工廠模式等)

public static Memba newInstance(String Memb_Name,String Memb_Surname,int age,int contact,String address,String username,String password) {

    // you will need to declare an empty constructor in your Memba class, 
    // _if_ you have already declared the constructor above, 
    // for the following line to compile
    Memba result = new Memba(); 
    result.Memb_Name = Memb_Name;
    result.Memb_Surname = Memb_Surname;
    result.age = age;
    result.contact = contact;
    result.address = address;
    result.username = username;
    result.password = password;  
    return result;
}

筆記

  • 我的建議是堅持有關變量名的約定 - 即Memb_Name應該重構為namememberName等。
  • 在您在問題中公開的void方法的最后一個賦值中,您似乎使用方法的參數指定static字段。 我在這里假設它們實際上是Memba實例字段

有兩個選項,使用非靜態void方法,您需要一個實例來調用newMember 喜歡,

Memba mmb = new Memba();
mmb.newMember(s1,s2,s3,s4,s5,s6,s7);

另外,改變newMember返回一個Memba (和是static ),像

public static Memba newMember(String Memb_Name,String Memb_Surname,
        int age,int contact,String address,String username,String password){
    Memba m = new Memba();
    m.Memb_Name = Memb_Name;
    m.Memb_Surname = Memb_Surname;
    m.age = age;
    m.contact = contact;
    m.address = address;
    m.username = username;
    m.password = password;
    return m;
}

然后你可以像使用它一樣

Memba mmb = Memba.newMember(s1,s2,s3,s4,s5,s6,s7);

我通過創建一個能夠在我的GUI中重用的構造函數來解決上面的問題。

public Memba(String MembsName,String MembsSurname,int ages,int contacts,String addresses,String usernames,String passwords){


        this.MembName = MembsName;
        this.MembSurname = MembsSurname;
        this.age = ages;
        this.contact = contacts;
        this.address = addresses;
        Memba.username = usernames;
        Memba.password = passwords;


    }

我用它作為

String s1 = nameFld.getText();
            String s2 = surnameFld.getText();
            int s3 = Integer.parseInt(ageFld.getText());
            int s4 = Integer.parseInt(contactFld.getText());
            String s5 = addressFld.getText();
            String s6 = usernameFld.getText();
            String s7 = passwordFld.getText();

            new Memba(s1,s2,s3,s4,s5,s6,s7);

暫無
暫無

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

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