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"));
}
}