我正在制作一个模拟商店和会员的程序。我正在尝试编写一个方法memberRegister2()。此方法是Store类,但从Member类调用构造函数以生成成员对象。此方法将作为参数传递name,id和pinNumber,然后创建Member对象,该对象将存储在本地变量“member”中。我不知道该怎么做。正如您将从下面的代码中看到的,我尝试使用'Member member = new Member()'但我不知道如何使参数用户输入。 (P.S我正在使用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;
}
}
我被告知要将变量保留在顶部私有并使用指针?不知道这意味着什么,但它没有得到很好的解释。
答案 0 :(得分:0)
您可以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);
另外,你可能想制作pin,也许是id int而不是字符串。
答案 1 :(得分:0)
这是我从一个老课程中得到的东西,应该告诉你如何:
SavingsAccount myAccount = new SavingsAccount(200, 5);
因此,当你想要从另一个类创建一个对象时,你必须使用第二个类来初始化它,如上所示SavingsAccount
就像int
它实例化对象然后是两个整数{使用{1}}是因为第二个类中的方法是用它自己的两个整数实例化的,所以你创建的对象必须有两个自己的整数。而我所说的方法有两个整数实例化,如下面的代码所示:
SavingsAccount(200, 5);
如果你没有在括号中实例化一个带有两个对象的方法,那么你不需要它们:
public SavingsAccount(double amount, double rate) { super(amount); interestRate = rate; }
我希望这对你的问题有所帮助,我自己也很新,并尽可能地帮助我。我的课程也使用BlueJ,我对BlueJ有一点了解,所以我希望这会有所帮助。