teslariu

herencia1

Dec 28th, 2022
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. class CajaDeAhorro{
  2. private float saldo
  3.  
  4.  
  5. // setters y getters de saldo
  6.  
  7. public final void extraer(int monto){
  8. if(saldo >= monto){
  9. saldo = saldo - monto;
  10. }
  11. }
  12. }
  13. // Si yo quiero que saldoDescubierto SEA EL MISMO PARA TODAS LAS INSTANCIAS
  14. // debo declarar una atributo de clase y no un atributo de instancia
  15.  
  16. // Observaciones:
  17. // En Python no es así: los atributos de clase pueden ser diferentes en cada
  18. // instancia: static NO SIGNIFICA CONSTANTE:
  19. // puedo modificarlo (por ejemplo, de 5000 a 3000): todos las instancias
  20. // ahora valen 3000, excepto en Python: vale 3000 en la instancia donde se modifica
  21. // y 5000 en el resto
  22.  
  23. // metodos con modificador final: evitan que sean modificados
  24. // Si yo no quiero que un metodo sea redefinido (polimorfismo con redefinicion)
  25. // es un tema de seguridad. Si tengo un metodo extraer no quiero que
  26. // alguna eventual codigo malicioso pueda heredarlo y redefinirlo
  27.  
  28. class CajaDeAhorroDescubierto extends CajaDeAhorro{
  29. private static float saldoDescubierto = 5000; // static, atributo de clase
  30. private float total; // no static, atributo de instancia
  31. //getters y setters
  32.  
  33. //metodo u operacion de instancia
  34. public void extraer(int monto){
  35. total = saldo - monto;
  36. if(total >= saldoDescubierto){
  37. saldo = saldo -monto;
  38. } else {
  39. print("Saldo insuficiente")
  40. }
  41.  
  42. }
  43.  
  44. // metodo u op de clase:
  45. public static float setSaldoDescubierto(int s){
  46. saldoDescubierto = s;
  47. }
  48. }
  49.  
  50.  
  51. CajaDeAhorroDescubierto c1 = new CajaDeAhorroDescubierto();
  52. CajaDeAhorroDescubierto c2 = new CajaDeAhorroDescubierto();
  53. c1.setSaldoDescubierto(3000) // enttonces en c2 tambien vale ahora 3000
  54.  
  55.  
  56.  
  57.  
Advertisement
Add Comment
Please, Sign In to add comment