Programación Orietada A Objetos

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 123

PROGRAMACIÓN ORIETADA A

OBJETOS
2

Introducción

Paradigma: Ejemplo ilustrativo, enunciado modelo


 Programación imperativa
 Programación funcional
 Programación lógica

Nuevo Paradigma:
 Programación Orientada a Objetos (POO)
Origen

Los conceptos de la programación orientada a


objetos tienen origen en Simula 67, un
lenguaje diseñado para hacer simulaciones,
creado por Ole-Johan Dahl y Kristen Nygaard
del Centro de Cómputo Noruego en Oslo.
Diferencias con la programación estructurada

Las principales diferencias entre la programación estructurada y la


orientada a objetos son:

La programación orientada a objetos es más moderna, es


una evolución de la programación estructurada
La programación orientada a objetos se basa en lenguajes
que soportan sintáctica y semánticamente la unión entre
los tipos abstractos de datos y sus operaciones (a esta
unión se la suele llamar clase).
La programación orientada a objetos incorpora en su
entorno de ejecución mecanismos tales como el
polimorfismo y el envío de mensajes entre objetos.
Conceptos orientados a objetos

Objeto
Clase
Método
Evento
Mensaje
Propiedad o atributo
Componentes de un objeto
Representación de un objeto
Características de la POO

Las características mas importantes son:

Abstracción
Encapsulamiento
Principio de ocultación
Polimorfismo
Herencia
Que es un paradigma ?
Paradigma: Modo de Pensar expresado en
breve (Un punto de vista personal, una
metáfora, un esquema-mental, una visión del
Mundo o cosmovisión)
Por ejemplo: ¿Cómo pensaba la gente que era
la Tierra antes de 1492?
Etimología

El término paradigma se origina en la palabra


griega παράδειγμα (paradeigma), que significa
"modelo" o "ejemplo". A su vez tiene las
mismas raíces que παραδεικνύναι, que significa
"demostrar".
Antecedentes
1960 un modelo o patrón en cualquier
disciplina científica u otro contexto
epistemológico.
1900 el diccionario Merriam-Webster definía
su uso solamente en tal contexto, o en
retórica para referirse a una parábola o a una
fábula. En lingüística, Ferdinand de Saussure
ha usado paradigma para referirse a una clase
de elementos con similitudes.
Que es un paradigma de programación ?

El paradigma de programación representa un


enfoque particular o filosofía para la
construcción del software.
El enfoque no es mejor uno que otro sino que
cada uno tiene ventajas y desventajas.
También hay situaciones donde un paradigma
resulta más apropiado que otro.
Aspectos que comprende ?
El paradigma de programación se refiere a:
¿Estilo de Programación?
Manera de Visualizar y Resolver Problemas de Programación
Procedural, Imperativo
Lógico, Declarativo
Visual
Paralelo
Orientado a Objetos
Filosofía
Historia, Objetivos y Metas
Modelos y Enfoques
Conceptos
Principios
Soporte
Notación, Metodologías
Herramientas y Tecnologías
Ejemplos de paradigmas de programación ?

El paradigma imperativo o por procedimientos


es considerado el más común y está
representado, por ejemplo, por el C o por
BASIC.
El paradigma funcional está representado por
la familia de lenguajes LISP (en particular
Scheme), ML o Haskell.
El paradigma lógico, un ejemplo es PROLOG.
El paradigma orientado a objetos. Un lenguaje
completamente orientado a objetos es
Smalltalk.
El mas utilizado ?
Actualmente el paradigma de programación
más usado debido a múltiples ventajas
respecto a sus anteriores, es la programación
orientada a objetos.
Clases y Objetos

Objeto es la entidad provista de un conjunto


de propiedades o atributos (datos) y de
comportamiento o funcionalidad (métodos).
Corresponden a los objetos reales del mundo
que nos rodea, o a objetos internos del
sistema (del programa). Es una instancia a una
clase.
Las Clases son definiciones de las propiedades
y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de
estas definiciones y la creación de un objeto a
partir de ellas.
Método

Es un algoritmo asociado a un objeto (o a una


clase de objetos), cuya ejecución se
desencadena tras la recepción de un
"mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede
hacer. Un método puede producir un cambio en
las propiedades del objeto, o la generación de
un "evento" con un nuevo mensaje para otro
objeto del sistema.
Evento

Es un suceso en el sistema (tal como una


interacción del usuario con la máquina, o un
mensaje enviado por un objeto). El sistema
maneja el evento enviando el mensaje adecuado
al objeto pertinente. También se puede definir
como evento, a la reacción que puede
desencadenar un objeto, es decir la acción que
genera.
Mensaje

Es una comunicación dirigida a un objeto, que le


ordena que ejecute uno de sus métodos con ciertos
parámetros asociados al evento que lo generó.
Propiedad o atributo

Es contenedor de un tipo de datos asociados a


un objeto (o a una clase de objetos), que hace
los datos visibles desde fuera del objeto y
esto se define como sus características
predeterminadas, y cuyo valor puede ser
alterado por la ejecución de algún método.
Estado interno

Es una propiedad invisible de los objetos, que


puede ser únicamente accedida y alterada por
un método del objeto, y que se utiliza para
indicar distintas situaciones posibles para el
objeto (o clase de objetos).
Componentes de un objeto

Los componentes de un objeto son:

atributos,
identidad,
relaciones
y métodos.
Representación de un objeto

Un objeto se representa por medio de una


tabla o entidad que esté compuesta por sus
atributos y funciones correspondientes
Tipo

Es un conjunto de firma de métodos con un


nombre que lo identifica. Un tipo puede ser
definido a través de una Clase o una
Interface.
Que es un lenguaje de programación
Un lenguaje de programación es un idioma artificial
diseñado para expresar procesos que pueden ser
llevadas a cabo por máquinas como las computadoras.

Está formado por un conjunto de símbolos y reglas


sintácticas y semánticas que definen su estructura y
el significado de sus elementos y expresiones.

Al proceso por el cual se escribe, se prueba, se


depura, se compila y se mantiene el código fuente de
un programa informático se le llama programación.
Es aquel que utilizamos para poder transmitir
ordenadamente nuestras ideas a una computadora.
Tipos de lenguajes

Existen 4 tipos de LP:

Lenguaje máquina 00110011


Lenguaje ensamblador ld a, #10
Lenguajes de alto nivel
for(i=0;i<10;i++)
Lenguajes orientados a objetos class
persona{ }
Como se clasifican
Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los
programas (Cobol, Pascal, C, Ada).

Lenguajes declarativos. Los programas se construyen mediante descripciones de


funciones o expresiones lógicas (Lisp, Prolog).

Lenguajes orientados a objetos. El diseño de los programas se basa mas en los


datos y su estructura. La unidad de proceso es el objeto y en el se incluyen los
datos (variables) y las operaciones que actúan sobre ellos (Java, Smalltalk, C++).

Lenguajes orientados al problema. Diseñados para problemas específicos,


principalmente de gestión, suelen ser generadores de aplicaciones. (Lenguajes de
4ª Generacion 4GL, Progress, ABAP, ORACLE)

Lenguajes naturales. Están desarrollándose nuevos lenguajes con el principal


objetivo de aproximar el diseño y construcción de programas al lenguaje de las
personas.
Lenguaje de programación orientado a objetos

Entre los lenguajes orientados a objetos


destacan los siguientes:
Action Script , Ada, C++, C#, Clarion, C+
+Builder, D, Delphi, Harbour, Eiffel, Java,
Lexico (en castellano), Objective-C,
Ocaml, Oz, Perl (soporta herencia
múltiple), PHP (en su versión 5) ,
PowerBuilder, Python, Ruby, Smalltalk,
Magik (SmallWorld), VB.NET Visual
FoxPro , XBase++
Utilizaremos en nuestros ejemplos el
lenguaje Java en su versión J2SDK.
Lenguaje Java orientado a objetos

El diseño orientado a objeto puede ser programado


en cualquier lenguaje.
Los desarrollos se organizan alrededor de los
datos, y no de las funcionalidades.
Afortunadamente han aparecido nuevos lenguajes
que facilitan la programación orientada a objetos,
como es el caso de Java.
En adelante para explicar las
funcionalidades de programación orientadas
a objetos adoptaremos código de Java como
ejemplo
Qué es la orientación por objeto

El término "orientación por objeto" significa que


organizaremos el software como una colección de
objetos discretos que incorporan tanto estructuras de
datos como procedimientos.
Esto contrasta con la programación convencional,
en la cual las estructura de datos y el
comportamiento están solo aproximadamente
conectados.
Qué es el desarrollo Orientado por
Objetos

El desarrollo orientado por objetos es una nueva


forma de pensar acerca del software basado sobre
abstracciones que existen en el mundo real.
En este contexto, el desarrollo es referido a la
primera parte del ciclo de vida del software:
análisis, diseño e implantación.
Diferencia entre la programación
convencional

Dato 2
Dato 1
Procedimiento
2
Procedimiento
Dato 4
1

Procedimiento
Dato 3 3
Fig. 2 Sistema convencional

M1

INVOCA 4 M4 DATO 2M2

M3
M1
INVOCA 1
M4 DATO 1M2

M3
M1

M4 DATO 3M2
INVOCA 3
M3

Fig.3 Sistema Orientado por objeto


31

Programación Procedimental

Procedimiento 1

D
A
Procedimiento 2 T
O
S

Procedimiento 3
32

Programación Orientada a Objetos

DATOS DATOS

Métodos Métodos

DATOS DATOS

Métodos Métodos
33

POO

Facilita la creación de software de calidad pues


sus características potencian:
 La mantención
 La extensión y
 La reutilización del software generado bajo este
paradigma

La POO se basa en la idea natural de un mundo


lleno de objetos y que la resolución de problemas
se realiza mediante el modelo de objetos
34

POO

La visión de Objetos:
 Mesas
 Sillas
 Computadores
 Autos
 Cuentas bancarias
 Partidos de fútbol
 Perros, etc
35

POO

Los objetos se pueden Organizar según su


necesidad
 Mamíferos : Perro, Ciervo
 Teléfonos : Fijo, Celular
 Deportes : Fútbol, Tenis
 Vehículos : Automóvil, Camión
36

METODOLOGÍA
37

Modelamiento

La base de esta tecnología es:

Los problemas
Modelar que se desea
resolver

con base en

Relevantes  y
Entidades tangibles en el
problema
38

Abstracción

El modelo define una perspectiva abstracta del


problema
 Los datos que son afectados
 Las operaciones que se aplican sobre los datos
39

Ejemplo

Para la administración docente, las entidades que


participan son:

Alumnos Profesores

Administr. Docente
Salas
Asignaturas
40

POO

Identificar los objetos importantes

Organizar los objetos en jerarquías

Otorgar, a los objetos, atributos relevantes que


describan sus características

Proveer, a cada objeto, las funciones inherentes a


su comportamiento
41

Conceptos de la POO

La POO trata de aproximarse al modo de actuar


del hombre y no al de la máquina

Conceptos fundamentales que sustentan la POO:


 Clase
 Objeto
 Instancia
 Atributos
 Métodos
42

Clase

Una clase es como un tipo de dato creado por el


usuario, que posee dos categorías de miembros:
 Atributos (Datos)  Estado
 Métodos (Algoritmos) 
Comportamiento
43

Clase

En general, es posible crear una clase a partir de


cualquier objeto que esté a nuestro alrededor. Por
ejemplo:
 Persona
 Automóvil
 Mascota
44

Instancias-Objetos

Una Instancia es una ocurrencia de la clase

Al momento de crear un objeto se produce la


instanciación

Un Objeto es una instancia de una Clase específica


45

Instancias-Objetos

EJEMPLO:
Suponer que existe la clase Vehículo

 El auto patente WF-4631 es una instancia de la


clase Vehículo, o sea, un objeto de esa clase

 La camioneta patente ZT-9283 es otra instancia
de la clase Vehículo
46

Atributos

Son los datos que caracterizan a los objetos de una


clase y determinan el estado de un objeto

 Marca
 Año
 Color
 Patente, etc.
47

Métodos

Representan todas aquellas acciones que se pueden


realizar sobre un objeto de cierta clase
En la implementación, estos métodos son
segmentos de código en la forma de funciones
La clase Vehículo puede incluir los métodos:
 Encender
 Acelerar
 Virar
 Frenar
48

Principios de la POO

Propiedades, que lo llevan a ser un estilo de


desarrollo que permite crear código re-utilizable

 Encapsulamiento

 Herencia

 Polimorfismo
49

ENCAPSULAMIENTO
Abstracción de Datos
50

Encapsulamiento

Proceso por el que se ocultan:


Las estructuras de datos
Los detalles de la implementación

 Permite considerar a los objetos como "cajas


negras", evitando que otros objetos accedan a
detalles que NO LES INTERESA
 Una vez creada la clase, las funciones usuarias no
requieren conocer los detalles de su implementación
51

Encapsulamiento

Toda clase tiene un conjunto de atributos y


métodos asociados a ella
Todos ellos están encapsulados o contenidos
dentro de la misma clase, de manera que son
miembros de dicha clase
Esos métodos y atributos pueden ser utilizados
por otras clases sólo si la clase que los encapsula
les brinda los permisos necesarios para ello
52

Encapsulamiento

Atributos de una Cuenta Corriente:


 Número
 Saldo ¿Cómo se almacenan estos datos?

Métodos:
 Depositar
 Girar
 Conocer el saldo
53

HERENCIA
Organización jerárquica
Herencia
 
La herencia consiste en el compartir atributos y
métodos entre clases basándose en una relación
jerárquica.
Una clase puede definirse ampliamente y redefinirse
sucesivamente en subclases más refinadas.
Cada subclase que se incorpora, hereda todas las
propiedades de su superclase y adiciona sus propias
y únicas propiedades.
Elementos capaces de ser heredados

Herencia Estructural.
Herencia de Comportamiento ( herencia de
métodos).
Nombre
Persona Edad
Dirección
Sexo

Cargo

Empleado Estudiante Carrera


Denominación

Profesión

Director

Año de experiencia Dependencia


Secretaría
Dependencia
Idiomas
Tipos de Herencia

Simple.

Múltiple
Nombre
Persona Edad
Dirección
Sexo

Cargo

Empleado Estudiante Carrera


Denominación

Profesión

Director

Año de experiencia Dependencia


Secretaría
Dependencia
Idiomas
Herencia Multiple

Definición de Herencia Múltiple: Una clase puede


heredar rasgos de más de una superclase. Una clase
con más de una superclase es llamada clase junta.
Un rasgo de una clase ancestro que se encuentra
más de una vez a lo largo de una ruta solo se hereda
una vez.
Vehículos

Vehículos Terrestres Vehículos Acuáticos

Vehículos
Carros Bote
Anfibios
Encadenamiento Dinámico:
Una de las ventajas que promueve el estilo de
programación orientada por objeto es la
característica del encadenamiento dinámico,
también llamado encadenamiento tardío. En efecto,
no se tendrían sistemas orientados por objeto sin esa
poderosa capacidad.
Simplemente, la declaración encadenamiento
dinámico significa que el sistema encadenará una
rutina a un selector para un método particular que
está implantado sobre un objeto clase.
62

La Herencia

Permite reutilizar código creando nuevas clases a


partir de las existentes (construidas y depuradas)
Compromete una relación de jerarquía (es-un)

Una nueva clase se generará agregando atributos y/o


código a una clase existente

Una clase (derivada) puede heredar de otra clase


(base):
 Atributos y
 Métodos
63

Herencia

P ersona
N o m b re
D irec c ió n
RUT

E m pleado C liente Alum no


S u eld o C u e n ta C a rrera
64

POLIMORFISMO
Polimorfismo

Polimorfismo significa que la misma operación


puede comportarse diferentemente sobre distintas
clases. Por ejemplo, la operación "mover" ejemplo
puede comportarse diferentemente sobre una clase
llamada Ventana y una clase llamada
Piezas_ajedrez.
Clasificacion del polimorfismo

Paramétrico
Universal Inclusión
Polimorfismo

Ad Hoc Overloading
Coerción
Polimorfismo Paramétrico: Se obtiene cuando una
función trabaja uniformemente sobre un rango de
tipos; esos tipos normalmente exhiben una
estructura común y puede comportarse de manera
distinta para cada tipo.
Polimorfismo de Inclusión: Es un polimorfismo
utilizado por modelos de subtipos y herencia. En
este tipo de polimorfismo un objeto puede
pertenecer a clases diferentes que no necesariamente
son disjuntas.
Polimorfismo por Overloading: En este caso el
mismo nombre se utiliza para denotar diferentes
funciones, y el contexto se utiliza para decidir cual
función se debería ejecutar para una invocación
particular del nombre.
 
Polimorfismo por Coerción: Es una operación
semántica que convierte argumentos a los tipos
esperado por una función, en una situación que de
otra forma resultaría en un tipo de error. La
coerción puede estar dada estáticamente,
insertándose automáticamente entre argumentos y
funciones a tiempo de compilación o pueden tener
que determinarse dinámicamente, con pruebas a
tiempos de ejecución sobre los argumentos.
70

Polimorfismo

Capacidad que permite a dos clases diferentes


responder de forma distinta a un mismo mensaje

Esto significa que dos clases que tengan un método


con el mismo nombre y que respondan al mismo tipo
de mensaje (es decir, que reciban los mismo
parámetros), ejecutarán acciones distintas
71

Polimorfismo

Ejemplo 1:

Al presionar el acelerador esperamos que


aumente la velocidad del auto, independiente de
si se tiene un:

 Motor con carburador


 Motor con inyección electrónica
72

Polimorfismo

Ejemplo 2:

Si se tienen las clases Entero y Char, ambas


responderán de manera distinta al mensaje
"Sucesor"

MENSAJE
OBJETOS RESULTADOS
Sucesor
'A' 'B'
3 4
OBJETOS
Conceptos básicos sobre la
Orientación por Objetos

¿ Qué es un Objeto ?
Un objeto es una entidad física o abstracta que tiene
un comportamiento antes ciertos estímulos, tanto
externos como de otros objetos específicos que se
encuentran dentro del sistema.
Conceptos básicos de la OxO

¿ Qué se puede considerar como objeto ?


-Persona
-Equipo Hardware
-Materiales
-Información
-Software
-Procesos
-Procedimientos
Conceptos básicos de OxO

Objeto Físico:Horno
Operaciones asociadas:
Encendido/Apagado/Cargado/Descargado.
Objeto Abstracto:Cola
Operaciones: Agregar/Eliminar/
Verificar vacía/
Verificar si llena/Primero cola/Siguiente cola/
Conceptos básicos de OxO

Identidad de un objeto
Cada objeto tiene su propia identidad que lo
distingue de los demás objetos. En otras palabras,
dos objetos distintos no son iguales aunque todos
los valores de sus atributos sean idénticos.
Conceptos básico de la OxO

Componentes para la construcción de Software de


un objeto.
Cuando un objeto se transforma en una
realización de software, consta de una interfaz, una
estructura de datos privada y unos procesos
llamados operaciones o métodos que son los únicos
que pueden transformar legítimamente la estructura
de datos.
Conceptos básicos de la OxO

D ic c io n a r io ( ) In te rfa s e
A r c h iv o In d iz a d o E s tr u c tu r a d e d a to
O b je t o d e l m u n d o
re a l A ñ a d ir p a la b r a
S u p r im ir p a la b r a O p e r a c io n e s
E n c o n tra r p a la b ra
.
.
.

Representación abstracta de un objeto


Conceptos básicos de la OxO
Tipos de objetos
1.- Objetos reales
1.1 Objeto físico: Son objetos extremamente
perceptibles ejemplo(vista, olfato,gusto,oído)
1.2 Objetos psíquicos: Son internamente
perceptibles. Ejemplo: dolor, sentimiento, imágenes.
2.- Objeto ideales no son perceptibles.
2.1 Relaciones o asociaciones entre objetos
2.2 Pensamientos
2.3 Matemáticos, lógicos semiótico
Conceptos básicos de la OxO
Clasificación:
El proceso de clasificación es el enfoque
central de la orientación por objeto y concierne a la
agrupación de objetos con propiedades (estructuras
de datos o atributos) y comportamiento
(operaciones) similares dentro de una clase.
Una clase es la abstracción que describe
propiedades importantes para una aplicación.
Conceptos Básicos de la OxO
Los objetos que pertenecen a una clase se describen
colectivamente por la definición de una clase, esto significa
que en lugar de describir los objetos individuales la
orientación por objeto concentra en un patrón tanto el estado
como el comportamiento que es común a todos los objetos de
la clase.

Esta clase de estructura que abarca tantos propiedades como


comportamiento es la unidad natural de la abstracción en los
sistemas de orientación por objeto y puede ser utilizarse para
modelar tanto entidades objetos como relaciones entre los
objetos.
Conceptos Básicos de la OxO
Cada clase describe una posibilidad infinita de un conjunto
individual de objetos. Cada objeto que pertenezca a una
clase es llamado instancia de la clase.

La instanciación es lo inverso a la clasificación y


concierne a la generación de los distintos objetos de una
clase. La distinción entre una clase y sus instancias es
similar a la distinción entre una definición de tipo y la
declaración de una variable en un lenguaje de programación
convencional. Sin embargo, la mayoría de los sistemas
orientados por objeto crean dinámicamente instancias por
envío de mensajes "Nuevo" y "Crear" una clase.
Conceptos básicos de la OxO

Type Tipo_opcion(Piscina,Sauna,Tennis,Golf);
Class Hotel
Propiedades
Nombre: Cadena;
Dirección: Cadena;
Dueño: Compañia;
Director: Persona;
Facilidades: Set (Tipos_opcion):
Operaciones
Create ();
Reserva_hab(Habitación:integer; Huesped:Person, Fecha_llegada,
Fecha_partida:Tipo_fecha)
end Hotel.
Conceptos básicos de la OxO
Class Compañía
Propiedades
Nombre, Oficina_central, Teléfono: Cadena;
.........
Operaciones
..........
end Compañia.
Class Persona
Propiedades
Nombre, Dirección, Teléfono: Cadena;
.........
Operaciones
..........
end Persona.
Conceptos Básicos de la OxO

Instancia Compañía
Nombre Turisol
Instancia de Hotel Oficina_general Mérida
Teléfono 22454
Nombre La Pedregosa

Dirección Av. Los proceres

Dueño Instancia de Compañia


Instancia Persona
Gerente Instancia de Persona
Nombre Pedro perez
Calle 22 entre
Facilidades Piscina, Sauna, Golf Dirección Av. 2 y 3

Fig. 5 Ejemplo de la clase Hotel


Conceptos básicos de la OxO

Atributos

Tamaño del marco


Tamaño de la rueda
Material
Engranaje
Aplicando
Material
abstracción
Operaciones

Pasos
Reparar
Cambio de posición
Conceptos básicos de la OxO

Clase polígono
Objetos polígonos
Atributos
Vértices
Aplicando Color del borde
abstracción Color de relleno

Operaciones

Dibujar
Borrar
Mover
89

Objetos
En la POO se dice que un objeto: "integra
datos y algoritmos"
En la programación estructurada, variables y
funciones están separadas

POO Procedural
Clase Tipo
Objeto Variable
Instanciación de objetos Declaración de variables
90

Objetos
Cada objeto es responsable de inicializarse y
destruirse en forma correcta
Un objeto consta de:
Atributos
 Tiempo de vida Métodos

 Estado
 Comportamiento
91

Tiempo de vida de un objeto

La duración de un objeto en un programa


siempre está limitada en el tiempo

La mayoría de los objetos sólo existen


durante una parte de la ejecución del
programa
Los objetos son creados mediante un
mecanismo denominado instanciación

Los objetos dejan de existir cuando son


destruidos
92

Estado de un objeto

Queda definido por sus atributos

Con él se definen las propiedades del objeto,


y el estado en que se encuentra en un
momento determinado de su existencia
93

Comportamiento de un objeto

Queda definido por los métodos

Los prototipos de los métodos definidos en la


interfaz de una clase permiten a otros
objetos, que forman parte de la aplicación,
interactuar con los objetos de esa clase
CLASES
95

Clases

Las clases son abstracciones que representan a un


conjunto de objetos con un:
 Comportamiento e
 Interfaz común

Es la implementación de un tipo de dato


(considerando los objetos como instancias de las
clases)
96

Clases

Permiten definir y representar colecciones de


objetos

Proveen un modelo para la creación de objetos

Los elementos que componen la clase son

Atributos Representan el estado de un objeto


(variables de ejemplar)

Métodos Representan el comportamiento de un


objeto (funciones miembro)
Conceptos básicos de la OxO
Notación para representar una clase.
Una clase se representa por una caja la cual puede tener 3
regiones.
La primera región contiene el nombre de la clase.
La segunda región contiene la lista de atributos, cada nombre
de atributo puede estar seguido por detalles opcionales tales
como tipo de atributo y valores por defectos.
La tercera región contiene los nombres de las operaciones.
Cada nombre de operación puede ser seguido por detalles
opcionales tales como listas de argumentos y tipos de
resultados. Los atributos y operaciones puede o no
mostrarse; esto depende del nivel de detalle deseado.
Conceptos básicos de la OxO

Nombre de la clase

Nombre_atributo1: tipo dato1= valor defecto1


Nombre_atributo2: tipo dato2= valor defecto2
.
.
.

Nombre_operación1(lista de argumento):tipo_resultado1
Nombre_operación2 (lista de argumento):tipo_resultado2
.
.
.
Conceptos básicos de la OxO

Cómo se implanta una clase en C++


Class Nombre de la clase {
Miembros datos;
Miembros métodos;
};
Conceptos Básicos

class persona {
// Mienbros Datos o Estructura de datos de la clase
char nombre[15],apellido[15],cedula[15];
// Miembros Función o Métodos de la clase
public:
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
Conceptos Básicos

class persona {
// Mienbros Datos o Estructura de datos de la clase
char *nombre,*apellido,*cedula;
// Miembros Función o Métodos de la clase
public:
persona(); // Constructor de la clase
~persona(); // Destructor de la clase
void presenta_valores();
void asigna_nombre(char *nombre_nuevo);
void asigna_apellido(char *apellido_nuevo);
void asigna_cedula(char *cedula_nueva);
void cumpleano();
}; // Observe que se debe finalizar con punto y coma.
Conceptos básicos de la OxO

Operaciones ó métodos
Una operación es una función o
transformación que puede ser aplicada sobre los
objetos en una clase. Por ejemplo: abrir, cerrar,
ocultar, desplegar, son operaciones sobre una clase
ventana.
Cada operación tiene un objeto destino con
un argumento implícito. El comportamiento de la
operación depende de la clase destino.
Conceptos básicos de la OxO
¿ Cómo se declara una función miembro de la
clase ? (menos los constructores y destructores)
Tipo que devuelve nombre de la clase : : nombre del
método (Lista de parámetros ) {
cuerpo de la función o método
};
Los : : son conocidos como el alcance del operador
resolución, lo que indica al compilador donde
comienza la función.
Conceptos básicos de la OxO

persona::persona(){
strcpy(nombre=new char [30],"Domingo");
strcpy(apellido=new char [30],"Hernandez");
strcpy(cedula=new char [13],"v.-8.333.439");
strcpy(sexo=new char [13],"Masculino");
fecha_nac.set("12","03","64");
strcpy(direccion=new char [80],"Calle 32 ");
}
Conceptos básicos de la OxO

persona::persona(char *nomb,char *apell, char *ced, char *sex, char *d, char *m,
char *a, char *direcc ){
strcpy(nombre=new char [strlen(nomb)+1],nomb);
strcpy(apellido=new char [strlen(apell)+1],apell);
strcpy(cedula=new char [strlen(ced)+1],ced);
strcpy(sexo=new char [strlen(sex)+1],sex);
fecha_nac.set(d,m,a);
strcpy(direccion=new char [strlen(direcc)+1],direcc);
}
Conceptos básicos de la OxO

void persona::asigna_nombre(char *nomb_nuevo){


strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb);
}
Conceptos básicos de la OxO

persona::~persona(){
delete [] nombre;
delete [] apellido;
delete [] cedula;
delete [] sexo;
delete [] direccion;
}
108

Ejemplo de instancia de objetos

Clase: Cuenta corriente


 Atributos:
 Número
 Nombre
 Saldo
 Métodos:
 Depositar
 Girar
 Consultar saldo
109

Ejemplo de instancia de objetos

Clase: Cuenta corriente

Instanciación: Cuenta Corriente A, B


Objeto: A Objeto: B
Num: 1234 Num: 9876
Nombre: Juan Nombre: María
Saldo: 350.000 Saldo: 450.600

Métodos Métodos

Depositar Depositar

Girar Girar

Consultar Consultar
MENSAJES
111

Mensaje

Mecanismo por el cual se solicita una acción sobre


el objeto
Un programa en ejecución es una colección de
objetos que se crean, interactúan y se detruyen
La interacción se basa en mensajes que son
enviados de un objeto a otro, de modo que el
emisor le pide al receptor la ejecución de un
método
112

Mensajes

Un objeto invoca un método como una reacción al


recibir un mensaje

La interpretación del mensaje dependerá del


receptor
Paciente Médico

Mensaje
Recepcionista

Paciente Médico
MÉTODOS
114

Métodos

Un método es una función miembro de una clase

Establece el comportamiento del objeto

Opera directamente sobre el objeto que lo


invocó

Recibe, como parámetro implícito, el objeto que


lo invocó
115

Métodos

Si el método requiere otros objetos de la clase,


éstos deberán ser pasados como parámetros
explícitos y el método sólo podrá acceder en
forma indirecta a estos objetos

Ejemplos:
 Depositar
 Girar
 Consultar
Cómo se invoca un método sobre
un objeto

.
Nombre del objeto Nombre del método(lista de parámetros);
RESUMEN
118

Mensajes y métodos

Un objeto (agente emisor) envía un mensaje a otro


objeto (agente receptor)
El mensaje tiene codificada la petición de una acción
El mensaje incluye la información (argumentos)
necesaria para satisfacer la petición
Si el receptor acepta el mensaje, acepta la
responsabilidad de ejecutar la acción indicada
En respuesta a un mensaje, el receptor ejecuta un
método para satisfacer la petición
119

Clases y ejemplares

Todos los objetos son ejemplares de una clase

La clase del receptor determina el método que se


activa como respuesta a un mensaje

Todos los objetos de una clase usan el mismo


método en respuesta a mensajes similares
120

Clases y métodos

Los objetos son ejemplos de TAD’s


Un TAD tiene dos caras: una exterior, la que ve el
usuario, y una interior, la que sólo ve el programador
El usuario ve nada más que un conjunto de
operaciones que definen el comportamiento de la
abstracción
El programador ve las variables de datos que se
usan para mantener el estado interno del objeto
Un ejemplar es un representante de una clase
121

Clases y métodos

Una variable de ejemplar es una variable interna


mantenida por un ejemplar
Cada ejemplar tiene su propia colección de variables
de ejemplar
Las variables de ejemplar sólo son modificables por
los métodos definidos en la clase

Un objeto es la combinación de estado y


comportamiento
122

Clases y métodos

El estado lo determinan las variables de ejemplar

El comportamiento lo determinan los métodos

Desde el exterior, los clientes sólo pueden ver el


comportamiento de los objetos

Desde el interior, los métodos proporcionan el


comportamiento apropiado mediante las
modificaciones del estado
123

Clases y métodos

La interfaz describe la forma en que un objeto se


conecta con el mundo

La implementación describe cómo se logra la


responsabilidad prometida en la interfaz

Una clase se puede concebir como un registro con


dos variedades de campos: datos y procedimientos

Los datos constituyen las variables de ejemplar

Los procedimientos constituyen los métodos

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy