Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Upcoming SlideShare
Loading in...5
×
 

Unidad 2 ProgramacióN Orientada A Objetos (Repaso)

on

  • 3,345 views

Curso de Metodologías de Análisis y Diseño - Cap. 2

Curso de Metodologías de Análisis y Diseño - Cap. 2

Statistics

Views

Total Views
3,345
Views on SlideShare
3,341
Embed Views
4

Actions

Likes
0
Downloads
87
Comments
0

1 Embed 4

http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Unidad 2 ProgramacióN Orientada A Objetos (Repaso) Unidad 2 ProgramacióN Orientada A Objetos (Repaso) Presentation Transcript

  • 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
  • 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++.
  • Clases
    • Existen varias definiciones de clases:
      • Una representación abstracta de algo real : esto, ya que los elementos básicos para una clasificación se encuentran en una clase. Ejemplo: Si quisiéramos clasificar a los perros sabríamos que cada uno de ellos tiene comportamientos comunes (caminan, ladran, comen) y características (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.
  • 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(…..); … . }
  • Objetos
    • Un objeto es la instancia de una clase. Una clase es una representación 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 información.
  • 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”;
  • 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
  • Objetos (Implementación en C#) Miembros estáticos versus instancias Ejemplo uso de static: >>>>>>
  • Principios Básicos de la OO Encapsulamiento
    • El encapsulamiento se puede reflejar de dos maneras:
      • Combinar los datos y los métodos 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 límite para controlar selectivamente la capacidad de acceso de las entidades: algunos se podrán acceder solamente desde dentro; otras tanto como desde dentro como desde fuera. Los miembros que siempre son accesibles son públicos, y los que sólo se pueden acceder desde dentro son privados.
  • 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
  • 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 } }
  • Principios Básicos de la OO Encapsulamiento (Implementación en C#) Propiedades Ejemplo: >>>>>>
  • Principios Básicos de la OO Encapsulamiento (Implementación 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 método 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 estáticos: son los que inicializan las clases.
    • Nota: Sino se define un constructor, se crea un constructor por defecto
  • Principios Básicos de la OO Encapsulamiento (Implementación 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 método 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 estáticos: son los que inicializan las clases.
    • Nota: Sino se define un constructor, se crea un constructor por defecto.
  • Principios Básicos de la OO Encapsulamiento (Implementación en C#) Constructores Ejemplo: >>>>
  • Principios Básicos 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”.
    • Más técnicamente, la herencia especifica una relación es un tipo de
        • Un perro es un tipo de animal.
        • Un conejo es un tipo de animal.
    Las clases derivadas heredan propiedades y métodos de una clase base. Por lo tanto, la clase derivada reutiliza la funcionalidad de la clase base. (REUTILIZACIÓN) Animal Conejo Perro
  • 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
  • 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).
  • Principios Básicos de la OO Herencia (Implementación en C#) Ejemplo: >>>>
  • 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.
  • 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.
  • 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.
  • Principios Básicos de la OO Herencia – Interfaces (Implementación en C#) Ejemplo: >>>>
  • 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.
  • 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.
  • Principios Básicos de la OO Herencia – Clases Abstractas (Implementación en C#) Ejemplo: >>>>
  • 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.
  • Principios Básicos de la OO Polimorfismo (Implementación en C#)
    • El polimorfismo se puede implementar de varias formas:
      • Polimorfismo de interfaz : Varias clases pueden implementar la misma interfaz. La implementación específica de los miembros de la interfaz pertenecen a cada clase de implementación.
      • 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 través 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 implementación. Los miembros que se implementan aún pueden sobrescribirse.
  • 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: >>>>
  • 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.
  • 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.
  • Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo de herencia Ejemplo: >>>>
  • Principios Básicos de la OO Polimorfismo (Implementación en C#) Polimorfismo a través de clase abstracta Ejemplo: >>>>
  • Bibliografía
    • Guía del Tópico:
    • Software Engineering 6a. ed.– Ian Sommerville – Pearson Education – 2000. (Cap. 6)
    • Ingeniería de Software Teoría y Práctica – Shari Lawrence Pfleeger – Pearson Education – 2002.
    • Utilización de UML en ingeniería del software con objetos y componentes – Perdita Stevens & Rob Pooley – Addison Wesley – 2002.
    • UML y Patrones una introducción al análisis y diseño orientados a objeto y al proceso unificado – Craig Larman – Prentice Hall - 2002.