如何从另一个java类调用参数为对象的方法?
我试图不只是通过手动输入值来调用该方法,而是从另一个类运行另一个类的方法。我试图通过研究类似的问题来找到解决方案,但它们在这方面对我没有帮助 我可能错了,请原谅我,但这个要求要求我调用一个带参数的方法,我不知道该怎么做 这是要求: a) 将payForHoliday()方法添加到成员类。此方法只需调用Website类中的一个方法来支付假期费用(即记录与网站的交易)。这里我们遇到了一个问题,因为成员类中的对象没有记录成员登录的网站 班级网站:如何从另一个java类调用参数为对象的方法?,java,object,methods,call,Java,Object,Methods,Call,我试图不只是通过手动输入值来调用该方法,而是从另一个类运行另一个类的方法。我试图通过研究类似的问题来找到解决方案,但它们在这方面对我没有帮助 我可能错了,请原谅我,但这个要求要求我调用一个带参数的方法,我不知道该怎么做 这是要求: a) 将payForHoliday()方法添加到成员类。此方法只需调用Website类中的一个方法来支付假期费用(即记录与网站的交易)。这里我们遇到了一个问题,因为成员类中的对象没有记录成员登录的网站 班级网站: public class Website {
public class Website {
private String websiteName;
private double salesTotal;
public Website(String newWebsiteName)
{
websiteName = newWebsiteName;
}
// lines omitted
public void checkout(Member purchase, Holiday chosen)
{
if (checkHitDiscount() == true)
{
System.out.println("Congrtulations you are eligible for 10% discount!");
salesTotal = chosen.price;
}
else
{
System.out.println("successful completion of the transaction");
salesTotal = chosen.price;
}
}
public class Member {
private String email;
public int membershipNumber;
Holiday holiday;
Website website;
public Member(String newEmail, int newMembershipNumber)
{
email = newEmail;
membershipNumber = newMembershipNumber;
}
// lines omitted
public void payForHoliday(Member purchase, Holiday chosen)
{
// This method needs to run the "checkout()" method in Website class
}
类别成员:
public class Website {
private String websiteName;
private double salesTotal;
public Website(String newWebsiteName)
{
websiteName = newWebsiteName;
}
// lines omitted
public void checkout(Member purchase, Holiday chosen)
{
if (checkHitDiscount() == true)
{
System.out.println("Congrtulations you are eligible for 10% discount!");
salesTotal = chosen.price;
}
else
{
System.out.println("successful completion of the transaction");
salesTotal = chosen.price;
}
}
public class Member {
private String email;
public int membershipNumber;
Holiday holiday;
Website website;
public Member(String newEmail, int newMembershipNumber)
{
email = newEmail;
membershipNumber = newMembershipNumber;
}
// lines omitted
public void payForHoliday(Member purchase, Holiday chosen)
{
// This method needs to run the "checkout()" method in Website class
}
在执行另一个类的(非静态)成员之前,需要一个作为该类实例的对象
换句话说,您的签出方法是在特定网站上操作的操作,因为它被定义为网站类的成员
因此,要称呼它,你需要
Website xyz = …. something that delivers a website …;
然后你可以打电话
xyz.checkout(…);
“交付网站的东西”是任何适合您的应用程序设计的东西。也许它和“new Website()”一样简单,但如果不知道网站在您的设计中实际代表了什么,就无法判断
您缺少了该如何工作的详细信息。我将提供一些猜测。首先,我假设网站中有更多的成员,也就是说,每个可能的网站都有多个成员 这意味着需要有一种方法将成员连接到网站。需求指出这是一个“问题”——我们可以推断您应该解决这个问题 一种方法是让会员建造师告诉您网站:
public Member(String newEmail, int newMembershipNumber, Website newSite)
{
email = newEmail;
membershipNumber = newMembershipNumber;
website = newSite;
}
然后你可以这样做:
public void payForHoliday(Member purchase, Holiday chosen)
{
website.checkout(purchase, chosen);
}
但这对我来说没有太多意义-为什么这个方法需要一个与包含它的成员不同的'Member'参数?你确定你没有弄错那个细节吗?这更合理:
public void payForHoliday(Holiday chosen)
{
website.checkout(this, chosen); // 'this' means the current Member
}
但我们不能说这是否是我们想要的方法,因为问题中没有足够的细节。这些东西是怎么用的?什么创造了成员?创建成员的代码是否知道它正在为其创建成员的特定网站?问题是,我试图添加同一类的对象
成员
,以从另一类网站
调用该方法,该类的参数为成员购买
为了正确调用该方法,我使用了以下代码:
public void payForHoliday(Holiday test)
{
website.checkout(this, test);
}
- 为了指向
类中的方法网站
,我使用了checkout()
(网站网站)在地址
类中声明为成员
实例变量
关键字告诉程序参数是调用方法的对象本身this
变量作为参数放置,因为它是来自另一个类的指针。(我将变量名更改为另一个名称,以避免与test
方法中的名称冲突)checkout()
checkout()
方法至少是需求所要求的。@您确定这就是需求所要求的吗?只能从网站
类的实例调用该方法。如果为了构造该实例,您需要提供一个字符串,我非常怀疑该要求是否会强制您不提供该字符串。事实上,该要求只提到了网站的名称,当它说成员
类没有跟踪它时,但它并没有说你不应该以某种方式提供它,比如通过用户的输入。如果可能的话,也许你应该向给你任务的人寻求澄清。我更新了这个问题,包括了字段和构造函数。我已经在成员
类(网站网站)中添加了网站
类作为实例变量。成员中的某些内容需要将网站分配给实例变量。然后你可以打电话到网站。结帐(…)。我什么都试过了,我不知道该怎么办。他从未教过我们如何调用mutator方法,只教过accessor方法。