Tema #1 Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
ULTRASONDO EN RODILLA MENISCOS Y LIGAMENTOS
Programación orientada a objetos en Visual Basic .NET
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
Universidad San Martín de Porres
1 LA UTILIZACION DE LAS TIC EN LAS MICROEMPRESAS GALLEGAS. AÑO mayo 2005.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO de Junio de 2005.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 5.- 1ª PARTE. EL A.O. Y SUS APLICACIONES
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Aladdín-respuestas 1.Vivía 2.Era 3.Amaba 4.Quería 5.Gustaban 6.Se sentía 7.Salía 8.Tenía 9.Decidió 10.escapó 11. Se vistió 12. Conoció 13. Vio 14. Pensó
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
Unidad 3 Lenguajes .Net y POO
PROGRAMACION ORIENTADA A OBJETOS
Mulán /75 puntos. 1.Querían 2.Gustaban 3.Escuchó 4.Dijo 5.Tenía 6.Ayudaron 7.Maquillaron 8.Arreglaron 9.Dio 10.Estaba 11.Iba 12.Quería 13.Salió 14.Gritó
Montículos Daniel González Pérez Cristina Sánchez Aragón
1. Apoyo exterior sobre ala inferior de viga de acero
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
DESCRIPCION DE SISTEMAS
Phone2Wave-Server Manual de Operación.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
UML 1.4 Peter Emerson Pinchao Solis.
50 principios La Agenda 1.- Presentar un único interlocutor a los clientes. 2.- Tratar de modo distinto a las diferentes clases de clientes. 3.- Saber.
Parte 3. Descripción del código de una función 1.
ALGORITMICA II - Tipos Abstractos de Datos (TAD)
Calendario 2008 Imágenes variadas Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2008.
Arquitectura CLARO-TECNOTREE
EL OSO APRENDIZ Y SUS AMIGOS
Introducción a la Orientación a Objetos
La Programación Orientado a Objetos
50 principios 1. Los clientes asumen el mando.
1 PROYECTO DE PRESUPUESTO DE EGRESOS DE LA FEDERACION 2002 COORDINACIÓN DE POLITICA ECONOMICA GP-PRD.
Ecuaciones Cuadráticas
¡Primero mira fijo a la bruja!
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Aplicación del paradigma orientado a objetos
PROGRAMACION ORIENTADA
Programación Orientada a Objetos en Java
Módulo 2: Condiciones Generales de Trabajo
MSc. Lucía Osuna Wendehake
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
Realimentacion de la salida
Programación Orientada a Objetos usando C++
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIETADA A OBJETOS
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.
Manual de Procedimientos Procedimiento de ejecución del programa de
Herramienta FRAX Expositor: Boris Inturias.
 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.
FUNDAMENTOS DE CALIDAD EN LA GESTIÓN PÚBLICA
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Herencia y tipos ● Cuanta memoria se debe asignar a un objeto cuando se asigna en la pila ● La asignación debe hacerse antes de que se conozca la cantida.
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
PROGRAMACION OOP Ing. Miguel Jaime IBM ACE Certificación.
Facultad de Ingeniería
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
Programación Orientada a Objetos: CLASES Y OBJETOS
La Programación Orientado a Objetos
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
2015-BM5A. Introducción Durante años, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvían una y otra vez los mismos.
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.
Transcripción de la presentación:

Tema #1 Programación Orientada a Objetos Universidad Autónoma Gabriel René Moreno Elaborado por: Ing. Juan Carlos Contreras Villegas Tema #1 Programación Orientada a Objetos

Objetivos Los objetivos del presente tema son: Conocer los conceptos la programación orientada a objetos Utilizar la notación de UML para la representación de los diagramas de clases. Implementar los conceptos realizando pequeños programas demo C++

Características Esta basado en Objetos, se modela y se piensa en los Objetos y lo que estos pueden hacer, o lo que se puede hacer con estos. Se pueden construir fácilmente nuevas aplicaciones sin mucho esfuerzo La Herencia puede ser una herramienta muy útil en OOP, y al mismo tiempo puede ser FATAL.

P.O.O. - Lenguajes Ada Modula Smalltalk (Alan Kay) Java (Sun Microsystems) Eiffel C++ Object Pascal C#

Conceptos Clases & Objetos Atributos y Métodos Encapsulamiento Herencia Polimorfismo Generalización, Asociación, Agregación

Abstracción Concepto. Se define como la capacidad para examinar algo sin preocuparse de sus detalles internos. Existen dos tipos de abstracciones: abstracción de datos y abstracción funcional

Abstracción de Datos Consiste en utilizar los datos sin preocuparse por los detalles de su implementación, es decir, lo importante es saber que tipo de información se puede utilizar y no como está almacenado Que Atributo Como Campo

Abstracción funcional Consiste en saber que es lo que hace un determinado proceso, pero no como lo hace. Por ejemplo el proceso Ordenar de la clase Vector, sabemos que el método ordenará los elementos del vector, pero no nos interesa como lo hará. Que  método Como  algoritmo

Encapsulamiento Consiste en reunir varias cosas para ser manipuladas como una sola unidad. Por ejemplo al definir variables de tipo Registro estamos encapsulando los campos del registro. Al definir una clase estamos encapsulando los atributos y los métodos.

Abstracción y Encapsulamiento La abstracción y el encapsulamiento son conceptos complementarios La abstracción se enfoca a la vista exterior de un objeto El encapsulamiento previene a otros objetos ver su interior, donde el comportamiento de la abstracción se ha realizado.

Ocultamiento Consiste en no permitir el acceso a los componentes de una clases (atributos, métodos) Esto se logra con la visibilidad que ofrecen los lenguajes de programación. Privado: Solo los miembros de la clase tienen acceso Protegido: Solo los miembros de la clase y sus derivados tienen acceso Público: Todos tienen acceso

Modularidad Este concepto ya viene desde la programación modular, y se refiere al hecho de realizar un programa por partes, a las cuales se las denomina módulos. Un módulo es un archivo que contiene un conjunto de declaraciones y/o procesos. En OOP normalmente un módulo contiene la interfaz y la implementación de un o más clases relacionadas.

CLASE

CLASE Una clase representa a un conjunto de objetos que comparten una estructura y un comportamiento comunes. La estructura de un objeto se define en su clase, por lo que un objeto es en realidad la instancia de una clase.

CLASE Llacua – Vasquez “Es una entidad que tiene Atributos(datos) y Procesos(métodos) inherentes al propósito y funcionamiento de la misma. Los atributos identifican las características de la clase y los procesos establecen su comportamiento”

CLASE Luis Joyanes Aguilar “Una Clase es un tipo definido por el usuario(programador) que determina las estructuras de datos y las operaciones asociadas con este tipo” “La Clase es simplemente un modelo que se utiliza para describir uno o más objetos del mismo tipo”

OBJETO Un objeto es una abstracción de una entidad del mundo real. Toda interacción con el mundo externo es por medio de una interfase.

OBJETO Un objeto tiene: Un estado Un comporta-miento bien definido Una identidad única

Estado El estado de un objeto se compone de todas las propiedades de un objeto (estáticas) Y los valores asociados a ellas (dinámicos). Estos valores pueden ser: Simples O denotar a otro objeto. Estado = Atributos = Datos miembro

ATRIBUTOS Concepto: Características que definen a la clase, es lo que el usuario (de la clase) puede ver. Es la abstracción. Otro concepto: variables que están dentro de los objetos y que contienen los valores del objeto. También son llamados: propiedades, datos miembro.

ATRIBUTOS – Ejemplo1 Una Fracción está definido por un par de números naturales, los cuales se denominan el numerador y denominador. num_ den Fraccion Numerador Denominador

ATRIBUTOS – Ejemplo2 Un Fecha está definido por tres datos: día, mes y año. 15/ 12/ 2005 Fecha Día Mes Año

Comportamiento El comportamiento de un objeto es la forma en que actúa y reacciona, en términos de sus cambios de estado e intercambio de mensajes con otros objetos. El comportamiento de un objeto está determinado por las operaciones que pueden ser invocadas sobre el mismo. Los tres tipos de operaciones más comunes son:

MÉTODOS Concepto: Son las operaciones que se pueden realizar con los objetos de la clase. Otro concepto: Son los procesos (funciones o procedimientos) que permiten trabajar con los datos de los objetos También son llamados: funciones miembro De acuerdo al trabajo que realizan los métodos, estos se clasifican en:Constructores,destructores, ponedores, selectores.

Tipos de Métodos Constructores Destructores Modificadores Selectores Iteradores

Constructor El constructor es un proceso que se encarga de: Reservar espacio de memoria para los datos del objeto Inicializar los atributos del objeto (darle un estado inicial) Tipos de Constructor: Oficio, Copia, con Parámetros

Constructor de oficio Inicializa los atributos con valores definidos por el implementador de la clase. Ej. Fecha::Fecha() { d=1; m=1; a=2001; }

Constructor de copia Inicializa los atributos del objeto con los datos provenientes de otro objeto de la misma clase. Ej. Fecha::Fecha(const Fecha &f2) { d=f2.d; m=f2.m; a=f2.a; }

Constructor con parámetros Inicializa el objeto con datos provenientes de los parámetros. Ej. Fecha::Fecha(byte dd, byte mm,Word aa) { SetFecha(dd, mm, aa); }

Destructor Liberar la memoria reservada para los datos del objeto. La mayoría de los lenguajes lo tiene implementado por default por lo que solo se lo implementa cuando el objeto reserva memoria en tiempo de ejecución.

Modificador Permite cambiar el estado de un objeto, modificando los atributos del mismo. Ej. Void Fecha::SetDia(byte dd) { SetFecha(dd, m, a); }

Selector Permite devolver el valor de los atributos sin alterar su estado. Ej. byte Fecha::GetDia() { return d; }

Identidad Es la propiedad de un objeto que lo distingue de todos los demás objetos No hay que confundir el nombre de un objeto con el objeto mismo. Ej. piolin != &piolin; Puede haber varias variables que se refieran al mismo objeto, pero no varios objetos con la misma identidad. Ej. Canario *pointer = &piolin; Puede haber objetos con el mismo estado pero identidades diferentes. Ej. Canario cantarin = piolin; Conclusión: hay dos tipos de igualdad: de estado y de identidad.

Métodos – Ejemplo1-2 CQuebrado PonNumerador PonDenominador Representación gráfica de los métodos de las clases CQuebrado y CVector CQuebrado PonNumerador PonDenominador ObtDenominador ObtNumerador Simplificar CVector PonDimension PonElemento ObtDimension ObtElemento Ordenar

Método Constructor El método constructor es un proceso cuyo trabajo consiste en: Reservar espacio de memoria para un objeto de la clase e inicializar los atributos del objeto. El constructor es invocado explicitamente en Object Pascal, e implícitamente en C++. Todas las clases definen al menos un método constructor.

Contructor – Ejemplo1 Implementación en OP Implementación en C++ Constructor Cquebrado.Create; Begin num:=1; den:=1; End; Implementación en C++ Cquebrado::Cquebrado() { num=1; den =1; } Se inicializan los objetos de la clase Cquebrado como la fraccion 1/1

Constructor – Ejemplo2 Implementación en OP Implementación en C++ Constructor Cvector.Create; Begin dim:=0; End; Implementación en C++ Cvector::Cvector() { dim=0; } Se inicializan los objetos de la clase Cvector como un vector vacio, es decir, sin elementos

Método Destructor Concepto. El destructor es un proceso que se encarga de liberar el espacio de memoria asignado a los atributos del objeto y al objeto mismo. Normalmente no es necesario implementar el destructor a menos que los atributos del objeto sean punteros.

Destructor – Ejemplo1-2 Implementación en OP Implementación en C++ Destructor Cquebrado.Destroy; Begin ------ End; Destructor Cvector.Destroy; ----- Implementación en C++ Cquebrado::~Cquebrado() { ------- } Cvector::~Cvector() ------

Método Ponedor El método ponedor es un proceso cuyo trabajo consiste en asignar valores a los atributos de un objeto. En una clase debe haber por lo menos un método ponedor para cada uno de los atributos. Para los nombres de los procesos ponedores normalmente se utilizan los prefijos Set o Pon

Ponedor – Ejemplo1 en OP Procedure Cquebrado.PonNumerador(n:word); Begin num:=n; End; Procedure Cquebrado.PonDenominador(d:word); den:=d;

Representación gráfica CLASE – Ejemplo1 Deseamos construir un tipo de dato que permita almacenar datos de la siguiente forma: ¼, ½, 3/5 , 4/7, etc. tal tipo de dato podría llamarse Cquebrado Representación gráfica CQuebrado

CLASE - CQuebrado Definición de la clase Cquebrado en Object Pascal TYPE CQuebrado = Class private -------- public ------- End; Definición de la clase Cquebrado en C++ class Cquebrado { private: -------- public: };

Representación gráfica CLASE – Ejemplo1 Deseamos construir un tipo de dato que permita almacenar datos de la siguiente forma: ¼, ½, 3/5 , 4/7, etc. tal tipo de dato podría llamarse Cquebrado Representación gráfica CQuebrado

CLASE - CQuebrado Definición de la clase Cquebrado en Object Pascal TYPE CQuebrado = Class private -------- public ------- End; Definición de la clase Cquebrado en C++ class Cquebrado { private: -------- public: };

Representación gráfica CLASE – Ejemplo1 Deseamos construir un tipo de dato que permita almacenar datos de la siguiente forma: ¼, ½, 3/5 , 4/7, etc. tal tipo de dato podría llamarse Cquebrado Representación gráfica CQuebrado

CLASE - CQuebrado Definición de la clase Cquebrado en Object Pascal TYPE CQuebrado = Class private -------- public ------- End; Definición de la clase Cquebrado en C++ class Cquebrado { private: -------- public: };

Ponedor – Ejemplo1 en C++ void Cquebrado::PonNumerador(unsigned n) { num:=n; } void Cquebrado::PonDenominador(unsigned d) den:=d;

Método Selector El método selector es una función, cuyo trabajo consiste en devolver el valor guardado en los atributos. En cada clase se define por lo menos un método selector por cada uno de los atributos de la clase. Para los nombres de los selectores se utilizan normalmente los prefijos Set u Obt.

Selector – Ejemplo1 en OP Function Cquebrado.ObtNumerador:word; Begin result:=num; End; Function Cquebrado.ObtDenominador:word; result:=den;

Selector – Ejemplo2 en OP Function Cvector.ObtDimension:word; Begin result:=dim; End; Function Cvector.ObtElemento(i:word):integer; result:=elementos[i];

Selector – Ejemplo1 en C++ unsigned Cquebrado::ObtNumerador() { return num; } unsigned Cquebrado::ObtDenominador() return den;

Otros métodos Además de los métodos básicos, las clases pueden proveer de otros métodos para un mejor aprovechamiento. Estos otros métodos no tienen nombres especiales (constructor, selector, etc), son simplemente métodos.

Otros métodos-Ejemplo1 en OP Procedure CQuebrado.Simplificar; var x,i:integer; Begin i:=2; REPEAT if ((num MOD i)=0) AND ( (den MOD i)=0) then num:=num DIV i; den:=den DIV i; end else begin i:=i+1; end; x:=Menor(num,den); UNTIL i>(x DIV 2); End;

Otros métodos-Ejemplo1 en OP //funcion que devuelve el valor del quebrado en string Function Cquebrado.ToStr:string; Begin result:=intToStr(num)+’/’+intToStr(den); End;