PDF de programación - Unidad IV. Programación Orientada a Objetos

Imágen de pdf Unidad IV. Programación Orientada a Objetos

Unidad IV. Programación Orientada a Objetosgráfica de visualizaciones

Publicado el 22 de Mayo del 2018
651 visualizaciones desde el 22 de Mayo del 2018
131,6 KB
17 paginas
Creado hace 17a (26/06/2006)
Unidad IV. Programación Orientada a Objetos

Tema I. Introducción

Tema II. Clases y Objetos

Tema III. Herencia

Tema IV. Encapsulación

Tema V. Abstracción

Objetivos

Introducir al alumno a los conceptos básicos de la programación orientada a
objetos.
Introducir al alumno en técnicas generales de la programación orientada a
objetos.
Que el alumno aprenda ha resolver problemas con un diseño orientado a
objetos.
Enseñar técnicas de programación OO

Tema I. Introducción

Qué es un paradigma de programación

Es un conjunto de conceptos que dirigen la manera en la que construimos un
programa. Como se diseñe la solución depende de los mecanismos, conceptos y
maneras que un paradigma nos diga.

Algunos paradigmas conocidos

Imperativo C, Pascal, Basic, PHP, Perl.
Funcional Lisp, Scheme.
Lógico Prolog.
Orientado a Objetos puros: Smalltalk, Eiffel.
Orientado a Objetos hibridos: C++, Java.
Observe la distinción entre los lenguajes OxO puros e hibridos: En C++ o
java, por ejemplo, existen constructos utilizados en la programación
imperativa: while, for. Estos son modelados como objetos en los LOxO puros.

Justificación

La orientación por objetos es un paradigma que nace de la necesidad de poder
expresar la solución de un problema en un lenguaje apegado al problema.
Ofrece un mecanismo poderoso de abstracción de ideas, que pueden ser
independizadas y relacionadas, mediante mecanismos sencillos.

Cómo llegar a la Programación Orientada a Objetos

Programación Procedural: decida que procedimientos desea, luego utilice los
mejores algoritmos que encuentre.
Programación Modular: Decida que módulos desea, luego parta el programa de tal
forma que la data sea ocultada por los módulos.

El paradigma de la programación modular es también conocido como el principio
del ocultamiento de la data. Como hacer:
Busque una interfaz para manejar la data.
Asegurese que la data sea solamente accesible a través de dicha interfaz.
Asegurese que dicha data sea inicializada siempre, antes de su primer uso.

Cómo llegar a la Programación Orientada a Objetos (Cont.)

Abstracción de la data: la modularidad es el pilar de todos los programas de
gran escala.
Tipos definidos por el usuario:
C++ ataca este problema, permitiendo que un usuario pueda declarar los
tipos casi tal como se hace con los propios tipos internos.
El paradigma es:
Decida que tipos quiere, luego especifique cuales son las operaciones sobre
esos tipos.

Ejemplo

¿Recuerda qué es un número complejo?
class complex {
float real;
float img;
public:
complex (float r, float i) {real=r; img=i;}
complex (float r) {real=r; img=0;}
complex operator+(complex _a)
{ return complex(_a.real + real, _a.img + img); }
};

Tipos Abstractos

Un tipo abstracto, no está definido del todo. Especifica una interfaz y
posteriormente otras clases podrán definir, concretamente la funcionalidad.
En C++ un tipo de dato abstracto está compuesto de funciones virtuales puras.
Esto le dice al programador, que son funciones que podrían ser especificadas
luego, en clases derivadas.

Ejemplos

Suponga que se desea construir una interfaz para tratar figuras geométricas.
class figGeom {
char * nombre[30];
public:
virtual float area( )=0;
virtual float rotar( )=0;
};
class triangulo : public figGeom {
coordenada_punto p1, p2, p3;
public:
float area() {
// calcula area
}
...
};
El constructo “: public” se lee como deriva de, implementa a, hereda de, es un
subtipo de.

Qué es Orientación por Objeto?

Si hablamos de un software orientado por objetos, puede verse como una
colección de objetos, donde cada uno está formado por estructura de datos
más la especificación de cada una de esas estructuras.
Ejemplo de objetos:
Una lápiz, una bicicleta, un elefante.
El segundo parrafo de la página 1 del cuento “El Principito”, El titulo de la
obra más importante de D. Knuth “El arte de la programación”.
Una lista de elementos del tipo cadena, un arreglo de enteros.

Tema II. Clases y Objetos

Clases

Una clase es un conjunto de datos y operaciones sobre esos datos, pero con
añadiduras para hacer la abstracción mucho más poderosa.
Caja negra que oculta en su implementación:
Atributos: variables que codifican el estado de una instancia de la clase
(objeto)
Métodos: subprogramas que describen el comportamiento de un objeto de
la clase

Objetos

Instancia de una clase:
Cada objeto de una clase tiene su propia copia de los atributos (estado
propio).
Todos los objetos de una clase comparten los mismos métodos
(comportamiento común).

Un objeto consta de:

• Tiempo de vida: 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, y cuando dejan de existir se dice que
son destruidos.

• Estado: Todo objeto posee un estado, 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.

• Comportamiento: Todo objeto ha de presentar una interfaz, definida por sus
métodos, para que el resto de objetos que componen los programas puedan
interactuar con él.

El equivalente de un objeto en el paradigma estructurado sería una variable. Así
mismo la instanciación de objetos equivaldría a la declaración de variables, y el
tiempo de vida de un objeto al ámbito de una variable.

Ejemplo

La clase bicicleta es una definición abstracta, sin forma. Una bicicleta debe
tener: Una biela, un cuadro, dos pedales, una o más ruedas, un volante,
frenos.
Un objeto rueda puede ser: Una bicicleta de montaña, Una bicicleta de ruta,
Una bicicleta de velodromo, Una bicicleta de paseo para 2 personas.
Atributos de la Clase Bicicleta: Llantas, pedales, cadena, cambios, frenos,
sillín, ...
Operaciones sobre la Clase Bicicleta:
Hacer cambios de la velocidad.
Frenar.
Mover el volante a la izquierda.
Mover el volante a la derecha.
Ajustar freno.
Observar el presión de aire de las llantas.
Ajustar altura del asiento.

Diagramas

De Objetos: Proporcionan grafismos formales para modelar objetos, clases y
sus relaciones entre si.
De Clases: Resume todas las posibles instancias de objetos.
De Instancias: Especifica como se relacionan un conjunto de objetos.

Ejemplo:

Operaciones y Métodos

Las operaciones y los métodos son las acciones que permitirán darle sentido
a los datos de los objetos.
Pueden ser referidas como acciones genericas o generales, luego se podrá
especificar su conducta.
Ejemplo:

Modelo para la notación de Clases

Asociaciones Uno a Uno

Asociaciones Muchos a Muchos

Asociaciones Ternarias

Observe que para
que este tipo de
asociación tenga

sentido, ninguno de las tres clases puede estar fuera.

Multiplicidad

Dice que cantidad de instancias de clase están relacionadas con otras clases
de relación explicita.
Expresa una cantidad finita o infinita de elementos relacionados.
Hay simbolos especiales para expresar la relación de multiplicidad.

Multiplicidad Cero o Uno

puede tener o no un triángulo de seguridad.
Para poder escribir la multiplicidad, primero se determinan: objetos, clases y
asociaciones.

Un auto

Atributos en los Enlaces

Un atributo es un descriptor inherente a los objetos de una clase. Asi mismo,
un atributo de enlace es un descriptor inherente a los enlaces de asociación.
Vea el gran parecido entre los atributos de objetos y atributos de enlaces.
Las asociaciones del tipo muchos a muchos proporcionan el escenario ideal
para colocar atributos a los enlaces.
Los atributos son propiedad del enlace, y pierde sentido (información) si se
asociara a alguno de los objetos.

Atributos dentro de Asoc. uno a muchos

Atributos para los enlaces en asociaciones ternarias

Atributos de enlace vs. atributos de objetos.

Tema III. Herencia

Definición

La herencia es la propiedad que permite a los objetos construirse a partir de
otros objetos.
Es el mecanismo que permite que un clase A herede propiedades de una
clase B. Decimos "A hereda de B". Objetos de la clase A tienen así acceso a
los atributos y métodos de la clase B sin necesidad de redefinirlos. La
siguiente definición describe dos términos con los que podemos hacer
referencia a las clases involucradas cuando se usa la herencia.

Superclase y Subclase

(Superclase/Subclase) Si la clase A hereda de la clase B, entonces B es la
superclase de A. A es subclase de B. Los objetos de una subclase pueden
ser usados en las circunstancias donde son usados los objetos de la
superclase correspondiente. Esto se debe al hecho que los objetos de la
subclase comparten el mismo comportamiento que los objetos de la
superclase.
En la literatura también se pueden encontrar otros términos para "superclase"
y para "subclase". Las superclases también son llamadas clases padres. Las
subclases pueden ser llamadas también clases hijas o simplemente clases
derivadas.

En C++

En C++ la clase original se denomina clase base; las clases que se definen a
partir de la clase base, compartiendo sus características y añadiendo otras
nuevas, se denominan clases derivadas.
Las clases derivadas pueden heredar código y datos de su clase base
añadiendo su propio código y datos a la misma.

Gráfica de herencia

Por supuesto, también se puede heredar de una subclase, haciendo que esta
clase sea la superclase de la nueva subclase. Esto conduce a una jerarquía
de relaciones superclase/subclase. Si dibujas esta jerarquía, se obtiene una
gráfica de herencia.
Una gráfica de herencia consiste en usar flechas para indicar la relación de
herencia entre clases u objetos.

Tipos

En la orientación a objetos, se consideran dos tipos de herencia, simple y
múltiple.
Simple: Una clase se deriva de sólo una clase base.

Múltiple: Una clase se deriva de más de una clase base
  • Links de descarga
http://lwp-l.com/pdf11189

Comentarios de: Unidad IV. Programación Orientada a Objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad