17
Programación Orientada a Objetos Conceptos Básicos Ing. Juan Ignacio Zamora MSc | Ulacit.

C1 - Conceptos OOP

Embed Size (px)

Citation preview

Page 1: C1 - Conceptos OOP

Programación Orientada a Objetos

Conceptos Básicos

Ing. Juan Ignacio Zamora MSc | Ulacit.

Page 2: C1 - Conceptos OOP

ClasesDefiniciones

• Es un tipo de dato que contiene código,

funciones y datos.

• Permite encapsular todo el código y los

datos necesarios para gestionar un tipo

específico de un elemento de programa.

• Se dice común mente es “La Abstracción

de un Objeto”

Page 3: C1 - Conceptos OOP

• Un objetos es la instancia de una clase

• Según Booch, es “algo que tiene un

estado, un comportamiento y una

identidad”.

• Martin y Odell definen un objeto como

“cualquier cosa real o abstracta, en que

almacenan datos y operaciones que los

manipulan”…

ObjetosDefiniciones

Demo {clase} D; {identificador};

Page 4: C1 - Conceptos OOP

• Se agrupan en tipos llamados clases

• Tienen datos internos que definen su estado

• Soportan la ocultación de datos

• Pueden heredar propiedades de otros objetos

• Pueden comunicarse con otros objetos por

medio de mensajes

• Tienen métodos que definen su comportamiento

Características de un Objeto

Page 5: C1 - Conceptos OOP

• Punto p; donde {Punto} es la clase y {p} es

el identificador de la clase.

• {.} es el operador de acceso a un

miembro. p.FijarCoordenada(100,200);

• Funciones miembro: funciones que

pertenecen a la misma clase.

• Modificadores de Acceso: Public,

Protected y Private

ObjetosNomenclatura y Definiciones

Page 6: C1 - Conceptos OOP

Tipo Miembro de la Misma Clase

Amiga (Solo C++)

Miembro ClaseDerivada

Función NoMiembro

Private X X

Protected X X X

Public X X X X

ObjetosModificadores de Acceso

Los modificadores de acceso determinan la visibilidad de los elementos de una clase

Los modificadores definen el principio de la Ocultación de Información

En C#/C++, si el modificador de acceso no es definido, se asume por defecto private

Page 7: C1 - Conceptos OOP

• El principio de ocultación indica que

toda la interacción con un objeto debe ser

restringida, para permitir que los detalles

de la implementación sean ignorados.

• El principio de encapsulamiento

significa que las estructuras de datos

internas o cualquier implementación no

puede ser accesible al usuario.

ObjetosConceptos

Page 8: C1 - Conceptos OOP

• {::} operador de resolución de ámbito.

• {tipo retorno} {clase} :: {funcion(x,y)}

• Permite acceder a espacios de tipos de

nombres o bien a las declaraciones de

métodos de una clase

ObjetosConceptos (Solo C++)

Page 9: C1 - Conceptos OOP

• Tipos de Funciones Miembro

– Constructores y Destructores

– Selectores (Getters y Setters)

– Operadores

– Iteradores

ObjetosConceptos

C++: Cuando una función miembro se implementa fuera de la

clase por medio de un operador de resolución de ámbito se llama

función fuera de línea

Page 10: C1 - Conceptos OOP

• Constructores

– Default

– Alternativos o no default

– Existe la sobrecarga

• Destructores (C++) y la Recolección de

Basura

– El destructor se llama al invocar delete.

– O al final de la vida del main

ObjetosConceptos

Page 11: C1 - Conceptos OOP

• Es la capacidad de un objeto, de utilizar

estructuras de daros o comportamientos

provistos por su antepasado o

ascendiente.

• El objetivo es la reutilización de código

para generar nuevas abstracciones.

• “una clase hereda sus características de

otra clase”

Comportamiento y Herencia

Page 12: C1 - Conceptos OOP

• Tipos de Herencia

– Herencia Simple

(Jerárquica)

– Herencia Múltiple*

(Malla / C++, Python)

– Solución a la

Herencia Múltiple???

Herencia

Page 13: C1 - Conceptos OOP

• Una clase que se crea a partir de otra

clase por medio de la herencia

• La clase de la que se hereda se llama

clase base

• Los modificadores de acceso delimitan las

características y comportamientos que se

pueden heredar

HerenciaClase Derivada

Page 14: C1 - Conceptos OOP

• Métodos Virtuales. Permiten sobrescribir

comportamiento. Si no se sobrescribe, se

usa funcionalidad de la clase base.

• Métodos Tradicionales. Pueden ser

heredados o no dependiendo de los

modificadores de acceso.

Métodos y Herencia

Page 15: C1 - Conceptos OOP

• No pueden ser instanciadas directamente

• Son clasificadores de objetos

• Representan un nivel de abstracción más

alto

• Pueden contener métodos con

comportamiento codificado

• Pueden contener métodos abstractos

HerenciaClase Base Abstracta

Page 16: C1 - Conceptos OOP

• En C# y Java para hacer una clase de

base abstracta, solo basta con definirla

como abstract.

• En C++ la clase de base abstracta se

define cuando esta posee al menos un

método virtual puro

– virtual int area () =0;

HerenciaClase de Base Abstracta

Page 17: C1 - Conceptos OOP

• Por ende, es la propiedad de la POO que

le permite a cada objeto comportarse de

forma diferente al implementar su propio

comportamiento.

Polimorfismo