El documento describe los conceptos básicos de la programación orientada a objetos. Explica que en POO todo es un objeto con características (datos) y acciones (métodos) y que los programas están compuestos de objetos que se comunican entre sí a través de mensajes. También define conceptos clave como clases, objetos, encapsulamiento, herencia y polimorfismo.
4. Quebrado a, b, c; a = Quebrado_Pedir(); b = Quebrado_Pedir(); c = Quebrado_Sumar(a,b); Quebrado a, b, c; a = new Quebrado(); b = new Quebrado(); a.Pedir(); b.Pedir(); c = a.Sumar(b);
11. Identidad cuenta bancaria antena parabólica Variable Dirección unCredito 10001324 unDebito 54647875 unaCuenta 87896545 unaCuentadeAhorros 87020486 Una tabla de símbolos caballo Doris Residencia de Doris Mi Computadora Una bicicleta roja
16. Ejemplo de Clase Objetos bicicletas Abstraídos en Clase Bicicleta Atributos Tamaño de frame Tamaño de llanta Material ... Métodos Cambio Mover Frenar...
17. Ejemplo de Clase public class Quebrado { private int numerador; private int denominador; public Quebrado(int n, int d) {} public void setNumerador(int n) {} public int getNumerador() {} } UML Java Quebrado - numerador: : int - denominador : int + Quebrado (int, int) + setNumerador (n:int) :void + getNumeradore () :int
32. Herencia: Reusando el código ANTES DESPUES superclase subclases Auto maxFuel maxNroDePasajeros modelo velocidad acelerar() desacelerar() doblarAIzq() doblarADcha() Avion maxAltitud maxFuel maxNroDePasajeros velocidad nroDeMotores acelerar() desacelerar() descender() ascender() Vehiculo maxFuel maxNroDePasajeros velocidad acelerar() desacelerar() Avion maxAltitud nroDeMotores descender() ascender() Auto modelo doblarAIzq() doblarADcha()
33. Herencia: Creando Subclases public class Vehiculo { } public class Auto extends Vehiculo{ } public class Avion extends Vehiculo{ } Java UML Vehiculo Auto Avion
36. Herencia Múltiple Problema de ambigüedad: unVehiculoAnfibio.Desplazarse(); Los lenguajes ofrecen mecanismos para deshacer la ambigüedad (en C++ => unVehiculoAnfibio.VehiculoTerrestre::Desplazarse()).
40. Clases abstractas public abstract class Figura { ... } public class Circulo extends Figura{ ... } public class Rectangulo extends Figura{ ... } Figura f = new Figura(); Figura {Abstracto} Circulo Rectangulo
41.
42. Ejemplo de Polimorfismo Figura Geométrica Atributo: area Método: obtenerArea Atributos: longitud ancho Métodos: Rectangulo obtenerArea Atributo: radio Métodos: Circulo obtenerArea Rectangulo Circulo
43. Ejemplo de Polimorfismo método concreto Figura f = new Rectangulo(); int s = f.obtenerArea(); método abstracto Rectangulo + obtenerArea() Figura {abstracto} + obtenerArea() Circulo + obtenerArea() Método abstracto
44.
45. Mensajes public class Factura { ... i.obtenerPrecio(); ... } public class Item { public obtenerPrecio(){ a.obtenerCosto(); this.calcularPrecio(); } private calcularPrecio(){ ... } }