programación orientada a objetos (poo) dsaupoo mtra. carolina galaviz i. cbtis no. 37 1

31
Programac ión Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Upload: timoteo-valverde

Post on 11-Apr-2015

119 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

1

Programación Orientada aObjetos (POO)

DSAUPOOMtra. Carolina Galaviz I.

CBTIS No. 37

Page 2: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

2

POO0 Cuando se escribe un programa de computación en un

lenguaje de programación orientado a objetos está creando en su computadora un modelo de alguna parte del mundo real.

0 Las partes con que se construye el modelo provienen de los objetivos que aparecen en el dominio del problema.

0 Estos objetos deben estar representados en el modelo computacional que se está creando.

Page 3: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

3

POO0 Un programa en Java, está formado por objetos que

interactúan entre sí. Y objetos que usan objetos para lograr un fin.

0 Ejemplo: Jefe

Trabajador1

Trabajador4

Trabajador5

trabajador2 trabajador3

Mtra. Carolina Galaviz I. CBTIS No. 37

Page 4: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

4

Clases y objetos

Page 5: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

5

POO0 Los objetos son la materia prima en un sistema orientado a objetos.

0 Los objetos pueden ser vistos como mini abstracciones de componentes del mundo real.

0 Los objetos pueden ser organizados y una clase describe, en forma abstracta, todos los objetos de un tipo en particular.

Page 6: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

6

Un objeto está construido de la siguiente manera:

OBJETO

METODOS

ATRIBUTOS

Page 7: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

7

Objeto:

METODOS

ATRIBUTOSSon características que definen al objeto: datos.

Son acciones, operaciones que sirven para modificar los datos que están relacionados con el objeto.

Page 8: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

8

Clase

0 Para crear un objeto es necesario un molde, a ese molde se le llama: Clase.

Page 9: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

9

Ejemplo:0 Se desea crear un sistema de inscripciones, se

realizará una abstracción de la clase: Alumno.

Las características más relevantes para el sistema son:

NombreMateriasNo. ControlFecha de NacimientoDirecciónPromedioTutor

METODOSATRIBUTOS

Capturar NombreInscribir MateriaAsignar No. ControlCapturar fecha de nacimientoCapturar DirecciónObtener promedio

Page 10: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

10

Objeto de la clase: Alumno0 Nombre: Bryan Jiménez0 Materias: DSAUPOO, Ingles3, BD20 No. Control: 0001230 Fecha de Nacimiento: 180119950 Dirección: Benito Juárez 1230 Promedio: 9.10 Tutor: Esthela García

Entonces: La clase es la generalización de un grupo de objetos, el objeto es una instancia de la clase.

Page 11: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

11

Objeto:

0 Los diferentes objetos de una clase, tienen los mismos cambios; es decir que el número, el tipo de dato y los nombres de los campos de una misma clase son los mismos, mientras que el valor de un campo particular de cada objeto puede ser distinto.

0 Los objetos de clases diferentes pueden tener diferentes campos.

0 Ejemplo: Un circulo tiene un campo “diametro”, mientras que un triangulo tiene los campos “ancho” y “alto”.

Page 12: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

12

Clase

Objetos

Page 13: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

13

Ejemplo

Ahora realiza un ejemplo tú.

Page 14: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

14

Instancias múltiples

0 Se pueden crear múltiples objetos ( o instancias) a partir de una clase.

0 Cada objeto puede tener sus atributos particulares.

0 Si se cambia el atributo de un objeto, se hace utilizando a un método de ese objeto, y esta acción afectará sólo a ese objeto, no a otros.

Page 15: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

15

Clase

Objetos

cambiarColor(azul)

Clase

Objetos

Page 16: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

16

Método

0 Los métodos se definen en la clase del objeto.

0 Todos los objetos de una clase dada tienen los mismos métodos.

0 Todos los métodos se invocan desde los objetos.

0 Ejemplo: Un objeto “circulo1” de la clase “Circulo” se modifica cuando se invoca el método moverDerecha()

Page 17: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

17

Estado

0 Es el conjunto de valores de todos los atributos que definen un objeto.

Page 18: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

18

Page 19: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

19

Algunos conceptos:

0 El modelo de objetos (según Booch) es el hecho de conjugar todos los siguientes elementos en forma sinérgica:

0 Abstracción0 Encapsulación0 Jerarquía0 Modularidad0 Tipos0 Modificador de acceso0 Polimorfismo0 Estado

Page 20: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

20

Abstracción0 La abstracción se basa en identificar las características

esenciales de algún objeto, siempre respecto a la perspectiva del espectador.

Page 21: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

21

Encapsulación0 Es un mecanismo que permite agrupar los datos

(atributos) y el código (métodos) que los manipulan y los mantiene alejados de posibles interferencias y usos indebidos.

0 El acceso a los datos y métodos es en forma controlada a través de una interfaz bien definida.

0 La base del encapsulado es la clase.0 Cada atributo y método tiene asociado un modificador

de acceso que establece quien tiene acceso a los atributos y métodos de la clase.

Page 22: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

22

Modularidad0La modularidad empaqueta abstracciones

relacionadas en unidades discretas.0En java se utilizan los paquetes como el mecanismo

de modularidad, sus dependencias se declaran con la sentencia import.

Page 23: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

23

Modificador de acceso

Los atributos y métodos privados sólo pueden ser accedidos por el código dentro de la clase. (-)Los atributos y métodos publicos pueden ser accedidos desde fuera de la clase . (+)

Page 24: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

24

Jerarquía

0 Una jerarquía es una clasificación u ordenación de abstracciones.

Page 25: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

25

Tipos0 Un Tipo es una caracterización precisa de las

propiedades estructurales o de comportamiento que comparten una serie de entidades.

0 Típicamente, los términos clase y tipo se usan de manera indistinta.

0 Tipo del atributo:(char, byte, short, int, long, float o double)

Page 26: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

26

Polimorfismo0 El polimorfismo es un concepto simple derivado de la teoría de

Tipos, y que significa un objeto y muchas formas.

Se refiere a:0 Es el uso de un mismo nombre para representar o significar más

de una acción.0 Que un mismo mensaje pueda producir acciones totalmente

diferentes cuando se recibe por objetos diferentes del mismo tipo. El polimorfismo representa en nuestro caso la posibilidad de

desencadenar operaciones distintas en respuesta a un mismo mensaje

Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones

Mtra. Carolina Galaviz I. CBTIS No. 37

Page 27: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

… Polimorfismo

Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta

dormir

?

?

Animal

dormir()

León Oso Tigre

Mtra. Carolina Galaviz I. CBTIS No. 37

Page 28: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

… Polimorfismo

Dormir(){en un árbol}

Dormir(){sobrela espalda}

Dormir(){sobre el vientre}

Dormir(){

}

Animal

dormir()

León

dormir()

Oso

dormir()

Tigre

dormir()

Page 29: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Mtra. Carolina Galaviz I. CBTIS No. 37

29

Métodos GET y SET

0 Get: ObtenerSintaxis: public tipo getVariable( ) {Return variable;}0 Set: Asignar public void setVariable(tipo variable ) {this.variable = variable;}

Page 30: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

Y para qué usamos los métodos void?

0 Cuando un método es “void”, significa que no retorna nada

0 Para que un objeto haga algo y ya, no importandonos que fue lo que hizo. Considerese la siguiente conversacion entre dos objetos:

0 A: muevete cinco pasos porfa.B: ok.A: y?B: Y que? Mover es void.A: no me dijiste si lo hiciste o no.

B: no fue lo que me pediste.

Te mueves cinco pasos

porfa

Objeto A Objeto B

Page 31: Programación Orientada a Objetos (POO) DSAUPOO Mtra. Carolina Galaviz I. CBTIS No. 37 1

31

El objeto B tiene definido su método mover así:

public void mover(int pasos){ miPosicion += 5;}

Si deseas que el objeto B te confirme si se movío, entonces se declara “Boolean”, no “Void”

Mtra. Carolina Galaviz I. CBTIS No. 37

Te mueves cinco pasos

porfa

Objeto A Objeto B