手動で値を入力してメソッドを呼び出すのではなく、別のクラスから別のクラスのメソッドを実行しようとしています。私は同様の質問を見て解決策を見つけようとしましたが、この文脈では役に立ちませんでした。
私は間違っているかもしれませんが、この要件は、パラメータを使用してメソッドを呼び出すように要求しているため、その方法がわかりません。
これは要件です:
a)メソッドpayForHoliday()をMemberクラスに追加します。このメソッドは、Webサイトクラスのメソッドを呼び出して、休日の支払いを行います(つまり、Webサイトとのトランザクションを記録します)。そして、ここで問題が発生します。これは、Memberクラスのオブジェクトが、メンバーがログインしているWebサイトの記録を保持していないためです。
クラスのウェブサイト:
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
}
問題は、同じクラスのオブジェクトを追加して、パラメータとしてを持っているMember
他のクラスからメソッドを呼び出そうとしたことでした。Website
Member purchase
したがって、そのメソッドを正しく呼び出すために、次のコードを使用しました。
public void payForHoliday(Holiday test)
{
website.checkout(this, test);
}
クラスcheckout()
内のメソッドを指すために、Website
クラス内address
として宣言された(WebサイトのWebサイト)を使用しました。instance variable
Member
this
キーワードは、パラメータがメソッドを呼び出しているオブジェクト自体が、あることをプログラムに指示します。
test
変数は、別のクラスのポインタであるという事実に起因するパラメータとして配置されています。(checkout()
メソッド内の変数名との競合を避けるために、変数名を別の名前に変更しました)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加