如何从另一个类创建对象(BlueJ)

时间:2015-11-26 17:39:54

标签: java

我正在制作一个模拟商店和会员的程序。我正在尝试编写一个方法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;
    }
}

我被告知要将变量保留在顶部私有并使用指针?不知道这意味着什么,但它没有得到很好的解释。

2 个答案:

答案 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有一点了解,所以我希望这会有所帮助。