La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema #1 Programación Orientada a Objetos

Presentaciones similares


Presentación del tema: "Tema #1 Programación Orientada a Objetos"— Transcripción de la presentación:

1 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

2 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++

3 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.

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

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

6 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

7 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

8 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

9 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.

10 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.

11 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

12 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.

13 CLASE

14 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.

15 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”

16 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”

17 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.

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

19 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

20 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.

21 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

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

23 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:

24 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.

25 Tipos de Métodos Constructores Destructores Modificadores Selectores
Iteradores

26 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

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

28 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; }

29 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); }

30 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.

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

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

33 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.

34 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

35 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.

36 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

37 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

38 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.

39 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() ------

40 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

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

42 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

43 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: };

44 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

45 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: };

46 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

47 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: };

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

49 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.

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

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

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

53 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.

54 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;

55 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;


Descargar ppt "Tema #1 Programación Orientada a Objetos"

Presentaciones similares


Anuncios Google