Anda di halaman 1dari 34

Sergio Snchez Rios

Metodologas de Anlisis y Diseo


Unidad II
Conceptos Bsicos de la Orientacin a Objetos
(Programacin).
Sergio Snchez Rios.
Ingeniero en Informtica Licenciado en Informtica
Sergio Snchez Rios
Introduccin
Este material de estudio solo fue creado con el objetivo de repasar
algunos conceptos aprendidos de programacin Orientada a Objetos
en cursos de nivel inferior.

El lenguaje utilizado en los ejemplos es C# (nuevo lenguaje de
Microsoft), la justificacin tcnica de su utilizacin se sustenta es que la
sintaxis es muy parecida a la JAVA y C++.

Sergio Snchez Rios
Clases
Existen varias definiciones de clases:
Una representacin abstracta de algo real: esto, ya que los
elementos bsicos para una clasificacin se encuentran en una
clase. Ejemplo: Si quisiramos clasificar a los perros sabramos
que cada uno de ellos tiene comportamientos comunes (caminan,
ladran, comen) y caractersticas (patas, color de pelo entre otras).
Por lo tanto se ocupa la clase perro para agrupar a todos los
animales de ese tipo.

Un proyecto para crear objetos: una clase es esencialmente un
proyecto para crear objetos.
Sergio Snchez Rios
Clases (Implementacin en C#)
En C# se utiliza para definir una clase la palabra clave class antes del
nombre de la clase. Adems los miembros de la clase se insertan entre
corchetes.
Ejemplo:
class nombre_clase
{
atributos y metodos;
}
Ejemplo Clase Cliente:
class Cliente
{
//propiedades
private rut numeric;
private string nombre;
private string nombre;

//metodos
public void ingresar();
public void lista(..);
.
}

Sergio Snchez Rios
Objetos
Un objeto es la instancia de una clase. Una clase es una
representacin abstracta de algo, mientras que un objeto es un ejemplo
utilizable de la cosa que representa la clase.
Ejemplo:
Clase Cliente
Objeto cliente JUAN PEREZ
Cada objeto muestra:
Identidad: cada objeto es distinguible.
Comportamiento: los objetos realizan tareas.
Estado: los objetos almacenan informacin.
Sergio Snchez Rios
Objetos (Implementacin en C#)
Un objeto se crea utilizando el operador new para crear un objeto.
Ejemplo:
Cliente newcliente = new Cliente();

Para acceder a los miembros de una clase, se utiliza el nombre de la
clase un punto y el nombre del miembro (propiedad o mtodo).
Ejemplo:
newcliente.nombre = Juan Perez;
Sergio Snchez Rios
Objetos (Implementacin en C#)
Miembros estticos versus instancias
Los miembros estticos los comparten todas las instancias de una
clase.
Los miembros de instancia pertenecen a instancias especficas de una
clase, un objeto. Cada instancia de una clase contiene una copia
separada de todos los miembros de instancia de la clase.
Por defecto los miembros son de instancia. Para volverlos estticos,
utilice el modificador static antes del nombre del miembro.
Ejemplo:
class Reloj{
static int hora;

}
Un campo static identifica exactamente una sola
ubicacin de almacenamiento. Sin importar
cuantas instancias de un tipo se generen,
solamente existe una copia de un campo static.
Los mtodos y propiedades estticas solo
pueden ser llamadas utilizando el nombre de la
clase
Sergio Snchez Rios
Objetos (Implementacin en C#)
Miembros estticos versus instancias
Ejemplo uso de static:

>>>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento
El encapsulamiento se puede reflejar de dos maneras:
Combinar los datos y los mtodos en una entidad nica: una vez
que se combinan los datos y las funciones en una entidad nica, la entidad
misma forma un limite cerrado, creando naturalmente una parte interna y
una externa. Ejemplo: la clase.

Controlar la capacidad de acceso a los miembros de la entidad:
puede usar este lmite para controlar selectivamente la capacidad de
acceso de las entidades: algunos se podrn acceder solamente desde
dentro; otras tanto como desde dentro como desde fuera. Los miembros
que siempre son accesibles son pblicos, y los que slo se pueden
acceder desde dentro son privados.
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Alcance (Modificadores de Acceso)
Capacidad de Acceso Significado
public El acceso no est restringido
protected El acceso est limitado a la clase de
contenido o a los tipos derivados de la
clase de contenido.
private El acceso esta limitado al tipo de
contenido.
Recomendacin: Debe hacer pblico nicamente aquellos objetos que
los usuarios de su clase necesiten ver.
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Propiedades
Son miembros de clase que proporcionan acceso a los elementos de
un objeto o clase.
Nomenclatura:
public tipodato miPropiedad{
get{
//Cdigo para obtener valor de la propiedad
}
set{
//Cdigo para asignar valor a la propiedad
}
}
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Propiedades
Ejemplo:

>>>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Constructores
Un constructor es el que permite crear e inicializar una instancias de
una clase. Es decir, convierte la memoria asignada por new en un
objeto.
Nota: El nombre del mtodo constructor es el mismo de la clase y
no retorna valores.
Existen dos tipos de constructores:
Constructores de Instancia: son los constructores que
inicializan los objetos.
Constructores estticos: son los que inicializan las clases.
Nota: Sino se define un constructor, se crea un constructor por
defecto
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Constructores
Un constructor es el que permite crear e inicializar una instancias de
una clase. Es decir, convierte la memoria asignada por new en un
objeto.
Nota: El nombre del mtodo constructor es el mismo de la clase y
no retorna valores.
Existen dos tipos de constructores:
Constructores de Instancia: son los constructores que
inicializan los objetos.
Constructores estticos: son los que inicializan las clases.
Nota: Sino se define un constructor, se crea un constructor por
defecto.
Sergio Snchez Rios
Principios Bsicos de la OO
Encapsulamiento (Implementacin en C#)
Constructores
Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia
La capacidad de utilizar toda la funcionalidad de una clase existente y
ampliar esas capacidades sin volver a escribir la clase original.
Ms tcnicamente, la herencia especifica una relacin es un tipo de
Un perro es un tipo de animal.
Un conejo es un tipo de animal.
Animal
Conejo Perro
Las clases derivadas heredan propiedades y
mtodos de una clase base.
Por lo tanto, la clase derivada reutiliza la
funcionalidad de la clase base.
(REUTILIZACIN)
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia
Tipos de Herencia
Herencia nica: deriva de una clase base



Herencia Mltiple: deriva de dos o ms clases.
Animal
Perro
Animal
Perro
Mamfero
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia (Implementacin en C#)
Cuando se crea una clase derivada, se debe especificar la clase base
de la cul deriva.
Utilice la siguiente sintaxis:
class nombre_clase : nombre_clase_base
{
// Cuerpo de la clase
..
}

Una clase derivada hereda todo de su clase base
(con excepcin de los constructores y destructores
de la clase base).
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia (Implementacin en C#)
Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia (Implementacin en C#)
Acceder a los miembros de la clase base
Una clase derivada podr acceder directamente a un miembro de la
clase base si este es declarado como public (no es recomendable) o
protected.
Si se declara como protected, significa que los miembros estarn
accesibles para todas las clases derivadas de manera directa e
indirecta de la clase base.
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia - Interfaces
Una interfaz especifica un contrato sintctico y semntico al cual se
deben adherir todas las clases derivadas. Especficamente, una interfaz
describe la parte de qu del contrato, y las clases que implementan la
interfaz describen la parte del como.

En resumen, una interfaz es como una clase sin cdigo.
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia Interfaces (Implementacin en C#)
Para declarar una interfaz, se utiliza la palabra clave interface en lugar
de class.
Nota: se recomienda que todas las interfaces comiencen con el prefijo
I.
Ejemplo:
interface Ipersona
{
void come();
string nombre();
}
Consideraciones sobre Interfaces:
-Una clase puede implementar cero o ms interfaces.
-Una Clase debe implementar todos los mtodos
heredados de interfaces.
-El mtodo de implementacin debe ser el mismo que el
mtodo de la interfaz.
-DE LAS INTERFACES NO SE PUEDEN CREAR
INSTANCIAS.
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia Interfaces (Implementacin en C#)
Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia Clases Abstractas
Resulta til crear una clase que contenga mtodos que las clases
derivadas deben implementar, pero no la misma clase base.
Una clase abstracta es una clase que puede obtener miembros
abstractos. Considrese miembros abstractos un mtodo vaco, sin
implementacin. En lugar de eso, las clases deben proporcionar una
implementacin.
Adems, estas clases abstractas tambin pueden contener miembros
no abstractos.
Las clase abstractas son particularmente til para proporcionar una
implementacin parcial de una interfaz que puede ser reutilizada por
varias clases derivadas.
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia Clases Abstractas (Implementacin en C#)
Para declarar una clase abstracta o mtodo abstracto debe ocupar la
palabra reservada abstract.
Ejemplo:
abstract class Marco
{
//cuerpo puede tener mtodos abstractos y otros.
}
Las Clases Abstractas son clase no terminadas que
contienen planos para lo que es necesario que se termine.
Sergio Snchez Rios
Principios Bsicos de la OO
Herencia Clases Abstractas (Implementacin en C#)
Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo
La capacidad de definir varias clases con una funcionalidad diferente,
pero con mtodos de nombre idntico, o propiedades que puede usar
el cdigo del cliente de manera intercambiable en el tiempo de
ejecucin.

Literalmente el polimorfismo significa muchas formas o muchas
figuras. Es el concepto de que un mtodo declarado en una clase base
se puede implementar en muchas formas distintas en las diferentes
clases derivadas.
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
El polimorfismo se puede implementar de varias formas:
Polimorfismo de interfaz: Varias clases pueden implementar la
misma interfaz. La implementacin especfica de los miembros de
la interfaz pertenecen a cada clase de implementacin.
Polimorfismo de herencia: Se puede heredar varias clases de
una clase base nica. Se pueden sobrescribir los miembros base
para proporcionar diferentes implementaciones.
Polimorfismo a travs de las clases abstractas: se pueden
implementar algunos o todos los miembros de la clase abstracta
(heredada), y queda en la clase heredada proporcionar esa
implementacin. Los miembros que se implementan an pueden
sobrescribirse.
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
Polimorfismo de interfaz
Esta es una tcnica poderosa en la programacin orientada a objetos
es la capacidad de implementar varias interfaces en un objeto.

Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
Polimorfismo de herencia
Este es un mecanismo potente para tareas de desarrollo a escala
pequea, pero por lo general ha probado ser problemtico para
sistemas a gran escala.
Mtodos Virtuales
Para proporcionar este tipo de polimorfismo se deben utilizar los
mtodos virtuales. Un mtodo virtual es uno cuya implementacin se
puede reemplazar a travs de un mtodo en una clase derivada.
Cuando crea un mtodo en una clase base que espera que se altere en
las clases derivadas, defina el mtodo en su clase base como un
mtodo virtual.
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
Polimorfismo de herencia
Para declarar un mtodo virtual se utiliza la palabra clave virtual.
Ejemplo:
class ejemplo
{
public virtual metodo() { /* cuerpo mtodo */ }
}
Para sobrescribir un mtodo en la clase derivada se utiliza la palabra
reservada override.
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
Polimorfismo de herencia
Ejemplo:
>>>>
Sergio Snchez Rios
Principios Bsicos de la OO
Polimorfismo (Implementacin en C#)
Polimorfismo a travs de clase abstracta
Ejemplo:
>>>>
Sergio Snchez Rios
Bibliografa
Gua del Tpico:

Software Engineering 6a. ed. Ian Sommerville Pearson Education
2000. (Cap. 6)

Ingeniera de Software Teora y Prctica Shari Lawrence Pfleeger
Pearson Education 2002.

Utilizacin de UML en ingeniera del software con objetos y
componentes Perdita Stevens & Rob Pooley Addison Wesley 2002.

UML y Patrones una introduccin al anlisis y diseo orientados a
objeto y al proceso unificado Craig Larman Prentice Hall - 2002.

Anda mungkin juga menyukai