簡體   English   中英

如何從另一個類(BlueJ)創建對象

[英]How do I create an object from another class (BlueJ)

我正在制作一個模擬商店和會員的程序。 我正在嘗試編寫一個方法memberRegister2()。 此方法是Store類,但從Member類調用構造函數以創建成員對象。 該方法將名稱,id和pinNumber作為參數傳遞,然后創建Member對象,該對象將存儲在局部變量“ member”中。 我不知道該怎么做。 正如您將從下面的代碼中看到的那樣,我嘗試使用'Member member = new Member()',但是我不知道如何使參數成為用戶輸入。 (PS,我正在使用BlueJ)這是兩個類的代碼,希望它們使我的問題更有意義。 我對Java非常陌生,因此請原諒錯誤的編碼。

public class Store
{
    // instance variables
    private String storeName;
    private int total;

//Member member;

/**
 * Constructor for objects of class Store
 */
public Store(String newStoreName, int newTotal)
{
    // initialise instance variables
    storeName = newStoreName;
    total = newTotal;

}

//Accessor Methods
public String getStoreName()
{
    return storeName;
}

public int getTotal()
{
    return total;
}

public void memberRegister1(Member newMember)
{
    System.out.println("Salford Thrifty " + storeName + ": Welcome " + newMember.getName() + " (id:" + newMember.getId() + ")" );

}

public void memberRegister2()
{
    //Member member = new member(memberName, memberId, memberPinNumber);


}
//Mutator Methods
public void newStoreName(String newName)
{
    storeName = newName;
}

public void newTotal(int newTotal)
{
    total = newTotal;
}
}

和會員等級

public class Member
{
    // instance variables 
    private String name;
    private String id;
    private String pinNumber;


    /**
     * Constructor for objects of class Member
     */
    public Member(String memberName, String memberId, String memberPinNumber)
    {
        // initialise instance variables
        name = memberName;
        id = memberId;
        pinNumber = memberPinNumber;
    }

    public Member()
    {
        // initialise instance variables
        name = "Bob";
        id = "ASD123";
        pinNumber = "5678";
    }

    //Accessor Methods
    public String getName()
    {
        return name;
    }

    public String getId()
    {
        return id;
    }

    public String getPinNumber()
    {
        return pinNumber;
    }

    //Mutator Methods
    public void newName(String newMemberName)
    {
        name = newMemberName;
    }

    public void newId(String newMemberId)
    {
        name = newMemberId;
    }

    public void newPinNumber(String newMemberPinNumber)
    {
        name = newMemberPinNumber;
    }
}

有人告訴我將變量保留在頂部私有並使用指針? 不知道這意味着什么,但是還沒有很好地向我解釋。

您可以像這樣的Scanner來讀取用戶的輸入。

Scanner s = new Scanner(System.in);
String userInput = s.nextLine();

然后,只需使用用戶輸入的字符串初始化您的成員實例即可。

String memberName, memberId, memberPin;

Scanner s = new Scanner(System.in);

System.out.println("Enter a name");
memberName = s.nextLine();

System.out.println("Enter an id");
memberId = s.nextLine();

System.out.println("Enter a pin");
memberPin = s.nextLine();

Member m = new Member(memberName, memberId, memberPin);

另外,您可能想設置圖釘,也許用id ints代替字符串。

這是我從一個舊班級中學到的東西,應該告訴您如何:

SavingsAccount myAccount = new SavingsAccount(200, 5);

因此,當您想從另一個類創建對象時,必須使用第二個類對其進行初始化,如上所示, SavingsAccount就像int實例化該對象一樣,然后是兩個整數SavingsAccount(200, 5); 之所以使用,是因為第二個類中的方法使用其自己的兩個整數實例化,因此您創建的對象必須具有自己的兩個整數。 我的意思是該方法實例化了兩個整數,如下面的代碼所示:

public SavingsAccount(double amount, double rate)
  {
    super(amount);
    interestRate = rate;
  }

如果不使用括號將兩個對象實例化的方法,則不需要在兩個括號內:

SavingsAccount myAccount = new SavingsAccount(200, 5);

我希望這對您的問題有幫助,我本人還是一個新手,我會盡力提供幫助。我的課程也使用BlueJ,並且我對BlueJ有所了解,所以希望對您有所幫助。

暫無
暫無

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

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