SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
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 ,[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object]
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#) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principios Básicos de la OO Encapsulamiento (Implementación en C#) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principios Básicos de la OO Encapsulamiento (Implementación en C#) Constructores Ejemplo: >>>>
Principios Básicos de la OO Herencia ,[object Object],[object Object],[object Object],[object Object],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#) ,[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosJosé Antonio Sandoval Acosta
 
Implementación de clases
Implementación de clasesImplementación de clases
Implementación de clasesFernando Solis
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y desplieguejoshell
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Jsrfs Montemayor
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoJosé Antonio Sandoval Acosta
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 
Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoIván Cornejo
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonwozgeass
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosJosé Antonio Sandoval Acosta
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVAinnovalabcun
 
GRUPO 12 Ámbito: variables locales y globales
GRUPO 12  Ámbito: variables locales y globales GRUPO 12  Ámbito: variables locales y globales
GRUPO 12 Ámbito: variables locales y globales Rommel Lòpez
 

Mais procurados (20)

Programacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetosProgramacion Orientada a Objetos - Unidad 2 clases y objetos
Programacion Orientada a Objetos - Unidad 2 clases y objetos
 
Metodologia crystal
Metodologia crystalMetodologia crystal
Metodologia crystal
 
Implementación de clases
Implementación de clasesImplementación de clases
Implementación de clases
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Arreglos en Java
Arreglos en JavaArreglos en Java
Arreglos en Java
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Programacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismoProgramacion Orientada a Objetos - Undiad 4 polimorfismo
Programacion Orientada a Objetos - Undiad 4 polimorfismo
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Modelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado EvolutivoModelo de Ciclo de Vida de Prototipado Evolutivo
Modelo de Ciclo de Vida de Prototipado Evolutivo
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Polimorfismo y herencia
Polimorfismo y herenciaPolimorfismo y herencia
Polimorfismo y herencia
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Uso de Excepciones en JAVA
Uso de Excepciones en JAVAUso de Excepciones en JAVA
Uso de Excepciones en JAVA
 
GRUPO 12 Ámbito: variables locales y globales
GRUPO 12  Ámbito: variables locales y globales GRUPO 12  Ámbito: variables locales y globales
GRUPO 12 Ámbito: variables locales y globales
 

Destaque

Unidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNUnidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNSergio Sanchez
 
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del SistemaSergio Sanchez
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasSergio Sanchez
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos TradicionalesSergio Sanchez
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNSergio Sanchez
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNSergio Sanchez
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaSergio Sanchez
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Sergio Sanchez
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo ConceptualSergio Sanchez
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoSergio Sanchez
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosSergio Sanchez
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióNSergio Sanchez
 

Destaque (20)

Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Unidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNUnidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióN
 
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del SistemaUnidad 6 Mad Modelado Analsis    Diagrama De Secuencia Del Sistema
Unidad 6 Mad Modelado Analsis Diagrama De Secuencia Del Sistema
 
Unidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De ProgramasUnidad 2.3 Prueba De Programas
Unidad 2.3 Prueba De Programas
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióN
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
Unidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El ProgramaUnidad 2.2 Escribiendo El Programa
Unidad 2.2 Escribiendo El Programa
 
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
Unidad 6 Lenguaje Sql 4 (Consultas Dml Avanzado)
 
Unidad 5 Mad Modelado Analisis Modelo Conceptual
Unidad 5 Mad Modelado Analisis   Modelo ConceptualUnidad 5 Mad Modelado Analisis   Modelo Conceptual
Unidad 5 Mad Modelado Analisis Modelo Conceptual
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
Unidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De DatosUnidad 1 IntroduccióN A Las Bases De Datos
Unidad 1 IntroduccióN A Las Bases De Datos
 
Unidad 5 TransformacióN Er A Relacional NormalizacióN
Unidad 5 TransformacióN Er A Relacional   NormalizacióNUnidad 5 TransformacióN Er A Relacional   NormalizacióN
Unidad 5 TransformacióN Er A Relacional NormalizacióN
 

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

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

manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 
FPJUCE - Capitulo2
FPJUCE - Capitulo2FPJUCE - Capitulo2
FPJUCE - Capitulo2
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Revista java world cap 8,9,10
Revista java world cap 8,9,10Revista java world cap 8,9,10
Revista java world cap 8,9,10
 
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
Desarrollo de Aplicaciones Web II - Sesión 05 - Evolución de los lenguajes PO...
 
Csharp
CsharpCsharp
Csharp
 
Jyoc java-cap08 principios poo
Jyoc java-cap08 principios pooJyoc java-cap08 principios poo
Jyoc java-cap08 principios poo
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 

Mais de Sergio Sanchez

Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualSergio Sanchez
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De DatosSergio Sanchez
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasSergio Sanchez
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1Sergio Sanchez
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOSergio Sanchez
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioSergio Sanchez
 
Melado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLMelado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLSergio Sanchez
 

Mais de Sergio Sanchez (10)

Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Unidad 2 Modelo De Datos
Unidad 2 Modelo De DatosUnidad 2 Modelo De Datos
Unidad 2 Modelo De Datos
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
Unidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñOUnidad 9 Patrones De DiseñO
Unidad 9 Patrones De DiseñO
 
Unidad 3 Modelo De Negocio
Unidad 3 Modelo De NegocioUnidad 3 Modelo De Negocio
Unidad 3 Modelo De Negocio
 
Melado de Proceso de Negocios con UML
Melado de Proceso de Negocios con UMLMelado de Proceso de Negocios con UML
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.
  • 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
  • 8. Objetos (Implementación en C#) Miembros estáticos versus instancias Ejemplo uso de static: >>>>>>
  • 9.
  • 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).
  • 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.
  • 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.