33
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo, Sonora Mayo de 2013 Desarrollo de Aplicaciones I Introducción a la Programación Orientada a Objetos

UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

UNIVERSIDAD TECNOLÓGICA DE HERMOSILLOT.S.U. EN T.I.C., Área: Sistemas Informáticos

Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos

Hermosillo, Sonora Mayo de 2013

Desarrollo de Aplicaciones I

Introducción a la Programación Orientada a Objetos

Page 2: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Tópicos para esta sesión

AbstracciónEncapsulamientoHerenciaClases y objetosVariables de tipo referenciaMétodos y constructores

Introducción a la POO

Page 3: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Abstracción

La abstracción en POO expresa las características esenciales de un objeto.

Introducción a la POO

La abstracción es una herramienta intelectual que facilita la “chamba” del programador, porque lo autoriza a ignorar, desconocer o discriminar cierta información del(os) objeto(s) que no es relevante de otra sí lo es, dependiendo del contexto en el que se ubique el programa o sistema que se quiera desarrollar.

Page 4: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Abstracción (cont)

Haciendo uso de la abstracción podremos ver de manera general unos cuantos miembros (atributos y métodos) que sí son necesarios para elaborar una clase en el menor tiempo posible y sin tanto esfuerzo.

Introducción a la POO

Page 5: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Beneficios de la Abstracción

Ayuda a que el análisis de la información no nos lleve demasiado tiempo.

Introducción a la POO

El programador se puede concentrar en resolver una parte del problema ignorando completamente los detalles sobre cómo se resuelven el resto de las partes.

Page 6: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Abstracción (cont.)

La abstracción es la estrategia de programación más importante. Sin la abstracción las personas serían incapaces de abordar los problemas complejos.

Introducción a la POO

La pericia de un programador no está en ser veloz para escribir líneas de programa, sino en saber descubrir, en el proceso de diseño, cuáles son las partes del problema, y luego resolver cada una de ellas abstrayéndose de las otras.

Page 7: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Abstracción (el ejemplo más clásico)

Un ejemplo de abstracción es el hecho de que uno puede conducir un automóvil sin ser un mecánico (lo cual probablemente no era cierto con los primeros vehículos).

Introducción a la POO

Al conducir, uno se abstrae de cómo funciona la combustión en el motor. Sólo se requiere saber cómo se maneja el volante, los pedales, y cuales son las reglas del tránsito.

Page 8: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Encapsulamiento o Encapsulación

Una de las maneras más eficientes de mantener la seguridad en las aplicaciones en cualquier lenguaje de programación es el encapsulamiento, además de brindar seguridad a las aplicaciones permite tener una organización muy precisa a la hora de desarrollar.

Introducción a la POO

Una de las premisas de POO, es que la mayoría, sino es que todos, los atributos de un objeto deben ser privados, esto para tener seguridad sobre los valores del objeto, pero entonces... ¿cómo acceder a los atributos de una clase?, la respuesta es: el encapsulamiento. Los métodos de encapsulamiento se utilizan sólo cuando es apropiado entregar los datos a otro objeto que solicite la información.

Page 9: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Encapsulamiento o Encapsulación

En POO, se denomina encapsulamiento al ocultamiento del estado, es decir, de los atributos, de un objeto de manera que sólo se pueden cambiar mediante las operaciones definidas para ese objeto (sus métodos).

Introducción a la POO

Un principio fundamental en la POO es la ocultación de la información, que significa que a determinados datos del interior de una clase no se puede acceder por métodos externos a la clase. El mecanismo principal para ocultar datos es ponerlos en una clase y hacerlos privados.

Page 10: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 11: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 12: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 13: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Encapsulamiento (tipos de acceso a los miembros de una clase)

Distinguimos de cuatro tipos de acceso distinto a los miembros de una clase:

public .- Los miembros public de una clase pueden accederse por los objetos de la misma clase, desde los objetos producidos por las clases herederas (clase hijo) y desde cualquier otra clase que esté escrita en el mismo archivo donde se encuentra la clase.

private .- Los miembros private de una clase únicamente son accesibles para los objetos instanciados de la clase base. NO son accesibles para los objetos creados con las clases herederas ni para otras clases escritas en el mismo archivo donde se encuentra la clase base.

Introducción a la POO

Page 14: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Encapsulamientoprotected .- Los miembros protected de una clase son accesibles para los objetos instanciados de la clase base y por los objetos creados con las clases herederas. NO son accesibles para otras clases escritas en el mismo archivo donde se encuentra la clase base.

(no especificado) .- Los miembros a los cuales no se les ha especificado un tipo de acceso (public, private o protected) son accesibles por los objetos instanciados con la clase base y por otras clases escritas en el mismo archivo donde se encuentra la clase base. No son accesibles por los objetos creados con las clases herederas.

Introducción a la POO

Page 15: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Encapsulamiento

Introducción a la POO

La siguiente tabla muestra los niveles de acceso permitidos por cada especificador:

Tipo de miembro

Accesible desde

La misma clase

Clase derivada (heredada)

Otra clase en el mismo archivo

public √ √ √

protected √ √

private √

( sin especificar ) √ √

Page 16: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Herencia

Es un mecanismo que permite definir nuevas clases a partir de otras ya definidas de modo que si en la definición de una clase indicamos que ésta deriva de otra, entonces la primera -a la que se le suele llamar clase hija- será tratada por el compilador automáticamente como si su definición incluyese la definición de la segunda –a la que se le suele llamar clase padre o clase base –.

Introducción a la POO

Page 17: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Herencia

En orientación a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. A través de ella los diseñadores pueden construir nuevas clases partiendo de una jerarquía de clases ya existente (comprobadas y verificadas) evitando con ello el rediseño, la remodificación y verificación de la parte ya implementada. La herencia facilita la creación de objetos a partir de otros ya existentes, obteniendo características (métodos y atributos) similares a los ya existentes.

Clic aquí para descargar un video sencillo que explica la herencia. http://www.tic-uth.net/jopadu/CSHARP_Herencia_wmv_HD.avi

Introducción a la POO

Page 18: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 19: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 20: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Un objeto es básicamente:

• Los datos (variables) que representan una “entidad”.

• Las operaciones (funciones miembro, métodos) que actúan sobre estos datos, consultando o modificando el estado del objeto.

Page 21: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 22: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 23: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 24: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 25: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 26: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 27: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 28: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 29: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 30: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 31: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Una clase en C#using System;

public class Persona{ protected string nombre; protected string apellidos; protected string telefono; protected date f_nacimiento;}

Persona() { … }

public void mostrarInfoPorPantalla() { Console.WriteLine(“Nombre: “ + nombre); Console.WriteLine(“Apellidos: “ + apellidos); Console.WriteLine(“Teléfono: “ + telefono); Console.WriteLine(“Fecha Nac.: “ + f_nacimiento);}

public int edad() { . . . return edad;}

Introducción a la POO

Page 32: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Introducción a la POO

Page 33: UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,

Fin de la Sesión

Gracias a todos los estudiantes que con su investigación proporcionaron información para integrar este material de estudio para la clase.

Introducción a la POO