Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - drate

Páginas: [1] 2
1
Buenas tardes,
Necesito acceder y manipular un atributo de un fichero Excel desde Java. Podéis echarme una mano?
Muchas gracias.

2
Buenas tardes.
Estoy haciendo un ejercicio de apertura y manejo de ficheros y no consigo que me abra el fichero en cuestión. Eclipse me da siempre la misma ruta de este aunque lo ponga en el directorio raíz.
Me podéis echar una mano? No puedo hacer el ejercicio con este fallo.
Muchas gracias, un saludo.

3
Buenas tardes.
La duda que tengo es como declaro el constructor en la clase contenedora y le paso datos al mismo tiempo a todas las clases.

package Practica1;

public class Coche {
   private String matricula;
   private String marca;
   private String modelo;
   private int potencia;
   private int velocidadMaxima;
   Rueda rueda;
   Chasis chasis;

   public Coche(String matricula, String marca, String modelo, int potencia, int velocidadMaxima) {
      super();
      this.matricula = matricula;
      this.marca = marca;
      this.modelo = modelo;
      this.potencia = potencia;
      this.velocidadMaxima = velocidadMaxima;
      // this.rueda = rueda;
      // this.chasis = chasis;
   }

   public String getMatricula() {
      return matricula;
   }

   public void setMatricula(String matricula) {
      this.matricula = matricula;
   }

   public String getMarca() {
      return marca;
   }

   public void setMarca(String marca) {
      this.marca = marca;
   }

   public String getModelo() {
      return modelo;
   }

   public void setModelo(String modelo) {
      this.modelo = modelo;
   }

   public int getPotencia() {
      return potencia;
   }

   public void setPotencia(int potencia) {
      this.potencia = potencia;
   }

   public int getVelocidadMaxima() {
      return velocidadMaxima;
   }

   public void setVelocidadMaxima(int velocidadMaxima) {
      this.velocidadMaxima = velocidadMaxima;
   }

   public class Chasis {

      public String material;
      public Double peso;

      public Chasis(String material, Double peso) {
         super();
         this.material = material;
         this.peso = peso;
      }

      public String getMaterial() {
         return material;
      }

      public void setMaterial(String material) {
         this.material = material;
      }

      public Double getPeso() {
         return peso;
      }

      public void setPeso(Double peso) {
         this.peso = peso;
      }

   }

   public class Rueda {

      public int medida;
      public String tipo; // (“seco”, “lluvia”)
      public String marca;
      public String modelo;
      public String caracteristicas;

      public Rueda(int medida, String tipo, String marca, String modelo) {
         super();
         this.medida = medida;
         this.tipo = caracteristicas;
         this.marca = marca;
         this.modelo = modelo;
      }

      public int getMedida() {
         return medida;
      }

      public void setMedida(int medida) {
         this.medida = medida;
      }

      public String getTipo() {
         return tipo;
      }

      public void setTipo(String tipo) {
         this.tipo = tipo;
      }

      public String getMarca() {
         return marca;
      }

      public void setMarca(String marca) {
         this.marca = marca;
      }

      public String getModelo() {
         return modelo;
      }

      public void setModelo(String modelo) {
         this.modelo = modelo;
      }

      public String getCaracteristicas() {
         return caracteristicas;
      }

      public void setCaracteristicas(String caracteristicas) {
         this.caracteristicas = caracteristicas;
      }

   }

   @Override
   public String toString() {
      return "Coche [matricula=" + matricula + ", marca=" + marca + ", modelo=" + modelo + ", potencia=" + potencia
            + ", velocidadMaxima=" + velocidadMaxima + ", rueda=" + rueda + ", chasis=" + chasis + "]";
   }

}

package Practica1;

public class Main {

   public static void main(String[] args) {
      Coche t= new Coche("1998DTM","Jaguar","X-Type",280,250);
      Coche.Chasis t= new ("carbono",159.2);
      
   }
}

4
Aprender a programar desde cero / Acceso a clases anónimas
« en: 12 de Julio 2023, 23:09 »
Buenas noches.
Estoy terminando de implementar el ejercicio que pregunté anteriormente pero no consigo implementar los constructores ni de la clase principal ni de las anónimas. Me podéis echar una mano?
Muchas gracias. Un saludo.

5
Buenas tardes.
He estoy haciendo este ejercicio de clases anidadas y no consigo verlo del todo claro.
Lo dejo por si me podéis echar una mano.
Muchas gracias. Un saludo.

Define e implementa una clase para definir la estructura de un Coche. La idea es que la clase tenga unos pocos atributos como:
• matricula
• marca
• modelo
• potencia
• velocidadMaxima
Y guardar información, de algunos componentes que lo forman, teniendo en cuenta que un coche tendrá 1 chasis y 4 ruedas:
Del chasis guardaremos:
• material
• peso

De cada rueda:
• medida
• tipo (“seco”, “lluvia”)
• marca
• modelo
Una vez definida la estructura, prepara un programa principal donde crees un par de objetos de la clase Coche con información para
todas las partes

6
Aprender a programar desde cero / Re: Excepciones
« en: 02 de Julio 2023, 12:06 »
Buenos días.
Estoy arreglando el código según tus indicaciones y me da fallo en el método cadenaEsValida.

En concreto en la comparación   if (car >= &#39;0&#39; && car <= &#39;9&#39;). No entiendo esa codificación. Me lo puedes aclarar?
Muchas gracias. Un saludo.


7
Buenas tardes. Subo enunciado y código de ejercicio de Excepciones que no acabo de resolver. Muchas gracias, un saludo.

Un equipo de programadores desea participar en una maratón de programación. El equipo tiene los siguientes atributos:
• Nombre del equipo.
• Universidad que está representando al equipo.
• Lenguaje de programación que va a utilizar el equipo en la competencia.
• Tamaño del equipo.
Se requiere un constructor que inicialice los atributos del equipo. El equipo está conformado por varios programadores, mínimo dos
y máximo tres. Cada programador posee nombre y apellidos. Se requieren además los siguientes métodos:
• Un método para determinar si el equipo está completo.
• Un método para añadir programadores al equipo. Si el equipo está lleno se debe imprimir la excepción correspondiente.
• Un método para validar los atributos nombre y apellidos de un programador para que reciban datos que sean solo texto. Si se
reciben datos numéricos se debe generar la excepción correspondiente. Además, no se permiten que los campos String tengan
una longitud igual o superior a 20 caracteres.
• En un método main se debe crear un equipo solicitando sus datos por teclado y se validan los nombres y apellidos de los
programadores

public class EquipoDeProgramadores {
   private String nombreEquipo;
   private String universidad;
   private String lenguajeProgramacion;
   private int tamanoEquipo;
   private String[] programadores = new String[2];

   public String[] getProgramadores() {
      return programadores;
   }

   public EquipoDeProgramadores() {

   }

   public EquipoDeProgramadores(String nombreEquipo, String universidad, String lenguajeProgramacion,
         int tamanoEquipo) {

      this.nombreEquipo = nombreEquipo;
      this.universidad = universidad;
      this.lenguajeProgramacion = lenguajeProgramacion;
      this.tamanoEquipo = tamanoEquipo;
      for (int i = 0; i < programadores.length; i++) {
         programadores = null;
      }

   }

   public boolean estaLleno(String[] programadores) {
      return programadores[2] != null;
   }

   public void anadirProgramador(String nombre) {
      int i = 0;
      try {

         validarNombre(nombre);

         while (i <= 2) {
            if (programadores == null) {
               programadores = nombre;
               break;
            } else {
               i++;
            }
         }

      } catch (Exception e) {
         System.out.println("formato de nombre incorrecto.");
      }

   }

   public boolean comprobar() throws Exception {
   
      if (estaLleno(programadores)) {
      
         throw new Exception("el equipo esta lleno");

      } else
         return true;
   }

   public boolean validarNombre(String componente) {

      try {
         verificarEntrada(componente);

      } catch (Exception e) {
         System.out.println("El nombre introducido no tiene el formato correcto.");
         return false;
      }
      return true;
   }

   public boolean verificarEntrada(String componente) throws Exception {

      for (int j = 0; j < componente.length(); j++) {
         char r = componente.charAt(j);
         if ('0' <= r && r <= '9') {
            throw new Exception("el dato introducio no es un nombre válido");

         }

      }
      if (componente.length() > 20) {
         throw new Exception("longitud del nombre excedida");

      }
      return true;
   }

   public void setNombreEquipo(String nombreEquipo) {
      this.nombreEquipo = nombreEquipo;
   }

   public void setUniversidad(String universidad) {
      this.universidad = universidad;
   }

   public void setLenguajeProgramacion(String lenguajeProgramacion) {
      this.lenguajeProgramacion = lenguajeProgramacion;
   }

   public void setTamanoEquipo(int tamanoEquipo) {
      this.tamanoEquipo = tamanoEquipo;
   }

   public String getNombreEquipo() {
      return nombreEquipo;
   }

   public String getUniversidad() {
      return universidad;
   }

   public String getLenguajeProgramacion() {
      return lenguajeProgramacion;
   }

   public int getTamanoEquipo() {
      return tamanoEquipo;
   }

   public void getProgramadores(String[] programadores) {
      this.programadores = programadores;
   }




8
Buenas tardes.
Estoy aprendiendo este lenguaje y me ha surgido la duda de cuando es mejor emplear cada una de las variantes de Scanner.
Muchas gracias. Un saludo.

9
Aprender a programar desde cero / Excepciones
« en: 25 de Junio 2023, 13:47 »
Buenas tardes.
Estoy haciendo (intentando más bien) un pequeño programa que lee un double de entrada que tiene que comprobar si es positivo tratando la excepción de manera que el programa no se detenga y permita nuevamente introducir el dato. Trato la excepción pero no sé como  conseguir que siga leyendo hasta la introducción del dato correctamente. Me podéis echar una mano? Muchas gracias. Un saludo.

10
Aprender a programar desde cero / Re: Interfaces
« en: 15 de Junio 2023, 17:13 »
Buenas tardes.
He intentado resolver el ejercicio pero no acabo de verlo claro. Si me podéis echar una mano. Muchas gracias, un saludo.

11
Aprender a programar desde cero / Re: Interfaces
« en: 13 de Junio 2023, 18:18 »
Buenas tardes.
Se me plantea ahora modificar una práctica anterior haciendo uso de interfaces pero no veo claro el planteamiento. Dejo el código.
Muchas gracias, un saludo.

Siguiendo el ejemplo visto de las Cartas, las Barajas y los Mazos, modificamos Carta para que implemente Comparable
definiendo un “orden natural” para las cartas.
Un posible orden natural sería un orden primero por palos (por orden de lista) y luego por números (de forma ascendente).
Creamos clases que implementen Comparator para crear órdenes distintos al natural. Por ejemplo primero por números
(de forma ascendente) y luego por palos (por orden de lista).
Desde Mazo tendremos ahora dos métodos ordena. Uno que ordena según el orden natural de las cartas y otro que
ordena según un un comparator que se pasa por parámetro. Ambos métodos harán uso de los métodos sort de la clase
Collection.
public class Carta {

   private final  String numero;
   private final  String palo;
      
   public Carta(String numero, String palo) {
      this.numero = numero;
      this.palo = palo;
   }
   /**
    * @return the numero
    */
   public String getNumero() {
      return numero;
   }

   /**
    * @return the palo
    */
   public String getPalo() {
      return palo;
   }

   @Override
   public int hashCode() {
      int hash = 5;
      hash = 47 * hash + (this.numero != null ? this.numero.hashCode() : 0);
      hash = 47 * hash + (this.palo != null ? this.palo.hashCode() : 0);
      return hash;
   }

   @Override
   public boolean equals(Object obj) {
      if (this == obj) {
         return true;
      }

      if (obj == null) {
         return false;
      }
      if (getClass() != obj.getClass()) {
         return false;
      }
      final Carta other = (Carta) obj;
      if (this.numero != other.numero) {
         return false;
      }
      if (this.palo != other.palo) {
         return false;
      }
      return true;
   }

   @Override
   public String toString() {
      
      return numero + " " + palo;
   }

}

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Mazo {

   List cartas;
   private AlgoritmoOrdenacion algoritmo;
   
   public void setAlgoritmo(AlgoritmoOrdenacion algoritmo) {
      // Establece el algoritmo de ordenación
      this.algoritmo = algoritmo;

   }

   public void ordena() {
      // Le pide al algoritmo que ordene
      if (algoritmo == null)
         System.out.println("No se ha establecido ningún algoritmo de ordenación");
      else
         algoritmo.ordena(cartas);

   }

   /**
    * Crea un mazo de cartas vacío
    */
   public Mazo() {
      cartas = new ArrayList();
   }

   /**
    * Devuelve la carta de una posición dada
    *
    * @param posicion La posición de la carta
    * @return La carta de dicha posición
    * @exception IllegalArgumentException si la posición no es válida en la lista
    */
   public Carta getCarta(int posicion) {
      return (Carta) cartas.get(posicion);
   }

   /**
    *
    * Añade una carta en el mazo en la posición dada. Las cartas que están después
    * de la posición dada avanzan una posición
    *
    * @param posicion Posición a añadir
    * @param carta    Carta a añadir
    * @exception IllegalArgumentException si la posición no es válida en la lista
    */
   public void insertarCarta(int posicion, Carta carta) {
      List<Carta> aux = new ArrayList<>();

      // Extraemos las cartas desde la posición dada a un array auxiliar
      for (int i = cartas.size() - 1; i >= posicion; i--) {
         aux.add((Carta) cartas.remove(i));
      }

      // Insertamos la carta pasada por parámetro
      cartas.add(carta);

      // Volvemos a insertar las cartas extraídas
      for (int i = aux.size() - 1; i >= 0; i--) {
         cartas.add(aux.get(i));
      }
   }

   /**
    * Extrae la carta de la posición dada, las demás cartas se corren una posición
    *
    * @param posicion Posición de extracción
    * @return Carta que estaba en dicha posición
    * @exception IllegalArgumentException si la posición no es válida en la lista
    */
   public Carta extraerCarta(int posicion) {
      return (Carta) cartas.remove(posicion);
   }

   /**
    * Devuelve la carta de la cima del mazo
    *
    * @return La carta en la cima del mazo
    */
   public Carta extraerCarta() {
      return (Carta) cartas.remove(cartas.size() - 1);
   }

   /**
    * Añade una carta al final del mazo
    *
    * @param carta Carta a añadir
    */
   public void anadirCarta(Carta carta) {
      cartas.add(carta);
   }

   /**
    * Devuelve el número de cartas del mazo
    *
    * @return número de cartas
    */
   public int numCartas() {
      return cartas.size();
   }

   public void barajar() {
      Collections.shuffle(cartas);
   }

   @Override

   public String toString() {
      return "" + cartas;
   }

}



12
Aprender a programar desde cero / Re: Interfaces
« en: 06 de Junio 2023, 12:54 »
Buenos días.
Haciendo la segunda parte de este ejercicio no consigo devolver la subcadena usando la interfaz BackwardsStringSequenceTokio.
Dejo el código. Muchas gracias, un saludo.

public class Prueba2 {

   public static void main(String[] args) {
      Scanner teclado = new Scanner(System.in);
      System.out.print("Escriba un string: ");
      String entrada = teclado.nextLine();
      System.out.print("Entrada original: "+ entrada);
      System.out.println();
      System.out.print("Cadena invertida: ");
      BackwardsStringSequenceTokio p= new BackwardsStringSequenceTokio(entrada);
      System.out.println(p.salida);
      System.out.print("\nElija una posicion de la secuencia entre 0 y " + (entrada.length() - 1) + ": ");
      int c1 = teclado.nextInt();
      System.out.println("Caracter obtenido: " + p.salida.charAt(c1));
      
      System.out.println("\nElija las posiciones de inicio y fin para hacer una subcadena.");
      System.out.print("Inicio: ");
      int start = teclado.nextInt();
      System.out.print("Fin: ");
      int end = teclado.nextInt();
      String aux= p.salida;

      BackwardsStringSequenceTokio subCadena=p.salida.subSequence(start, end);
      if (subCadena == null)
         System.out.println("Indices no validos");
      else {

         System.out.println("Subcadena obtenida: " );
         System.out.println("Longitud de subcadena: " + subCadena.length());
      }

      System.out.println("\n\t\tFIN DE PROGRAMA");
   
   }

13
Aprender a programar desde cero / Interfaces
« en: 23 de Mayo 2023, 19:37 »
Buenas tardes. Estoy tratando de implementar el apartado del método que devuelve la subsecuencia pero no consigo retornar un array de char vacío en caso de igualdad de índices. Dejo copia de ejercicio.
Muchas gracias, un saludo.

public interface CharSequenceTokio {
   
   
    int length();

    /**
     * Devuelve el char que se situa en el índice indicado por index.
     * Un índice válido toma valores entre 0 y length() - 1.
     * Si el índice no es válido se devuelve el caracter cero (char con valor cero)
     *
     * @param   index   índice del char a ser devuelto.
     * @return  el char localizado en index o el char con valor cero si el índice es incorrecto.
     */
    char charAt(int index);

    /**
     * Devuelve una nueva CharSequenceTokio que es un subsecuencia de esta secuencia.
     * La subsecuencia empieza en el caracter situado en la posición start y acaba
     * en el caracter situado en la posición end - 1.
     * Si start == end se devuelve un CharSequenceTokio sin caracteres.
     * Si start no es una posición válida o si end no es una posición válida o si
     * start > end se devuelve un objeto nulo (null).
     *
     * @param   start   el índice de comienzo, incluído.
     * @param   end     el índice de fin, excluído
     * @return  La subsecuencia especificada o null si los índices no son válidos.
     */
    CharSequenceTokio subSequence(int start, int end);

    /**
     * Devuelve una representación con forma de String de la secuencia de caracteres.
     * La longitud del String será igual a la longitud de la secuencia.
     * @return  Un String que contiene exactamente la secuencia de caracteres.
     */
    public String toString();

}



CharSequenceTokio es un interfaz que representa el comportamiento de una secuencia leíble de elementos de tipo char. Su
funcionamiento es similar a la clase CharSequence de Java, pero como hemos cambiado ligeramente su comportamiento
preferimos renombrarla a CharSecuenceTokio.
Los métodos que incluye CharSequenceTokio son:

• int length()  Devuelve la longitud de esta secuencia de caracteres.
• char charAt(int index)  Devuelve el char que se sitúa en el índice indicado por index. Si el índice no es válido se
devuelve el valor cero directamente
• CharSequenceTokio subSequence(int start, int end)  Devuelve una nueva CharSequenceTokio que es un subsecuencia
de esta secuencia. La subsecuencia empieza en el carácter situado en la posición start y acaba en el carácter situado
en la posición end - 1. Si las posiciones no son válidas devuelve un objeto nulo (null).
• public String toString()  Devuelve una representación con forma de String de la secuencia de caracteres.
 CharSequenceTokio
Define dos clases implementadoras del interfaz CharSequenceTokio: ArrayCharSequenceTokio y BackwardsStringSequenceTokio
• ArrayCharSequenceTokio: Admite en el constructor un array de chars e implementa CharSequenceTokio con dicho array de chars.
• BackwardsStringCharSequenceTokio: Admite en el constructor un String e implementa CharSequenceTokio de dicho String pero
dado la vuelta (leído del final al principio).

14
Aprender a programar desde cero / Re: Ejercicio cartas java
« en: 14 de Mayo 2023, 19:37 »
Buenas tardes.

Siguiendo los pasos que me indicabas he conseguido resolver los métodos de ordenación restantes salvo porque no sé cómo mostrar el método OrdNumIncPalo. Los otros dos métodos OrdPalNumInc y OrdPalNumDec funcionan correctamente. No tengo claro como modificar el toString() para que me muestre los tres métodos.
Si me puedes echar una mano. Muchas gracias, un saludo.


15
Aprender a programar desde cero / Ejercicio cartas java
« en: 20 de Abril 2023, 16:10 »
Buenas tardes.
Cuelgo ejercicio de ordenación de cartas a falta de resolución de varias de sus clases. El cuál no tengo del todo claro.
Muchas gracias, un saludo.

16
Aprender a programar desde cero / Herencia Java
« en: 10 de Marzo 2023, 13:30 »
Buenas tardes.
Estoy tratando de hacer este ejercicio Java pero no consigo ver la solución. Dejo enunciado por si alguien me puede echar una mano.
Muchas gracias. Un saludo.


En la universidad existe una plantilla de personal que está dividida en dos grupos:
•   Personal de Administración y Servicios (PAS): En el personal de administración se encuentra todo el personal que desempeña labores administrativas o de gestión de algún tipo de servicio. En este caso, por simplicidad, solo vamos a considerar que existe personal administrativo y personal informático.
•   Personal Docente Investigador (PDI): Personal que se dedica a la docencia y a la investigación y en el que incluimos a profesores y a investigadores contratados en algún proyecto de investigación.
Todo el personal se identifica con su nombre y DNI y recibe un salario mensual que debemos de calcular, de forma simplificada, como el número de horas de trabajo a la semana multiplicado por el importe/hora de su categoría y por el número de semanas al mes (4).
Los datos de cada tipo de personal son los siguientes (las cantidades no son reales):
•   Administrativos: 37 horas/semana y un importe de 7,5 euros/hora.
•   Informáticos: 40 horas/semanas y un importe de 6 euros/hora.
•   Profesores: 37 horas/semana con un importe de 8 euros/hora.
•   Investigadores: 35 horas/semana con un importe de 7 euros/hora.

Además los profesores y los PAS tienen los siguientes ingresos adicionales:
•   Profesores: A los profesores se les añade un complemento salarial en función de lo que se conoce como sexenios (periodos de 6 años evaluados positivamente), y que se pueden conceder hasta un máximo de 6. En concreto, se les añade 100 euros al mes por sexenio reconocido. Una vez concedido el sexenio el aumento de sueldo se mantiene para siempre.
•   PAS: En un mes determinado los PAS (tanto administrativos como informáticos) pueden acumular horas extras. Cada hora extra se paga a 6 euros/hora. Las horas extra, una vez pagadas, se inicializan a cero de nuevo (por ejemplo, a la hora de calcular el sueldo de personal).

Se pide:
•   Crear una estructura de clases y subclases que represente a los trabajadores de la universidad. En dicha estructura tiene que existir una superclase común a todos los trabajadores que sea Personal.
•   Crear una clase Universidad con una función public static void imprimirNominas(Personal[] listaPersonal) que imprima por pantalla, para cada Personal incluido en listaPersonal, el nombre del personal, su categoría y su sueldo.
•   Crear en la misma clase Universidad, una función obtenerPresupuestoTotal que devuelva el total de dinero que se gasta la universidad en personal.
Para evitar usar decimales en cantidades monetarias podemos trabajar con el dinero en céntimos de Euro y solo convertirlo en euros a la hora de mostrarlo por pantalla.


17
Buenas.
Adjunto el ejercicio pues puede que no lo esté entendiendo del todo bien.

Desarrollar un programa que modele una cuenta bancaria que tiene los siguientes atributos, que deben ser de acceso protegido:
• Saldo, de tipo float.
• Número de ingresos con valor inicial cero, de tipo int.
• Número de retiros con valor inicial cero, de tipo int.
• Tasa anual (porcentaje), de tipo float.
• Comisión mensual con valor inicial cero, de tipo float.
La clase Cuenta tiene un constructor que inicializa los atributos saldo y tasa anual con valores pasados como parámetros. La clase
Cuenta tiene los siguientes métodos:
• Ingresar una cantidad de dinero en la cuenta actualizando su saldo.
• Retirar una cantidad de dinero en la cuenta actualizando su saldo. El valor a retirar no debe superar el saldo.
• Calcular el interés mensual de la cuenta y actualiza el saldo correspondiente.
• Extracto mensual: actualiza el saldo restándole la comisión mensual y calculando el interés mensual correspondiente (invoca el
método anterior).
• Imprimir: muestra en pantalla los valores de los atributos.
---------------------------------------------------------------------------------------------------
La clase Cuenta tiene dos clases hijas:
• Cuenta de ahorros: posee un atributo para determinar si la cuenta de ahorros está activa (tipo boolean). Si el saldo es menor a
100€, la cuenta está inactiva, en caso contrario se considera activa. Los siguientes métodos se redefinen:
1. Ingresar: se puede ingresar dinero si la cuenta está activa. Debe invocar al método heredado.
2. Retirar: es posible retirar dinero si la cuenta está activa. Debe invocar al método heredado.
3. Extracto mensual: si el número de retiros es mayor que 4, por cada retiro adicional, se cobra 1.5€ como comisión
mensual. Al generar el extracto, se determina si la cuenta está activa o no con el saldo.
4. Un nuevo método imprimir que muestra en pantalla el saldo de la cuenta, la comisión mensual y el número de
transacciones realizadas (suma de cantidad de consignaciones y retiros).
--------------------------------------------------------------------------------------------------
Cuenta corriente: posee un atributo de sobregiro, el cual se inicializa en cero. Se redefinen los siguientes métodos:
• Retirar: se retira dinero de la cuenta actualizando su saldo. Se puede retirar dinero superior al saldo. El dinero que se debe
queda como sobregiro.
• Ingresar: invoca al método heredado. Si hay sobregiro, la cantidad consignada reduce el sobregiro.
• Extracto mensual: invoca al método heredado.
• Un nuevo método imprimir que muestra en pantalla el saldo de la cuenta, la comisión mensual, el número de
transacciones realizadas (suma de cantidad de consignaciones y retiros) y el valor de sobregiro.
Realizar un método main que implemente un objeto Cuenta de ahorros y llame a los métodos correspondientes
Directrices generales:
1. Guardaremos el archivo para su entrega con el siguiente formato: M1_13_Nombre_Apellid

Muchas gracias. Un saludo.

18
Buenas tardes.
Tengo una duda referente a la forma en la que introducirme en el mundo de la programación. Actualmente estoy cursando un curso privado de certificación Java que deja mucho que desear. Agradecería algún consejo de hacía donde reorientarme referente a formarme y poder ganarme la vida programando.
Muchas gracias. Un saludo.

19
Buenas tardes.
Estoy haciendo un ejercicio de herencia con una superclase y dos subclases. Me piden en el main implementar un solo objeto de una de las subclases con todos sus métodos pero necesito el atributo junto con sus operaciones de la otra subclase.
Alguna sugerencia?
Muchas gracias, un saludo.

20
Comunidad / Presentación
« en: 30 de Enero 2023, 22:43 »
Buenas noches.
Me llamo Francisco Manuel y estoy aprendiendo Java como lenguaje de iniciación.
Dar de antemano las gracias a todos los miembros de la comunidad por su interés el cuál será devuelto siempre por mi parte.
Un saludo a todos.

Páginas: [1] 2

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".