Tema01 ProgramacionOrientadaObjetos PDF

También podría gustarte

Está en la página 1de 34

Lenguaje de programación III

Tema 01
Programación Orientada a Objetos

Lic. Luis Ernesto Díaz Beteta


Contenido
• Introducción
• Principios básicos:
• Objeto, Clases e Instanciación
• Abstracción y Encapsulamiento
• Tipo de dato abstracto y clases:
• Conceptos; declaración y uso de clases y
miembro; constructores y destructores.
• Control de acceso a miembros: miembros público
y privado; control de acceso (funciones amigas,
virtuales y protegidas).
Introducción

• “POO - Un método de implementación en el que los


programas se organizan como colecciones cooperativas
de objetos.

• Cada una de las cuales representan una instancia de


alguna clase, y cuyas clases son todas miembros de
una jerarquía de clases unidas mediante relaciones de
herencia” Booch.
Introducción

Programa OO Colección estructurada


de clases

Clase Implementación de un TAD

Objeto Una instancia de una clase

Los objetos se comunican mediante mensajes


Objeto
“Es una instancia de una clase,
creada en tiempo de ejecución"
 Es una estructura de datos formada por tantos
atributos como tiene la clase.
 El estado de un objeto viene dado por el valor de
los atributos. El estado suele cambiar con el
paso del tiempo.
 Los métodos permiten consultar y modificar el
estado del objeto.
 Durante la ejecución de un programa OO se
crearán un conjunto de objetos.
Objeto - Comparativa
Objeto del mundo real Objeto simulación informática

Elemento de un sistema físico,


Un objeto se caracteriza por:
se caracteriza por:

Una IDENTIDAD, unas


CARACTERÍSTICAS, un Una IDENTIDAD, unos DATOS,
ESTADO y unos unos PROCEDIMIENTOS
COMPORTAMIENTOS.
Objeto como un paquete
Un “paquete” de software independiente formado por un
conjunto de datos junto con los procedimientos que operan
sobre estos datos.

Un objeto puede ser real o abstracto.


Método • Cada objeto constituye un universo
cerrado bien definido.
   
• Todo lo que un objeto “sabe” se
    expresa en sus atributos.
   
• Todo lo que un objeto “puede
hacer” se expresa por sus
operaciones (métodos).
Estructura de un objeto
Atributo
Objeto ejemplo

nCarnet

nombre


Clase
“Implementación total o parcial de
un tipo abstracto de dato (TAD)”

• Una clase es un tipo definido que determina la


estructura de datos y las operaciones asociadas a ese
tipo.
• Una clase se puede ver como una plantilla que
describe objetos que van a tener la misma estructura y
el mismo comportamiento.
• Define las propiedades y comportamiento de un tipo
de objeto concreto.
Clase
Doble naturaleza de las clases
Una clase es un módulo y un tipo de dato:
 Módulo (concepto sintáctico)
– Mecanismo para organizar el software (sintáctico)
– Encapsula componentes software
 Tipo (concepto semántico)
– Mecanismo de definición de nuevos tipos de datos: describe una
estructura de datos (objetos) para representar valores de un dominio
y las operaciones aplicables.

“Los servicios proporcionados por una clase, vista como un módulo, son
precisamente las operaciones disponibles sobre las instancias de la
clase, vista como un tipo”.
Componentes de una clase
 Atributos
– Determinan una estructura de almacenamiento para
cada objeto de la clase

 Operaciones (Métodos)
– Operaciones aplicables a los objetos
– Único modo de acceder a los atributos

Ejemplo: Al modelar un banco, encontramos objetos “cuenta”.


Todos los objetos “cuenta” tienen propiedades comunes:
• atributos: número, saldo, titular, ...
• operaciones: ingresar, retirar …

Definimos una clase CUENTA.


Clases - Comparativa
Clases del mundo real Objeto simulación informática

Los elementos de un sistema Los elementos que muestran la


físico, pueden ser agrupados en misma estructura y
CATEGORIAS comportamiento, se agrupan en
CLASES.
Ejemplo de clase
Automóvil
Atributos Operaciones Esta lista de atributos y de
Matrícula poner en marcha operaciones asegura el hecho
marca parar de que el conjunto de
modelo acelerar instancias de la clase
Automóvil dispondrá de estos
estado frenar
atributos y de los valores
potencia pintar asociados, así como de la
color encenderLuces facultad de ejecutar las
luces apagarLuces operaciones citadas.
velocidad
peso ...
Ejemplo de Objeto
Un Automóvil
Atributos – Se especifican sus
Matrícula: 5671BCD
atributos.
marca: Ford – Este coche tiene ahora una
modelo: Focus “existencia informática”.
estado: en marcha – Está en condiciones de
potencia: 130 hp participar en las secuencias
de interacciones.
color: rojo
luces: encendidas
Velocidad: 60 km/h
peso: 1500 kg
Sintaxis de declaración
de clase C#
class <identificador> {
[ public:
[ <miembros dato> ]
[ <funciones miembro> ] ]
[ protected:
[ <miembros dato> ]
[ <funciones miembro> ] ]
[ private:
[ <miembros dato> ]
[ <funciones miembro> ] ]
}
Ejemplo declaración de clase C#
class ejmploClase
{
//Variables miembros – ATRIBUTOS
private int valor;

//Funciones miembros – PROCEDIMIENTOS


public void SetValor(int v){
valor = v;
}
public int GetValor(){
return valor;
}
}
Clases e instancias
Clases e instancias
• Una clase es un generador de objetos (las instancias de
la clase).
• Una instancia es una estructura constituida por los
atributos descritos para la clase.
• La creación de un objeto a partir de una clase se llama
instanciación.
• Muchas instancias de una misma clase pueden existir
simultáneamente en memoria.
Clases e instancias
Ejemplo instanciación C#
class ejemploClase
{
//Variables miembros – ATRIBUTOS
private int valor;

//Funciones miembros – PROCEDIMIENTOS


public void SetValor(int v){
valor = v;
}
public int GetValor(){
return valor;
} TipoClase identificador;
}
Abstracción
La abstracción desde el punto de vista de la POO, expresa las
características esenciales de un objeto, las cuales distinguen al objeto
de los demás.

• Supresión intencionada, u ocultamiento, de algunos


detalles de un proceso o artefacto, con el objeto de
destacar de manera más clara otros aspectos, detalles o
estructuras.
• Capacidad de centrarse en las características esenciales
de las distintas partes de un sistema, ignorando sus
propiedades accidentales.
• Permite dividir la información en componentes aislados
que posteriormente se ensamblan para construir el “todo”.
Abstracción
Abedul
Pino
Olmo

Castaño Chopo

Abeto
Haya

Arbol
Persona
- altura Cedula
- tipo de madera Nombre
Edad
- tipo de hoja calcularEdad()
- tipo de fruto
Encapsulamiento
“Proceso de almacenar en un mismo compartimento los elementos de
una abstracción que constituyen su estructura y su comportamiento”
[Booch’96]

• Se denomina encapsulamiento al ocultamiento del estado


de un objeto.
• De manera que sólo se pueda cambiar el estado del
objeto mediante las operaciones definidas para el mismo.
• Cada objeto está aislado del exterior, el aislamiento protege a
los datos asociados de un objeto contra su modificación por
quien no tenga derecho a acceder a ellos.
• De esta forma el usuario de la clase puede obviar la
implementación de los métodos y propiedades para
concentrarse sólo en cómo usarlos.
Encapsulamiento
• Técnica que permite localizar y ocultar los detalles de un
objeto respecto al usuario, aislándolo del aspecto interno.
• Previene que un objeto sea manipulado por operaciones
distintas a las que le son propias, así como que sus
operaciones manipulen datos ajenos a ellas.

Separar el aspecto externo de los detalles


internos. Ninguna parte de un sistema
complejo debe depender de los detalles
internos de cualquier otra parte.
Encapsulamiento
• Los datos están protegidos de los objetos
exteriores.
• Los objetos son independientes de la estructura
interna de otros objetos.
• Es la propiedad que asegura que la información
de un módulo esta oculta al mundo exterior.
• Es una técnica de diseño para descomponer
sistemas en módulos.
• Permite la constitución de bibliotecas de objetos
genéricos reutilizables.
Ocultación de Información
Objeto
El módulo es una “caja negra”
Caja negra elemento que es estudiado desde el
? punto de vista de las entradas que recibe y las
salidas que produce, sin tener en cuenta su
funcionamiento interno.

• Principio por el cual los módulos son utilizados por su especificación,


no por su implementación.

• Los detalles de implementación están ocultos y sólo es accesible el


interfaz

• Un objeto tiene una interfaz pública que otros objetos pueden usar
para comunicarse con él. El objeto puede mantener información privada
y métodos que pueden cambiar sin que esto afecte a otros objetos que
dependen de él.
Acceso a miembros
Los miembros privados de la clase sólo pueden ser accedidos por:
− Las funciones miembro de la propia clase.
− Las funciones amigas de la propia clase.

Los miembros protegidos de la clase sólo pueden ser accedidos por:


− Las funciones miembro de la propia clase.
− Las funciones amigas de la propia clase .
− Las funciones miembro de clases derivadas.

Los miembros públicos de la clase pueden ser accedidos por:


− Las funciones miembro de la propia clase.
− Las funciones amigas de la propia clase.
− Las funciones miembro de clases derivadas.
− Cualquier usuario de la clase.
Acceso a miembros
Las partes public, protected y private en la definición de una clase
pueden o no aparecer, y no importa su orden.

• Una clase debe ocultar su estructura y la implementación de sus


servicios, haciendo públicas las interfaces de sus servicios.

• Sus atributos deberán ser también privados, y el acceso a éstos


para el resto del programa debe producirse exclusivamente a través
de los métodos públicos.

• Los métodos que sean usados para la manipulación interna de


datos o como auxiliares a otros métodos de la propia clase deben
ser privados.
Acceso a miembros
private protected public

f.miembro f.derivada f.usuario

Si no se especifica lo contrario, todos los miembros por defecto serán privados


Ejemplo
class fecha {
private int dia;
private int mes;
private int anio;

Public void fijarFecha(int d, int m, int a) {


dia = d;
mes = m;
anio = a;
}
}
La única manera de asignar valores a un objeto fecha
ahora es a través de la función pública (interface del
objeto).
fecha f = new fecha();
f.fijarFecha(25, 9, 1982);
Constructor
Función miembro especial de una clase que es llamada
automáticamente al crear una instancia de la clase.

 Se usa para crear e inicializar un objeto


 Puede tener argumentos
 Si no lo declaramos, se tiene uno por omisión
 Tiene el mismo nombre de la clase
 Podemos tener un constructor con argumentos por omisión
Destrucción de objetos
Elimina la memoria asignada a un objeto, esto lo
realiza de forma automática el recolector de basara.
 No se puede heredar
 Es llamado automáticamente al salir del ámbito donde fué
declarado el objeto
 Si asignamos memoria dinámica, hay que liberarla
 Asignación de memoria  new (en el constructor)
Muchisimas
Gracias

También podría gustarte