Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CajaDeAhorro{
- private float saldo
- // setters y getters de saldo
- public final void extraer(int monto){
- if(saldo >= monto){
- saldo = saldo - monto;
- }
- }
- }
- // Si yo quiero que saldoDescubierto SEA EL MISMO PARA TODAS LAS INSTANCIAS
- // debo declarar una atributo de clase y no un atributo de instancia
- // Observaciones:
- // En Python no es asÃ: los atributos de clase pueden ser diferentes en cada
- // instancia: static NO SIGNIFICA CONSTANTE:
- // puedo modificarlo (por ejemplo, de 5000 a 3000): todos las instancias
- // ahora valen 3000, excepto en Python: vale 3000 en la instancia donde se modifica
- // y 5000 en el resto
- // metodos con modificador final: evitan que sean modificados
- // Si yo no quiero que un metodo sea redefinido (polimorfismo con redefinicion)
- // es un tema de seguridad. Si tengo un metodo extraer no quiero que
- // alguna eventual codigo malicioso pueda heredarlo y redefinirlo
- class CajaDeAhorroDescubierto extends CajaDeAhorro{
- private static float saldoDescubierto = 5000; // static, atributo de clase
- private float total; // no static, atributo de instancia
- //getters y setters
- //metodo u operacion de instancia
- public void extraer(int monto){
- total = saldo - monto;
- if(total >= saldoDescubierto){
- saldo = saldo -monto;
- } else {
- print("Saldo insuficiente")
- }
- }
- // metodo u op de clase:
- public static float setSaldoDescubierto(int s){
- saldoDescubierto = s;
- }
- }
- CajaDeAhorroDescubierto c1 = new CajaDeAhorroDescubierto();
- CajaDeAhorroDescubierto c2 = new CajaDeAhorroDescubierto();
- c1.setSaldoDescubierto(3000) // enttonces en c2 tambien vale ahora 3000
Advertisement
Add Comment
Please, Sign In to add comment