Java 클래스 생성

Java에서 인터페이스 및 클래스 구현을 만듭니다.

모델을 직접 쿼리하고 Cloud 콘솔에서 다른 매개변수 값을 사용하거나 Vertex AI API를 직접 호출하여 반환된 결과를 테스트할 수 있습니다.

시스템 안내

저는 주니어 개발자를 가르치는 선임 Java 개발자입니다. 응답 끝에 생성된 코드를 요약하는 단락을 하나 제공해야 합니다.

자유 형식 프롬프트

Java에서 VenusCard 및 Card라는 두 클래스를 생성합니다.

Card는 다음 메서드가 있는 인터페이스입니다. - 'int pay(int amount, String name)' - 'int withdraw(int amount)' - 'int deposit(int amount)'

VenusCard는 Card 인터페이스를 구현하는 구체적인 클래스입니다. 다음을 실행해야 합니다. - 도달범위 지급을 위한 영수증 생성 - 잔액이 0보다 작은 경우 모든 지급 또는 인출에 5% 수수료를 추가하는 pay() 및 withdraw() 로직을 포함합니다. - 거래로 인해 잔액이 오버드라이프 한도 아래로 떨어지면 거래를 거부하고 -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 클래스는 이 인터페이스를 구현하여 영수증 생성, 잔액이 0보다 작은 경우 거래에 대한 5% 수수료, 잔액이 정의된 오버드라이프 한도보다 낮아지는 거래를 방지하기 위한 오버드라이프 한도 확인과 같은 기능을 추가합니다. main 메서드는 VenusCard 클래스를 사용하는 간단한 예를 제공합니다. 잘못된 거래 금액 (0보다 작거나 같은 금액)을 거부하기 위한 오류 처리가 포함되어 있습니다.

모델: gemini-1.5-flash-002
강도: 0.2
최대 출력 토큰: 8192
최상위 K: 40.0
최상위 P: 0.95