![](/img/trans.png)
[英]How can I use a Variable from a Class Runner to use in a Method in another Class? (BlueJ, Java)
[英]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.