Java クラスを生成する

Java でインターフェースとクラスの実装を作成します。

モデルにクエリを直接実行して、返された結果をテストできます。その場合、Cloud コンソールでさまざまなパラメータ値を使用することも、Vertex AI API を直接呼び出すこともできます。

システム指示

あなたは Java のシニア デベロッパーで、後輩のデベロッパーを指導しています。生成されたコードを 1 つの段落に要約して、回答の最後に記述してください。

自由形式のプロンプト

Java で、VenusCard と Card の 2 つのクラスを生成します。

Card は、次のメソッドを持つインターフェースになります。 - 'int pay(int amount, String name)' - 'int withdraw(int amount)' - 'int deposit(int amount)'

VenusCard は、Card インターフェースを実装する具象クラスです。次の処理を行います。 - 支払いに対する領収書を作成します。- pay() と withdraw() のロジックを組み込み、残高が 0 未満の場合に、支払いまたは引き出しに対し 5% の手数料を加算します。- 取引後の残高がオーバードラフト限度額を下回る場合は、取引を拒否して -1 を返します。

回答

// Define the Card interface
interface Card {
    int pay(int amount, String name);
    int withdraw(int amount);
    int deposit(int amount);
}

//VenusCard class that implements Card interface
import java.util.ArrayList;
import java.util.List;

class VenusCard implements Card {
    private int balance;
    private int overdraftLimit = -500; //Example overdraft limit
    private List<String> receipts;

    public VenusCard() {
        this.balance = 0;
        this.receipts = new ArrayList<>();
    }

    public int pay(int amount, String name) {
        if (amount <= 0) {
            return -1; // Reject invalid payment amounts.
        }
        if (balance - amount < overdraftLimit) {
            return -1; // Reject if transaction goes below overdraft limit.

        }
        balance -= amount;
        double fee = 0;
        if (balance < 0) {
            fee = amount * 0.05;
            balance -= fee;
        }
        receipts.add("Payment of " + amount + " to " + name + " made. Fee: " + fee);
        return amount;
    }


    public int withdraw(int amount) {
        if (amount <= 0) {
            return -1; //Reject invalid withdrawal amounts
        }
        if (balance - amount < overdraftLimit) {
            return -1; // Reject if transaction goes below overdraft limit
        }
        balance -= amount;
        double fee = 0;
        if (balance < 0) {
            fee = amount * 0.05;
            balance -= fee;
        }
        receipts.add("Withdrawal of " + amount + " made. Fee: " + fee);
        return amount;

    }

    public int deposit(int amount) {
        if (amount <= 0) {
            return -1; //Reject invalid deposit amounts.
        }
        balance += amount;
        receipts.add("Deposit of " + amount + " made.");
        return amount;
    }

    public int getBalance() {
        return balance;
    }

    public List<String> getReceipts() {
        return receipts;
    }

    public static void main(String[] args){
        VenusCard card = new VenusCard();
        System.out.println(card.deposit(1000));
        System.out.println(card.pay(500, "Store A"));
        System.out.println(card.getBalance());
        System.out.println(card.withdraw(800));
        System.out.println(card.getBalance());
        System.out.println(card.getReceipts());

    }
}

概要: このコードは、基本的なカード機能(支払い、引き出し、入金)を定義する Card インターフェースを実装します。VenusCard クラスは、このインターフェースを実装し、領収書の生成、残高がマイナスの場合の 5% の手数料の請求、オーバードラフト限度額のチェックなどの機能を追加します。これにより、定義されたオーバードラフト限度額を下回る残高になる取引を防ぐことができます。main メソッドは、VenusCard クラスの使用例を示しています。無効な取引額(ゼロ以下)を拒否するためのエラー処理が含まれています。

モデル: gemini-1.5-flash-002
温度: 0.2
最大出力トークン: 8192
TopK: 40.0
TopP: 0.95