Documente Academic
Documente Profesional
Documente Cultură
Taller de Programación I
Tema 05:
Programación Orientada
a Objetos en Java 01
(versión 2)
Parte I
Conceptos Básicos
de Orientación a Objetos
Conceptos de Orientación a Objetos
●La orientación a objetos es una forma de análisis y diseño de software que permite
desarrollar software más complejo, pero en menor tiempo y de una forma
organizada y más racional.
Lista de atributos:
Lista de atributos:
darleNombre(nombre:String)
● Clase: conjunto infinito de objetos que comparten las mismas características (atributos) y
acciones (métodos) entre sí. Sin embargo, el valor de los atributos no tienen necesariamente
los mismos valores.
FiguraGeometrica: triangulo01
nombre = "Triángulo"
color = "Celeste"
area = 34.1894
numLados = 3
esRegular = false
Clase
FiguraGeometrica
FiguraGeometrica: circulo02
nombre = "Círculo"
color = "Verde"
area = 562.91
numLados = 0
esRegular = true
Conceptos de Orientación a Objetos
●
Paso de mensajes: es un mecanismo invisible que permite que el programa le
pida a una instancia de clase que ejecute una de sus acciones asociadas.
¡Ejecute el método
ladrar()!
Instancia
de Perro (Rex01)
Mensaje en Java:
Rex01.ladrar()
Conceptos de Orientación a Objetos
●
Herencia: es un mecanismo por el cual todos los objetos de una clase adoptan
automáticamente todos los atributos y métodos de otra clase (pero no sus valores).
Perro
Perro Artista
Conceptos de Orientación a Objetos
●
Polimorfismo: es un mecanismo que permite que un método sea aplicado sobre
objetos de diferentes clases, cada uno de ellos respondiendo de forma diferente a la
misma acción aplicada.
Objeto Helicóptero
Mensaje en Java:
volar()
Objeto Avión
Objeto Superman
Parte II
● nombre de la clase
● lista de atributos
● lista de métodos
Diagrama de clases de UML (continuación)
● Algunas cosas a considerar:
2) Visibilidad: este concepto indica los lugares de la aplicación desde donde podrá
llamarse y utilizarse una determinada variable o función. Los tipos de visibilidad
definidos en UML (y en Java) son los siguientes:
● Tipo de datos: char, byte, short, int, long, float, double, String, etc.
Diagrama de clases de UML (continuación)
●3) Atributos de la clase: en Java, se escriben con notación "camello", pero con
minúscula inicial (por ejemplo: cantidadPersonas, tipoColor, etc.) Además, se
acompañan con dos elementos adicionales: el tipo de acceso al atributo y el tipo de
datos que aceptará.
Ejemplos de atributos:
●
nombre: String
edad: byte
altura: float
esAdulto: boolean
Diagrama de clases de UML (continuación)
4) Métodos de la clase: en Java, se escriben con notación "camello", pero con
minúscula inicial (por ejemplo: obtenerEdad, pintar, incrementar, etc.) Además, se
acompañan con tres elementos adicionales: el tipo de acceso al atributo, los
parámetros de entrada (si los tuviera) y el tipo de datos que retornará (en el
caso de que se trate de una función; si es sólo un procedimiento, no se especifica
ninguno).
Por ejemplo:
pintar()
obtenerEdad(): byte
definirColor(color: String)
esHumano(ser: SerVivo): boolean
Diagrama de clases de UML (continuación)
● Los métodos son equivalentes a las subrutinas de otros lenguajes (procedimientos
y subrutinas). Por ejemplo:
pintar() (void)
a) pintar()
b) obtenerEdad(): byte
obtenerEdad() byte
c) definirColor(color: String)
SerVivo
esHumano() boolean
(ser)
MÉTODOS (O SUBRUTINAS)
Diagrama de clases de UML (continuación)
<nombreAtributo>: <tipoDato>
método estático
Parte III
Cardinalidad de relaciones
Relaciones entre clases
● Relaciones: las clases no viven solas dentro de una aplicación, sino que más bien
se vinculan a otras clases a través del significado, del trabajo conjunto o de la
dependencia jerárquica. El vínculo entre dos clases se conoce con el nombre de
relación entre clases y se grafica con una línea recta entre ambas clases
participantes.
● Las relaciones tienen un nombre, que indica cómo se vinculan o trabajan ambas
clases entre sí; también tienen una dirección de uso (unidireccionales o
bidireccionales). Por ejemplo:
(relación bidireccional)
(relación unidireccional)
Relaciones entre clases (continuación)
●Cuando hay dos o más clases se pueden verificar más relaciones entre ellas. Por
ejemplo:
(relación reflexiva)
Relaciones entre clases (continuación)
● Cardinalidad: en las relaciones no siempre participa sólo una instancia de cada
clase; en realidad, las instancias pueden participar en diferentes cantidades. Estas
cantidades se denominan como la cardinalidad de la relación y se indican en el
diagrama de clases utilizando números o símbolos a ambos lados de la línea que
conecta las clases.
Símbolo Cardinalidad
1 uno
N 'N' objetos