Este documento explica conceptos básicos de programación orientada a objetos como clases, objetos, encapsulamiento, herencia, interfaces y polimorfismo. Define clases como representaciones abstractas que agrupan atributos y comportamientos comunes, y objetos como instancias concretas de una clase. Explora la implementación de estos conceptos en C# a través de ejemplos.
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
1. Metodologías de Análisis y Diseño Unidad II Conceptos Básicos de la Orientación a Objetos (Programación). Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática
2. Introducción Este material de estudio solo fue creado con el objetivo de repasar algunos conceptos aprendidos de programación Orientada a Objetos en cursos de nivel inferior. El lenguaje utilizado en los ejemplos es C# (nuevo lenguaje de Microsoft), la justificación técnica de su utilización se sustenta es que la sintaxis es muy parecida a la JAVA y C++.
3.
4. Clases (Implementación en C#) En C# se utiliza para definir una clase la palabra clave class antes del nombre de la clase. Además 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(…..); … . }
5.
6. Objetos (Implementación 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 método). Ejemplo: newcliente.nombre = “Juan Perez”;
7. Objetos (Implementación en C#) Miembros estáticos versus instancias Los miembros estáticos los comparten todas las instancias de una clase. Los miembros de instancia pertenecen a instancias específicas 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 estáticos, utilice el modificador static antes del nombre del miembro. Ejemplo: class Reloj{ static int hora; …… } Un campo static identifica exactamente una sola ubicación de almacenamiento. Sin importar cuantas instancias de un tipo se generen, solamente existe una copia de un campo static . Los métodos y propiedades estáticas solo pueden ser llamadas utilizando el nombre de la clase
10. Principios Básicos de la OO Encapsulamiento (Implementación en C#) Alcance (Modificadores de Acceso) Recomendación: Debe hacer público únicamente aquellos objetos que los usuarios de su clase necesiten ver. El acceso esta limitado al tipo de contenido. private El acceso está limitado a la clase de contenido o a los tipos derivados de la clase de contenido. protected El acceso no está restringido public Significado Capacidad de Acceso
11. Principios Básicos de la OO Encapsulamiento (Implementación en C#) Propiedades Son miembros de clase que proporcionan acceso a los elementos de un objeto o clase. Nomenclatura: public tipodato miPropiedad{ get{ //Código para obtener valor de la propiedad } set{ //Código para asignar valor a la propiedad } }
12. Principios Básicos de la OO Encapsulamiento (Implementación en C#) Propiedades Ejemplo: >>>>>>
13.
14.
15. Principios Básicos de la OO Encapsulamiento (Implementación en C#) Constructores Ejemplo: >>>>
16.
17. Principios Básicos de la OO Herencia Tipos de Herencia Herencia Única: deriva de una clase base Herencia Múltiple: deriva de dos o más clases. Animal Perro Animal Perro Mamífero
18. Principios Básicos de la OO Herencia (Implementación en C#) Cuando se crea una clase derivada, se debe especificar la clase base de la cuál 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 excepción de los constructores y destructores de la clase base).
20. Principios Básicos de la OO Herencia (Implementación 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 estarán accesibles para todas las clases derivadas de manera directa e indirecta de la clase base.
21. Principios Básicos de la OO Herencia - Interfaces Una interfaz especifica un contrato sintáctico y semántico al cual se deben adherir todas las clases derivadas. Específicamente, 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 código.
22. Principios Básicos de la OO Herencia – Interfaces (Implementación 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 más interfaces. -Una Clase debe implementar todos los métodos heredados de interfaces. -El método de implementación debe ser el mismo que el método de la interfaz. -DE LAS INTERFACES NO SE PUEDEN CREAR INSTANCIAS.
23. Principios Básicos de la OO Herencia – Interfaces (Implementación en C#) Ejemplo: >>>>
24. Principios Básicos de la OO Herencia – Clases Abstractas Resulta útil crear una clase que contenga métodos que las clases derivadas deben implementar, pero no la misma clase base. Una clase abstracta es una clase que puede obtener miembros abstractos. Considérese miembros abstractos un método vacío, sin implementación. En lugar de eso, las clases deben proporcionar una implementación. Además, estas clases abstractas también pueden contener miembros no abstractos. Las clase abstractas son particularmente útil para proporcionar una implementación parcial de una interfaz que puede ser reutilizada por varias clases derivadas.
25. Principios Básicos de la OO Herencia – Clases Abstractas (Implementación en C#) Para declarar una clase abstracta o método abstracto debe ocupar la palabra reservada abstract. Ejemplo: abstract class Marco { //cuerpo puede tener métodos abstractos y otros. } Las Clases Abstractas son clase no terminadas que contienen planos para lo que es necesario que se termine.
26. Principios Básicos de la OO Herencia – Clases Abstractas (Implementación en C#) Ejemplo: >>>>
27. Principios Básicos de la OO Polimorfismo La capacidad de definir varias clases con una funcionalidad diferente, pero con métodos de nombre idéntico, o propiedades que puede usar el código del cliente de manera intercambiable en el tiempo de ejecución. Literalmente el polimorfismo significa muchas formas o muchas figuras. Es el concepto de que un método declarado en una clase base se puede implementar en muchas formas distintas en las diferentes clases derivadas.
28.
29. Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo de interfaz Esta es una técnica poderosa en la programación orientada a objetos es la capacidad de implementar varias interfaces en un objeto. Ejemplo: >>>>
30. Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo de herencia Este es un mecanismo potente para tareas de desarrollo a escala pequeña, pero por lo general ha probado ser problemático para sistemas a gran escala. Métodos Virtuales Para proporcionar este tipo de polimorfismo se deben utilizar los métodos virtuales. Un método virtual es uno cuya implementación se puede reemplazar a través de un método en una clase derivada. Cuando crea un método en una clase base que espera que se altere en las clases derivadas, defina el método en su clase base como un método virtual.
31. Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo de herencia Para declarar un método virtual se utiliza la palabra clave virtual. Ejemplo: class ejemplo { public virtual metodo() { /* cuerpo método */ } } Para sobrescribir un método en la clase derivada se utiliza la palabra reservada override.
32. Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo de herencia Ejemplo: >>>>
33. Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo a través de clase abstracta Ejemplo: >>>>