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.

Más contenido relacionado

PDF
Enunciados de casos para Bases de Datos
ODP
Diferencias swing y awt
PDF
Interbloqueo
PPTX
Sql DML Lenguaje de manipulación de datos
PPT
Normalizaciòn
PPTX
Normalizacion de bases de datos
PPTX
Puertos o interfaces externas
PDF
Enunciados de casos para Bases de Datos
Diferencias swing y awt
Interbloqueo
Sql DML Lenguaje de manipulación de datos
Normalizaciòn
Normalizacion de bases de datos
Puertos o interfaces externas

La actualidad más candente (20)

DOCX
Cuadro comparativo sgbd
PPTX
Unidad1 y 2
PPTX
Funcion si
PPT
metodos de busqueda en inteligencia artificial
DOCX
Entidad Relación Banco
PPTX
Diagramas clases presentacion
PPTX
Unidad 3 Fundamentos de bases de datos
PDF
Introducción a los modelos de datos
PPT
Notación infija postfija
PPT
Poo 3 herencia
DOCX
Algebra relacional (operaciones)
PPTX
Normalización en Bases de datos
PDF
polimorfismo
DOCX
Qué es uml, PARA QUE SIRVE, PASOS
PPTX
Servidores, tipos de servidores
PPT
PPTX
Introducción a PHP
PPTX
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
PPT
Rol del Analista de Sistemas
PPS
Algoritmos de Dekker
Cuadro comparativo sgbd
Unidad1 y 2
Funcion si
metodos de busqueda en inteligencia artificial
Entidad Relación Banco
Diagramas clases presentacion
Unidad 3 Fundamentos de bases de datos
Introducción a los modelos de datos
Notación infija postfija
Poo 3 herencia
Algebra relacional (operaciones)
Normalización en Bases de datos
polimorfismo
Qué es uml, PARA QUE SIRVE, PASOS
Servidores, tipos de servidores
Introducción a PHP
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Rol del Analista de Sistemas
Algoritmos de Dekker
Publicidad

Destacado (20)

PPTX
Programacion Orientada a Objetos - Unidad 2 clases y objetos
PDF
Unidad 2 clases y objetos
PPT
Unidad 1 Mad IntroduccióN
PPT
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
PPT
Unidad 2.3 Prueba De Programas
PPT
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
PPT
Unidad 1.1 Que Es La Ing. De Software
PPT
Unidad 6 Lenguaje Sql 2
PPT
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
PPT
Unidad 4 Modelo De Datos Para La ImplementacióN
PPT
Unidad 8 Diagramas De InteraccióN
PDF
Clases y objetos en Java
PPT
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
PPT
Unidad 2.2 Escribiendo El Programa
PPT
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
PPT
Unidad 5 Mad Modelado Analisis Modelo Conceptual
PPT
Unidad 10 Mad Diagrama De Clases
PPT
Curso Java Inicial 2 - Introducción y Sintaxis
PPT
Unidad 4 Mad Modelado Analisis Casos De Uso
PPT
Unidad 1 IntroduccióN A Las Bases De Datos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
Unidad 2 clases y objetos
Unidad 1 Mad IntroduccióN
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 2.3 Prueba De Programas
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 1.1 Que Es La Ing. De Software
Unidad 6 Lenguaje Sql 2
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 8 Diagramas De InteraccióN
Clases y objetos en Java
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 2.2 Escribiendo El Programa
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 10 Mad Diagrama De Clases
Curso Java Inicial 2 - Introducción y Sintaxis
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 1 IntroduccióN A Las Bases De Datos
Publicidad

Similar a Unidad 2 ProgramacióN Orientada A Objetos (Repaso) (20)

DOCX
Manual c# 2
DOCX
Manual de c#
DOCX
manual de C#
PDF
Programacion orientada-a-objetos
PPTX
Presentacion de clases en c#
PDF
Unidad II.pdf
PDF
Clase numero 6
PPTX
Conceptos basicos POO
PPT
Net1 oop vbnet
PPTX
Programacion
PPT
C# para desarrolladores VB6
DOCX
Csharp
PPT
programacion orientada a objetos en visual basic net
PPTX
PPT
programacion orientada a objetos
PPTX
Programación Orientada a Objetos
PPT
7. Fundamentos De Oo
Manual c# 2
Manual de c#
manual de C#
Programacion orientada-a-objetos
Presentacion de clases en c#
Unidad II.pdf
Clase numero 6
Conceptos basicos POO
Net1 oop vbnet
Programacion
C# para desarrolladores VB6
Csharp
programacion orientada a objetos en visual basic net
programacion orientada a objetos
Programación Orientada a Objetos
7. Fundamentos De Oo

Más de Sergio Sanchez (11)

PPT
Unidad 6 Lenguaje Sql
PPT
Unidad 5 TransformacióN Er A Relacional NormalizacióN
PPT
Unidad 3 Modelamiento De Datos Conceptual
PPT
Unidad 2 Modelo De Datos
PPT
Unidad 3.1 Prueba De Sistemas
PPT
Unidad 2.1 DiseñO De Sistemas
PPT
Unidad 1.3 Analisis De Requerimientos
PPT
Unidad 1.2 B Metodos Agiles 1
PPT
Unidad 9 Patrones De DiseñO
PPT
Unidad 3 Modelo De Negocio
PDF
Melado de Proceso de Negocios con UML
Unidad 6 Lenguaje Sql
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 3 Modelamiento De Datos Conceptual
Unidad 2 Modelo De Datos
Unidad 3.1 Prueba De Sistemas
Unidad 2.1 DiseñO De Sistemas
Unidad 1.3 Analisis De Requerimientos
Unidad 1.2 B Metodos Agiles 1
Unidad 9 Patrones De DiseñO
Unidad 3 Modelo De Negocio
Melado de Proceso de Negocios con UML

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. 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.
  • 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. 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.
  • 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
  • 8. Objetos (Implementación en C#) Miembros estáticos versus instancias Ejemplo uso de static: >>>>>>
  • 9. 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.
  • 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. 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
  • 14. 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.
  • 15. Principios Básicos de la OO Encapsulamiento (Implementación en C#) Constructores Ejemplo: >>>>
  • 16. 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
  • 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).
  • 19. Principios Básicos de la OO Herencia (Implementación en C#) Ejemplo: >>>>
  • 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. 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.
  • 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: >>>>
  • 34. 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.