Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paradigma Oo
Paradigma Oo
Introduccin a la unidad
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.
LO QUE S
Antes de iniciar con el estudio de la unidad, escribe tu propia definicin sobre las
siguientes palabras.
Clase
Objeto
Programacin Orientada a objetos
Polimorfismo
Resumen de la unidad
Actualmente una de las reas de mayor aplicacin tanto en la industria como en el
mbito acadmico para la ingeniera de software es la Programacin Orientacin a
Objetos (POO). La base conceptual son los objetos, sus relaciones e interrelacin.
Los objetos son entidades que tienen:
Un estado: los datos que un objeto tiene en un momento determinado.
Un comportamiento: los procedimientos o mtodos que contiene un objeto,
es decir, las operaciones asociadas al objeto.
Una identidad: un identificador que hace una referencia nica al objeto.
Bajo esta visin, un programa viene a ser representado por un conjunto de objetos
que colaboran entre s para realizar una o ms tareas.
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Desarrollo
Es el paradigma que define objetos y clases como la base para la programacin.
Cada objeto est definido por sus atributos y su comportamiento est definido por
las operaciones que dichos objetos pueden hacer. La programacin orientada a
objetos expresa un programa como un conjunto de estos objetos, que colaboran
entre ellos para realizar tareas. Esto permite hacer los programas y mdulos ms
fciles de escribir, mantener y reutilizar.1 Programacin orientada a objetos 01/08,
material
en
lnea,
disponible
en:
en
lnea,
disponible
en:
http://cea-
ACTIVIDAD 1
Revisa el contenido las pginas de Programacin orientada a objetos tanto de
Wikipedia http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
como de Monografias.com
http://www.monografias.com/trabajos/objetos/objetos.shtml
Elabora una tabla de comparacin de ambas pginas sobre los enfoques que
presentan sobre el paradigma orientado a objetos.
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Descripcin
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Desarrollo
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.
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Horas (ANEXO 1)
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Objeto
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Descripcin
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Desarrollo
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
Lavadora
+marca: String
+marca: String
+modelo: String
+modelo: String
+numeroSerie: Integer
+numeroSerie: Integer
+capacidad: Integer
+capacidad: Integer
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
Lavadora
+marca: String
+marca: String
+modelo: String
+modelo: String
+numeroSerie: Integer
+numeroSerie: Integer
+capacidad: Integer
+capacidad: Integer
+agregarRopa()
+agregarRopa()
+sacarRopa()
+sacarRopa()
+agregarDetergente()
+agregarDetergente()
+lavarRopa()
+lavarRopa()
+filtrarPelusa()
+filtrarPelusa()
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Lavadora
Lavadora
+marca: String
+marca: String
+modelo: String
+modelo: String
+numeroSerie: Integer
+numeroSerie: Integer
+capacidad: Integer
+capacidad: Integer
+agregarRopa()
+agregarRopa()
+sacarRopa()
+sacarRopa()
+agregarDetergente()
+agregarDetergente()
+lavarRopa()
+lavarRopa()
+filtrarPelusa()
+filtrarPelusa()
10
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Seala con color amarillo los datos y con color azul los mtodos.
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Descripcin
11
Desarrollo
Entre clases se pueden entablar relaciones, ya que muy difcilmente una clase est
aislada del resto. Una relacin es una conexin entre elementos. Las tres relaciones
ms importantes son:
Dependencia
Generalizacin (herencia)
Asociacin:
o Agregacin
o Composicin
Depende
Depende
Evento
Evento
Una asociacin es una relacin estructural que especifica que los objetos de un
elemento estn conectados con los objetos de otro.
Persona
Persona
12
Trabaja para
Trabaja para
Empresa
Empresa
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Persona
Persona
1..*
1..*
Esposo
Esposo
1
1
Esposa
Esposa
1
1
Tiene
Tiene
Triciclo
Triciclo
Empresa
Empresa
1
1
Rueda
Rueda
3
3
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
13
Mesa
Mesa
11
Superficie
Superficie
14
11
11
44
Pata
Pata
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
ACTIVIDAD 1
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
15
Captulo
Pginas
Sitios electrnicos
Sitio
16
Descripcin
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Desarrollo
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
Figura
+origen
+origen
+mover()
+mover()
+cambiarTamao()
+cambiarTamao()
+dibujar()
+dibujar()
Rectangulo
Rectangulo
+esquina
+esquina
Circulo
Circulo
+radio
+radio
Poligono
Poligono
+puntos
+puntos
+dibujar(valor: Integer)
+dibujar(valor: Integer)
Cuadrado
Cuadrado
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
17
Motor
Motor
ToroMecanico
ToroMecanico
ACTIVIDAD 1
Elabora un cuadro con los datos obtenidos donde indiques los tipos de herencia y
su significado.
18
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Arrastra a los espacios en blanco, las frases que completen correctamente cada
oracin.
1.
2.
3.
4.
5.
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Descripcin
19
Desarrollo
Es cuando las operaciones de los objetos de una misma clase tienen
comportamientos diferentes. Incluso el comportamiento de la clase padre difiere del
comportamiento de las clases hijas. Es obvio que comparten el mismo nombre.
Existen dos tipos de polimorfismo:
Sobrecarga
Es cuando un mtodo (operacin) de una clase recibe diferentes parmetros para
realizar su tarea.
Sobreescritura
Es cuando el comportamiento de un mtodo (operacin) es diferente con respecto a
las dems instancias o incluso al mismo padre. Esto significa que se redefine el
cdigo del mtodo. Cuando esto pasa, es necesario definir al mtodo padre como
abstracto; esto es, no definir ningn comportamiento en el padre, slo el nombre,
para dejarlo a las instancias que lo definan segn sus necesidades.
20
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
ACTIVIDAD 1
Sobrescritura
de
mtodos
en
Java
(Overriding)
http://monillo007.blogspot.com/2008/01/sobrescritura-de-mtodos-en-java.html,
enviar el cdigo fuente de la clase que se especifica en el siguiente diagrama:
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
21
ACTIVIDAD 2
22
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Verdadera
1 Figura hereda de Circulo
2 El mtodo edo() se sobreescribe en Circulo
Falsa
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
23
Desarrollo
La visibilidad se aplica a los atributos y a las operaciones de una clase, y a la misma
clase tambin. Establece la proporcin en que otras clases podrn utilizarlos.
Existen tres niveles de visibilidad:
Nivel privado: slo la clase original puede utilizar el atributo u operacin. Para
el nivel privado se utiliza el lexema
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
ACTIVIDAD 1
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Descripcin
25
Desarrollo
Un diagrama de clases es una representacin grfica que modela a las clases y sus
relaciones. La notacin estndar para un diagrama de clases es la que define UML.
Ejemplo:
Trabajador
Trabajador
+id: int
+id: int
+nombre: String
+nombre: String
+cuotaIMSS: int
+cuotaIMSS: int
+numSS: int
+numSS: int
+comision: int
+comision: int
+paga: int
+paga: int
+calcularPaga()
+calcularPaga()
+main(args[]: String)
+main(args[]: String)
Empleado
Empleado
+sueldo: int
+sueldo: int
+impueto: int
+impueto: int
+calcularPaga()
+calcularPaga()
+main(args[]: String)
+main(args[]: String)
26
trabajador1 : Trabajador
trabajador1 : Trabajador
comision = 10
comision = 10
cuotaIMSS = 5
cuotaIMSS = 5
paga = 100
paga = 100
consultor1 : Consultor
consultor1 : Consultor
hora = 8
hora = 8
tarifa = 20
tarifa = 20
Consultor
Consultor
+hora: int
+hora: int
+tarifa: int
+tarifa: int
+calcularPaga()
+calcularPaga()
+main(args[]: String)
+main(args[]: String)
empleado1 : Empleado
empleado1 : Empleado
sueldo = 100
sueldo = 100
impueto = 25
impueto = 25
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
ACTIVIDAD 1
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
27
Verdadera
Falsa
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
28
Descripcin
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Desarrollo
Al igual que el paradigma imperativo, prcticamente con los lenguajes orientados a
objetos se puede hacer cualquier cosa: controlar el plan de vuelo de una aeronave,
aplicaciones para Web, aplicaciones grficas, dispositivos mviles, videojuegos,
realidad virtual, chips de memoria, etc. Algunos ejemplos de lenguajes son:
Ada
C++
C#
Delphi
Eiffel
Java
Objective-C
Oz
PowerBuilder
Python
Ruby
Smalltalk
VB.NET
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
29
ACTIVIDAD 1
Qu es UML.
30
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
ACTIVIDAD 3
Ejecuta el siguiente cdigo y explica la diferencia entre Java y JavaScript. Los dos
programas son OO, pero no se ejecutan de la misma forma:
<HTML>
<!-este es un ejemplo de POO-->
<HEAD>
<TITLE>EJEMPLO DEL HOLA MUNDO CON UN
INTERPRETE Y UN COMPILADOR</TITLE>
</HEAD>
<BODY>
<B>
<CENTER>
Ejemplo de un programa interpretado y
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
31
//
// Applet HolaMundo de ejemplo
//
import java.awt.Graphics;
import java.applet.Applet;
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
33
1 Programacin
orientada a objetos
2 clases
3 relaciones
34
4 general
5 diseo
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
35
36
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
37
a)
Lavadora
b)
Lavadora
agregarRopa()
sacarRopa()
agregarDetergente()
c)
miLavadora:Lavadora
d)
38
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
Bibliografa bsica
Autor
Captulo
Pginas
Sitios electrnicos
Sitio
Descripcin
LO QUE APREND
Identifica los conceptos principales vistos en esta unidad, despus junto con tus
compaeros formen equipos de 5 integrantes.
Cada equipo elaborar un mapa conceptual con los conceptos que identificaron
cada uno de sus integrantes. Para identificar la participacin de cada uno, utilicen
un color o tipo de letra que los distinga.
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
39
Objeto
Un objeto representa un tem individual e identificable, o una entidad real o
abstracta, con un papel definido en el dominio del problema. Un objeto tiene:
Estado, comportamiento e Identidad.
Clase
Conjunto de objetos que comparten una estructura y comportamiento comunes.
Una Clase representa una abstraccin, la esencia que comparten los objetos. Las
clases actan como intermediarias entre una abstraccin y los clientes que
pretenden utilizar la abstraccin
40
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
MESOGRAFA
Bibliografa bsica
Bibliografa complementaria
Sitios electrnicos
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM
41
42
Programacin
Licenciatura en Informtica a Distancia
FCA-UNAM