Está en la página 1de 6

Paradigma POO

La programacin orientada a objetos (POO) surge de la necesidad de contar con


lenguajes que pudieran implementar soluciones computables de una forma ms
parecida a la que utilizamos en la vida real, ya que nosotros concebimos nuestro
mundo como un conjunto de cosas u objetos con propiedades o atributos que los
definen como tal.
Capacidad para encapsular y aislar la informacin del diseo y ejecucin.
Mecanismo del diseo en programacin:
Procedimientos y funciones.
Tipos abstractos de datos (TAD).
Clases: son TAD a los que se aaden mecanismos como herencia, mtodo, etc.

Clases y objetos
Una clase es una plantilla que encapsula los datos y las abstracciones de datos
necesarios para describir el contenido y comportamiento de alguna entidad del mundo
real. Es una descripcin generalizada (patrn o plantilla) que describe una coleccin de
objetos similares.
Un objeto es una instancia de una clase especfica: los objetos heredan los atributos y
operaciones de una clase (su clase padre). Todos los objetos de una clase tienen el
mismo conjunto de atributos y el mismo nmero de operaciones. Difieren solamente en
los valores de sus atributos respectivos.

Para modelar una clase y un objeto se utiliza un lenguaje de modelado llamado


UML (Lenguaje Unificado de Modelado):

Atributos
Un atributo es una propiedad, rasgo o caracterstica de una clase y describe un
rango de valores que la propiedad podr contener en los objetos (instancias).

Lavadora
+marca: String
+modelo: String
+numeroSerie: Integer
+capacidad: Integer

Mtodos y herencias

Las operaciones tambin llamadas mtodos o servicios son algo que la clase
puede hacer o que nosotros u otra clase pueden hacer a una clase.

Lavadora
+marca:
+marca: String
+modelo:
+modelo: String
+numeroSerie:
+numeroSerie: Integer
+capacidad:
+capacidad: Integer
+agregarRopa()
+sacarRopa()
+agregarDetergente()
+lavarRopa()
+filtrarPelusa()

Una generalizacin es una relacin entre un elemento general (llamado superclase


o clase padre) y un caso ms especfico (especializacin) de ese elemento (llamado
subclase o clase hija). La generalizacin es la implementacin del concepto de
herencia. En la generalizacin un hijo puede sustituir al padre. La clase hija hereda
atributos y operaciones de su o sus padres. Una clase hija puede tener sus propios
atributos y operaciones e incluso redefinir o implementar dichas operaciones a
travs del concepto de polimorfismo.

Figura
+origen
+mover()
+cambiarTamao()
+dibujar()

Rectangulo
+esquina

Circulo
+radio

Poligono
+puntos
+dibujar(valor: Integer)

Cuadrado

Agregacin y asociacin

La relacin de asociacin es el tipo de relacin bsico entre dos clases. Se representa


mediante una linea donde podemos incluir roles, cardinalidades, direccin y restricciones.
Suele implementarse como variables de instancia de una clase en otra.

Con respecto a la implementacion, podriamos tener algo como:

//asociacin: obj1 y obj2 tienen una relacin.


public class Obj1 { void func(Obj2 obj2) {} };

Una relacin de agregacin es un tipo particular de asociacin aparecido despus y que


permite describir cuando una clase est formada por otras clases. En las agregaciones, el
ciclo de vida de una parte es independiente del ciclo de vida del todo, es decir, que si el
padre se elimina, no se eliminan sus hijos. En el diagrama aparecen con una punta de
flecha en forma de diamante negro en la clase padre. El cdigo podra ser:

//agregacin: obj1 posee a obj2 que se lo han prestado: cuando obj1 muere obj2 puede
vivir.
public class Obj1 { private Obj2 obj2; Obj1(Obj2 obj2) { this.obj2 = obj2; } }

Una relacin de composicin permite describir el mismo tipo de relacin que las
agregaciones pero, por el contrario, la dependencia de sus ciclos de vida es mas fuerte: si
el padre se elimina tambin se eliminan todos sus hijos, aunque una parte puede ser
eliminada sin eliminar el todo. En el diagrama aparecen con una punta de flecha en forma
de diamante blanco en la clase padre. En cdigo:

//composicin: obj1 posee a obj2 y es responsable de su tiempo de vida: cuando obj1


muere obj2 tambin muere.
public class Obj1 { private Obj2 obj2 = new Obj2(); }

Asociacin Las asociaciones son instancias de clases dentro de otras clases, pero
sin ninguna relacion directa o indirecta, solo estan relacionadas.
La agregacin La dependencia o relacin de uso ASOCIACIN Y AGREGACIN
Asociacin Directa La asociacin se podra definir como el momento en que dos
objetos se unen para trabajar juntos y as, alcanzar una meta. En una relacin
todo-parte una instancia forma parte de otra. En la vida real se dice que A est
compuesto de B o que A tiene B. La diferencia entre asociacin y relacin todoparte radica en la asimetra presente en toda relacin todo-parte. En teora se
distingue entre dos tipos de relacin todo-parte: Una clase A usa una clase B
cuando no contiene atributos de la clase B pero, o bien utiliza alguna instancia de
la clase B como parmetro en alguno de sus mtodos para realizar una operacin,
o bien accede a sus atributos (clases con mtodos amigos). JAVA public class
Padre {
}
public class Hijo {

Padre padre;