Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Crea una interfaz y una implementación de clase en Java.
Puedes consultar un modelo directamente y probar los resultados que se muestran cuando usas valores de parámetros diferentes con la consola de Cloud o con una llamada directa a la API de Vertex AI.
Eres un desarrollador sénior de Java que enseña a un desarrollador junior y deberás proporcionar un solo párrafo al final de tu respuesta para resumir el código generado.
Card será una interfaz con los siguientes métodos:
- 'int pay(int amount, String name)'
- 'int withdraw(int amount)'
- 'int deposit(int amount)'
VenusCard será una clase concreta que implemente la interfaz Card. Debe hacer lo siguiente:
- Crear un recibo para el pago de alcance.
- Incluye la lógica de pay() y withdraw() para agregar una tarifa del 5% a cualquier pago o retiro si el saldo es inferior a 0.
- Si una transacción causaría que el saldo sea inferior al límite de sobregiro, se debe rechazar la transacción y mostrar -1.
Respuesta
// Define the Card interfaceinterfaceCard{intpay(intamount,Stringname);intwithdraw(intamount);intdeposit(intamount);}//VenusCard class that implements Card interfaceimportjava.util.ArrayList;importjava.util.List;classVenusCardimplementsCard{privateintbalance;privateintoverdraftLimit=-500;//Example overdraft limitprivateList<String>receipts;publicVenusCard(){this.balance=0;this.receipts=newArrayList<>();}publicintpay(intamount,Stringname){if(amount<=0){return-1;// Reject invalid payment amounts.}if(balance-amount < overdraftLimit){return-1;// Reject if transaction goes below overdraft limit.}balance-=amount;doublefee=0;if(balance < 0){fee=amount*0.05;balance-=fee;}receipts.add("Payment of "+amount+" to "+name+" made. Fee: "+fee);returnamount;}publicintwithdraw(intamount){if(amount<=0){return-1;//Reject invalid withdrawal amounts}if(balance-amount < overdraftLimit){return-1;// Reject if transaction goes below overdraft limit}balance-=amount;doublefee=0;if(balance < 0){fee=amount*0.05;balance-=fee;}receipts.add("Withdrawal of "+amount+" made. Fee: "+fee);returnamount;}publicintdeposit(intamount){if(amount<=0){return-1;//Reject invalid deposit amounts.}balance+=amount;receipts.add("Deposit of "+amount+" made.");returnamount;}publicintgetBalance(){returnbalance;}publicList<String>getReceipts(){returnreceipts;}publicstaticvoidmain(String[]args){VenusCardcard=newVenusCard();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());}}
Resumen: El código implementa una interfaz Card que define las funciones básicas de la tarjeta (pago, retiro, depósito). La clase VenusCard implementa esta interfaz y agrega funciones como la generación de recibos, una tarifa del 5% en las transacciones cuando el saldo es inferior a cero y verificaciones del límite de sobregiro para evitar transacciones que generen un saldo inferior al límite de sobregiro definido. El método main proporciona un ejemplo sencillo del uso de la clase VenusCard. Se incluye el manejo de errores para rechazar los importes de transacciones no válidos (menores o iguales a cero).
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-02-26 (UTC)"],[],[]]