Esempi Pratici di Programmazione Java: Classi, Eccezioni e Strutture Dati

Classificato in Inglese

Scritto il in italiano con una dimensione di 5,98 KB

Gestione di Conti e Prodotti Finanziari

Di seguito sono riportate le classi per la gestione dei prodotti finanziari, inclusi i conti e le relative eccezioni personalizzate.

Classe Cuenta

public class Cuenta extends ProductoFinanciero  
  {
    public enum Tipo{LIBRETA, AHORRO, VIVIENDA};
     private Tipo tipo;
    public Cuenta(Tipo t, double s, double i)
     {
        super(s,i); // constructor de la superclase
        System.out.println("Constructor de cuenta");
        tipo=t; 
     }
    public Tipo getTipo()
     {
        return tipo;
     }
    public void ingresa(double v)
     {
        saldo+=v; // con la var en prote, puedo accedio a la var de la superclase   
     }
    public void reintegra(double r)throws Exception
     {
        if ( r > getSaldo() )
         {
            throw new SaldoInsuficienteException( "saldo sobrepasado con: " + r );
         }
        saldo -= r;
     }
    public void aplicaInteres()
     {
        saldo += ( getSaldo() * getInteres() );
     }    
    @Override
    public String toString()
    {
      StringBuilder toret = new StringBuilder();
        toret.append( "Cuenta " );
        toret.append( getTipo().toString().toLowerCase() ); // el enumerado
        toret.append( ": " );
        toret.append( super.toString() ); // llama al toString de la superclase
      return toret.toString();
    }
}

Classe Practica51

public class Practica51 
{
 public static void main(String[] args) throws Exception 
 {
  Cuenta c = new Cuenta( Cuenta.Tipo.AHORRO, 9, .01 );
  Prestamo p = new Prestamo( 12, 10000, .10 );
  CuentaComisionReintegro ccr= new
 CuentaComisionReintegro(Cuenta.Tipo.LIBRETA, 9, 0.1);
    BanControl registroSergio = new BanControl("34879987G");
     registroSergio.insertarProductoFinanciero(c);
     registroSergio.insertarProductoFinanciero(p);
     registroSergio.insertarProductoFinanciero(ccr);
    System.out.println("Los productos financieros: " + registroSergio.toString());
   }
}

Classe SaldoInsuficienteException

public class SaldoInsuficienteException extends Exception
{    
    public SaldoInsuficienteException(String m)
     { 
        super(m); // recibe un String que es el mensaje.
     }
    public String toString()
     { 
        return super.toString();      
     }    
}

Algoritmi e Strutture Dati

Fattori Primi

public class FactoresPrimos 
{
 public static List<Integer> factoresPrimos(int x) 
 {
   int n = x;
  List<Integer> toret = new ArrayList<Integer>();
  for (int i = 2; i <= n; i++) 
   {
    while (n % i == 0) 
     {
       toret.add(i);
       n /= i;
     }
   }
    return toret;
 }
 public static void main(String[] args) 
 {
  Scanner teclado = new Scanner(System.in);
  System.out.println("Introduce un Nº x, para ver su descomposición en factores primos: ");
   System.out.println(factoresPrimos(Integer.parseInt(teclado.next())));
 }
}

Classe Cadena

public class Cadena 
{
  ArrayList<Character> valores;
   public Cadena() 
   {
      this.valores = new ArrayList<>();
   }
  public Cadena(String a) 
  {
    this.valores = new ArrayList<>();
    for (int i = 0; i < a.length(); i++) 
     {
        valores.add(a.charAt(i));
     }
   }
  public Cadena(int a) 
  {
    this.valores = new ArrayList<>(a);
  }
  public char get(int i) throws IndexOutOfBoundsException
  {
    return valores.get(i);
  }
  public void set(int i, char c) throws IndexOutOfBoundsException
  {
    valores.set(i, c);
  }
  public void inserta(char c) 
  {
    valores.add(c);
  }
  public void borra(int i) 
  {
    valores.remove(i);
  }
  public void inserta(int i, char c) 
  {
    valores.add(i, c);
  }
  @Override
 public String toString() 
  {
  StringBuilder toret = new StringBuilder();
  for (int i = 0; i < valores.size(); i++) 
   {
     toret.append(valores.get(i));
   }
   return toret.toString();
  }
 public static void main(String[] args) 
  {
   Cadena c1 = new Cadena();
   Cadena c2 = new Cadena("asd");
   Cadena c3 = new Cadena(80);
    System.out.println(c2);
   try
   {
    c1.inserta('h');
    c1.inserta('o');
    c1.inserta('l');
    c1.inserta('a');
   }
   catch(IndexOutOfBoundsException e)
   {
     System.err.println("ERROR, Index out of bounds");
   }
   System.out.println(c1);
  }
}

Classe Diccionario

public class Diccionario<K, V> 
{
 private K k;
 private V v;
 HashMap<K, V> h1;
  public Diccionario() 
  {
    h1 = new HashMap<>();
  }
  public K get(K k) 
  {
    return (K) h1.get(k);
  }
  public void put(K k, V v) 
  {
    h1.put(k, v);
  }
  public void clear() 
  {
    h1.clear();
  }
  public boolean isEmpty() 
  {
    return h1.isEmpty();
  }
   @Override
  public String toString() 
  {
            return h1.toString();
  }
  public static void main(String[] args) 
   {
    Diccionario<Integer,String> d1 = new Diccionario<>();
     d1.put(1, "a");
     d1.put(2, "b");
    System.out.println(d1);
   }
}

Classe ListaTemperaturas

public class ListaTemperaturas 
{
   private final HashMap<String,Double> m1;
   public ListaTemperaturas()
    {
      m1 = new HashMap<>();
    }
   public void inserta(String c, double t)
   {
    m1.put(c,t);
   }
   public double get(String c)
   {
    return m1.get(c);
    }
   public List<String> getCiudades()
    {
        Set<String> k = m1.keySet();
        List<String> toret = new ArrayList<>();
      for(String e: k)
      {
        toret.add(e);
      }
    return toret;
    }
   @Override
  public String toString()
  {
   return m1.toString();
  }
    public static void main(String[] args) 
     {
      ListaTemperaturas lt = new ListaTemperaturas();
      lt.inserta("Orense", 25.0);
      lt.inserta("Vigo", 20.0);
       System.out.println(lt);
       System.out.println(lt.getCiudades());
       System.out.println(lt.get("Vigo"));
     }
}

Voci correlate: