Fundamentos de la programación orientada a objetos

Slides:



Advertisements
Presentaciones similares
Programación orientada a objetos en Visual Basic .NET
Advertisements

Métodos y parámetros.
Unidad 3 Lenguajes .Net y POO
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
POLIMORFISMO UNIDAD 4.
Herencia en C#.
POLIMORFISMO "una interfaz, múltiples métodos".
Lenguaje de programación Java
Arquitectura CLARO-TECNOTREE
Programación Orientada a Objetos
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
La Programación Orientado a Objetos
1.1 Concepto de Tipo de Datos Abstracto.
Lección 1 Introducción a la POO
Aplicación del paradigma orientado a objetos
Diseño y programación de
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
Encapsulamiento y Abstracción
Programación Orientada a Objetos en Java
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Modificadores.
TALLER DE PROGRAMACIÓN III
PROGRAMACION ORIENTADA A OBJETOS
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
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 de los datos y Orientación a Objeto Clase 13.
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
 2003 Prentice Hall, Inc. All rights reserved. 1 Capítulo 6: Clases y Abstracción de Datos Índice del capítulo 6.1 Introducción 6.2 Estructuras 6.3 Clases.
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación Orientada a Objetos
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.
1 Interfaces y Clases Internas ELO-329: Diseño y programación orientados a objetos Agustín J. González.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Facultad de Ingeniería
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
Programación Orientada a Objetos: CLASES Y OBJETOS
Clases “ Es una Abstracción de un elemento del mundo real ”
Herencias Conceptos básicos i
Programación Orientada a Objetos Unidad 5. Los objetos son entidades que combinan estado Contiene toda la información denominados atributos REPASO Cada.
Modelado UML Diagrama de Clases
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Fundamentos de la programación orientada a objetos
Transcripción de la presentación:

Fundamentos de la programación orientada a objetos

Descripción general Clases y objetos Uso de la encapsulación El lenguaje C# y la orientación a objetos Definición de sistemas orientados a objetos

Clases y objetos ¿Qué es una clase? ¿Qué es un objeto? Comparación de clases y estructuras Abstracción

¿Qué es una clase? ¿COCHE? Para el filósofo… Un artefacto de clasificación humana Clasificamos según un comportamiento o atributos comunes Acordamos descripciones y nombres de clases útiles Creamos vocabulario; nos comunicamos; ¡pensamos! Para el programador orientado a objetos… Una construcción sintáctica con nombre que describe un comportamiento y atributos comunes Una estructura de datos que incluye datos y funciones

¿Qué es un objeto? Un objeto es una instancia de una clase Los objetos se caracterizan por: Identidad: Los objetos se distinguen unos de otros Comportamiento: Los objetos pueden realizar tareas Estado: Los objetos contienen información

Comparación de clases y estructuras Una estructura define un valor Sin identidad, estado accesible, sin comportamiento añadido Una clase define un objeto Identidad, estado inaccesible, comportamiento añadido struct Time class BankAccount { { public int hour; ... public int minute; ... } }

Abstracción La abstracción es ignorancia selectiva Decidir qué es importante y qué no lo es Concentrarse en lo importante y depender de ello Ignorar lo que no es importante y no depender de ello Usar encapsulación para forzar una abstracción El objetivo de la abstracción es no perderse en vaguedades y crear un nuevo nivel semántico en el que se pueda ser absolutamente preciso. Edsger Dijkstra

Uso de la encapsulación Combinación de datos y métodos Control de la visibilidad de acceso ¿Por qué se encapsula? Datos de objetos Uso de datos estáticos Uso de métodos estáticos

Combinación de datos y métodos Combinación de datos y métodos en una sola cápsula La frontera de la cápsula crea un espacio interior y otro exterior Retirar( ) Retirar( ) saldo saldo Ingresar( ) Ingresar( ) ¿CuentaBancaria ? ¿CuentaBancaria ?

Control de la visibilidad de acceso Los métodos son públicos, accesibles desde el exterior Los datos son privados, accesibles sólo desde el interior Retirar( ) Retirar( ) û saldo saldo Ingresar( ) Ingresar( ) ¿CuentaBancaria ? ¿CuentaBancaria ?

û ¿Por qué se encapsula? Porque permite el control Retirar( ) Porque permite el control El objeto se usa sólo con los métodos públicos Porque permite el cambio El uso del objeto no varía si cambia el tipo de los datos privados Ingresar( ) û saldo 12,56 Retirar( ) Ingresar( ) euros 12 céntimos 56

Datos de objetos Los datos de objetos describen información para objetos concretos Por ejemplo, cada cuenta bancaria tiene su propio saldo. Si dos cuentas tienen el mismo saldo, será sólo una coincidencia . Retirar( ) Retirar( ) Ingresar( ) Ingresar( ) saldo 12,56 saldo 12,56 prop. “Juan" prop. “Pedro"

û û Uso de datos estáticos Los datos estáticos describen información para todos los objetos de una clase Por ejemplo, supongamos que todas las cuentas comparten el mismo interés. No sería conveniente almacenar el interés en todas las cuentas. ¿Por qué? Retirar( ) Retirar( ) Ingresar( ) Ingresar( ) saldo 12,56 saldo 99,12 û û interés 7% interés 7%

Uso de métodos estáticos Los métodos estáticos acceden sólo a datos estáticos Un método estático se llama en la clase, no el objeto La clase cuenta Un objeto cuenta Retirar( ) û Interés( ) Ingresar( )  saldo 99,12 û interés 7% prop. “Pedro" Las clases contienen datos y métodos estáticos Los objetos contienen datos y métodos de objetos

El lenguaje C# y la orientación a objetos “Hola, mundo” de nuevo Definición de clases simples Instancias de nuevos objetos Uso del operador this

“Hola, mundo” de nuevo using System; class Hello {   class Hello { public static int Main( ) Console.WriteLine(“Hello, World”); return 0; }

Definición de clases simples Datos y métodos juntos dentro de una clase Los métodos son públicos, los datos son privados class BankAccount { public void Withdraw(decimal cantidad) { ... } public void Deposit(decimal cantidad) private decimal balance; private string name; } Métodos públicos describen un comportamiento accesible Campos privados describen un estado inaccesible

Instancias de nuevos objetos Al declarar una variable de clase no se crea un objeto Para crear un objeto se usa el operador new class Program { static void Main( ) Reloj ahora; ahora.hora = 11; Cuenta Bancaria suya = new CuentaBancaria( ); suya.Ingresar(999999M); } ahora hora minuto suya nuevo objeto CuentaBancaria ...

Uso de la palabra reservada this La palabra reservada this apunta al objeto usado para la llamada al método Es útil en caso de conflicto entre identificadores de distintos ámbitos class CuentaBancaria { ... public void PoneNombre(string nombre) { this.nombre = nombre; } private string nombre; Si esta instrucción fuera nombre = nombre; ¿qué ocurriría?

Definición de sistemas orientados a objetos Herencia Jerarquías de clases Herencia sencilla y múltiple Polimorfismo Clases base abstractas Interfaces

Herencia La herencia indica una relación “es un tipo de" La herencia es una relación entre clases Las nuevas clases añaden especialización a las existentes Músico Generalización Clase base Violinista Especialización Clase derivada ¿Es éste un buen ejemplo de herencia ?

Jerarquías de clases Las clases con relaciones de herencia forman jerarquías de clases Músico toca Instrumento musical Músico de cuerda toca Instrumento de cuerda ??? Violinista toca Violín ???

Herencia sencilla y múltiple Herencia sencilla: derivadas de una clase base Herencia múltiple: derivadas de dos o más clases base Instrumento de cuerda Instrumento musical Con teclas Violín Instrumento de cuerda Violín tiene una sola clase base directa Instrumento de cuerda tiene dos clases base directas

Polimorfismo El nombre del método reside en la clase base Los distintos cuerpos del método residen en las clases derivadas Músico de cuerda Un método sin cuerpo se llama operación AfinaTuInstrumento( ) Guitarrista Violinista AfinaTuInstrumento( ) AfinaTuInstrumento( )

Clases base abstractas Algunas clases existen sólo para ser clases base No tiene sentido crear instancias de estas clases Estas clases son abstractas No se pueden crear instancias de clases abstractas Músico de cuerda { abstract } Se pueden crear instancias de clases concretas Guitarrista « concrete » Violinista « concrete »

Interfaces Las interfaces contienen sólo operaciones, no implementación Músico « interface » Nada más que operaciones. No se pueden crear instancias de una interfaz. Músico de cuerda { abstract } Puede contener implementación. No se pueden crear instancias de una interfaz. Implementa las operaciones heredadas. Se pueden crear instancias de una clase concreta. Violinista « concrete »

Práctica – Creación y uso de clases