La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 3 Lenguajes.Net y POO Lenguajes.Net y POO [UTN - Tecnologías de desarrollo de software IDE] [2008]

Presentaciones similares


Presentación del tema: "Unidad 3 Lenguajes.Net y POO Lenguajes.Net y POO [UTN - Tecnologías de desarrollo de software IDE] [2008]"— Transcripción de la presentación:

1 Unidad 3 Lenguajes.Net y POO Lenguajes.Net y POO [UTN - Tecnologías de desarrollo de software IDE] [2008]

2 Contenidos Programación Orientada a Objetos Conceptos fundamentales del paradigma de OO Clases y Objetos Constructores y Destructores Métodos y Atributos Abstracción y Encapsulamiento Herencia Simple y Múltiple e Interfaces Polimorfismo Ocultamiento Clases Abstractas y Métodos Virtuales Clases Parciales (Partial Classes) Diseñador de Clases (Class Designer) Programación Orientada a Objetos Conceptos fundamentales del paradigma de OO Clases y Objetos Constructores y Destructores Métodos y Atributos Abstracción y Encapsulamiento Herencia Simple y Múltiple e Interfaces Polimorfismo Ocultamiento Clases Abstractas y Métodos Virtuales Clases Parciales (Partial Classes) Diseñador de Clases (Class Designer)

3 ¿Qué es la Programación Orientada a Objetos? Es una manera de construir Software basada en un nuevo paradigma. Propone resolver problemas de la realidad a través de identificar objetos y relaciones de colaboración entre ellos. El Objeto y el mensaje son sus elementos fundamentales. Es una manera de construir Software basada en un nuevo paradigma. Propone resolver problemas de la realidad a través de identificar objetos y relaciones de colaboración entre ellos. El Objeto y el mensaje son sus elementos fundamentales. POO

4 Clases Implica clasificación en base a comportamiento y atributos comunes Crea un vocabulario La forma en que nos comunicamos La forma en que nos expresamos Es una construcción estática Describe Comportamiento común Atributos [estado] Incluye Datos Funciones (métodos) POO

5 Constructor y Destructor Dos métodos de las clases, existen por defecto Constructor, inicializa valores Destructor, libera recursos al finalizar la vida de una instancia de una clase creada en memoria (en.Net) Existen constructores y destructores por defecto POO

6 ¿Qué es un objeto? Instancia de una clase Un objeto posee: Identidad: Relación única entre el objeto del modelo y el ente de la realidad que representa. Se implementa a través de un id único en el modelo. Comportamiento: Resuelve un conjunto particular de problemas a través de su protocolo. Estado: Almacena información Fija Variable POO

7 Pilares de POO POO Polimorfismo Herencia Abstracción Encapsulamiento

8 Abstracción Ignorancia selectiva Ignorancia selectiva Decide que es importante y que no lo es Decide que es importante y que no lo es Se enfoca [depende] en lo que es importante Se enfoca [depende] en lo que es importante Ignora [no depende] de lo que no es importante Ignora [no depende] de lo que no es importante Utiliza la encapsulación para reforzar la abstracción Utiliza la encapsulación para reforzar la abstracción POO

9 Encapsulamiento POO Acelera() velocidad Frena() 125 km/h 40 km/h 300 km/h

10 ¿Por qué usar Encapsulamiento? Control Control Cambios Cambios POO

11 Encapsulamiento Métodos públicos: accesibles desde afuera Métodos públicos: accesibles desde afuera Métodos privados: accesibles desde adentro Métodos privados: accesibles desde adentro POO Acelera() velocidad Frena() Controlador del Motor

12 Herencia Es una relación un tipo de entre clases Es una relación un tipo de entre clases Va de la generalización a la especialización Va de la generalización a la especialización Clase Base / Clase Derivada Clase Base / Clase Derivada Hereda la implementación Hereda la implementación POO Automóvil Transporte Acelera Frena

13 Jerarquías de Clases – Ejemplo I POO Transporte MarítimoAireNieveTierra DentroAtmosferaFueraAtmosfera1-PersonaN-Personas

14 Jerarquía de Clases – Ejemplo II POO Cuentas Cuenta CorrienteCaja Ahorro ComúnSueldo

15 Herencia Simple y Múltiple Simple: La clase hija deriva de una única clase padre Simple: La clase hija deriva de una única clase padre Múltiple: La clase hija deriva de varias clases padre Múltiple: La clase hija deriva de varias clases padre No es soportada por todos los lenguajes No es soportada por todos los lenguajes Puede ser confusa Puede ser confusa POO 1-PersonaTerrestreNieve

16 Clases Abstractas Proveen una implementación parcial para que sea heredada por las clases derivadas Proveen una implementación parcial para que sea heredada por las clases derivadas No pueden ser instanciadas No pueden ser instanciadas POO Transporte { abstract } Taxi > Colectivo >

17 Métodos Abstractos Solo en clases abstractas Solo en clases abstractas No pueden contener implementación No pueden contener implementación Deben ser implementados por las clases derivadas Deben ser implementados por las clases derivadas Los métodos abstractos son virtuales Los métodos abstractos son virtuales Los métodos abstractos pueden sobrescribir métodos de la clase base declarados como virtuales Los métodos abstractos pueden sobrescribir métodos de la clase base declarados como virtuales Los métodos abstractos pueden sobrescribir métodos de la clase base declarados como override Los métodos abstractos pueden sobrescribir métodos de la clase base declarados como override POO

18 Métodos Virtuales Es un método que la clase base permite que sea sobrescrito en una clase derivada Es un método que la clase base permite que sea sobrescrito en una clase derivada Un método no-virtual es la UNICA implementación posible para este método Un método no-virtual es la UNICA implementación posible para este método POO

19 Interfases Definen un contrato Definen un contrato Contienen solo métodos sin implementación Contienen solo métodos sin implementación No heredan atributos No heredan atributos No se pueden crear instancias de una interfase No se pueden crear instancias de una interfase Las clases derivadas deben de implementar todas las operaciones heredadas Las clases derivadas deben de implementar todas las operaciones heredadas POO ITransportable Acelera Frena

20 Interfases Una clase puede implementar cero, una o más interfases Una clase puede implementar cero, una o más interfases Deben de implementarse todos los métodos heredados por la interfase Deben de implementarse todos los métodos heredados por la interfase Las interfases a su vez pueden heredar de múltiples interfases Las interfases a su vez pueden heredar de múltiples interfases POO

21 Polimorfismo - Definición Dos o más objetos son polimórficos con respecto a un conjunto de mensajes, si todos ellos pueden responder a esos mensajes, aún cuando cada uno lo haga de un modo diferente. Dos o más objetos son polimórficos con respecto a un conjunto de mensajes, si todos ellos pueden responder a esos mensajes, aún cuando cada uno lo haga de un modo diferente. POO

22 Polimorfismo La definición del método reside en la clase base La definición del método reside en la clase base La implementación del método reside en la clase derivada La implementación del método reside en la clase derivada POO Cohete Acelera Frena Transporte Acelera Frena Auto Acelera Frena Caballo Acelera Frena

23 Sobrecarga de Métodos Definir más de un método por cada mensaje, los tipos de los argumentos ayudan a decidir a qué mensaje se invoca Tareas similares son realizadas por métodos con mismo nombre Simplifican la tarea del desarrollador, al no tener que recordar distintos nombres para comportamientos iguales POO

24 Laboratorio Creando Clases Class Designer

25 ClasesClases Clase: es la definición de las características de un determinado tipo de objeto. Clase: es la definición de las características de un determinado tipo de objeto. C#: son declaradas mediante class C#: son declaradas mediante class VB.NET: usa las palabras Class / End Class VB.NET: usa las palabras Class / End Class Clase: es la definición de las características de un determinado tipo de objeto. Clase: es la definición de las características de un determinado tipo de objeto. C#: son declaradas mediante class C#: son declaradas mediante class VB.NET: usa las palabras Class / End Class VB.NET: usa las palabras Class / End Class POO y Sintaxis

26 Constructores Constructor: funciones dentro de la clase, que son llamadas cuando se crea una instancia de dicha clase. Constructor: funciones dentro de la clase, que son llamadas cuando se crea una instancia de dicha clase. En C# tienen el mismo nombre de la clase En C# tienen el mismo nombre de la clase VB.NET usa un procedimiento Sub New VB.NET usa un procedimiento Sub New Constructor: funciones dentro de la clase, que son llamadas cuando se crea una instancia de dicha clase. Constructor: funciones dentro de la clase, que son llamadas cuando se crea una instancia de dicha clase. En C# tienen el mismo nombre de la clase En C# tienen el mismo nombre de la clase VB.NET usa un procedimiento Sub New VB.NET usa un procedimiento Sub New POO y Sintaxis

27 Propiedades Propiedad: característica o atributo de un objeto Propiedad: característica o atributo de un objeto POO y Sintaxis C# C# VB.NET VB.NET

28 Métodos Métodos: acciones que un objeto puede llevar a cabo. Métodos: acciones que un objeto puede llevar a cabo. En C# todo método es una función En C# todo método es una función VB.NET usa procedimientos Sub y funciones Function VB.NET usa procedimientos Sub y funciones Function Métodos: acciones que un objeto puede llevar a cabo. Métodos: acciones que un objeto puede llevar a cabo. En C# todo método es una función En C# todo método es una función VB.NET usa procedimientos Sub y funciones Function VB.NET usa procedimientos Sub y funciones Function POO y Sintaxis

29 Sobrecarga de Métodos Sobrecarga: varios métodos con el mismo nombre pero diferentes parámetros. Sobrecarga: varios métodos con el mismo nombre pero diferentes parámetros. C# C# VB.NET VB.NET Sobrecarga: varios métodos con el mismo nombre pero diferentes parámetros. Sobrecarga: varios métodos con el mismo nombre pero diferentes parámetros. C# C# VB.NET VB.NET POO y Sintaxis

30 Namespaces Namespace: grupo de clases que tienen el mismo prefijo Namespace: grupo de clases que tienen el mismo prefijo POO y Sintaxis C# C# VB.NET VB.NET

31 Herencia Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad. Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad. En C# la herencia se define En C# la herencia se define VB.NET usa la palabra clave Inherits VB.NET usa la palabra clave Inherits Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad. Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad. En C# la herencia se define En C# la herencia se define VB.NET usa la palabra clave Inherits VB.NET usa la palabra clave Inherits POO y Sintaxis

32 Herencia Dos keywords que afectan la posiblidad de heredar desde una clase base. Dos keywords que afectan la posiblidad de heredar desde una clase base. C# C# VB.NET VB.NET Dos keywords que afectan la posiblidad de heredar desde una clase base. Dos keywords que afectan la posiblidad de heredar desde una clase base. C# C# VB.NET VB.NET POO y Sintaxis

33 Invocando el Constructor Base en C# El constructor default siempre invoca al constructor de la clase base POO y Sintaxis

34 Invocando el Constructor Base en VB.NET El constructor default siempre invoca al constructor de la clase base POO y Sintaxis

35 Protegiendo el Acceso a Miembros - C# Publico a las clases derivadas Publico a las clases derivadas Privado a las clases externas Privado a las clases externas No puede ser usado en estructuras No puede ser usado en estructuras Publico a las clases derivadas Publico a las clases derivadas Privado a las clases externas Privado a las clases externas No puede ser usado en estructuras No puede ser usado en estructuras POO y Sintaxis

36 Protegiendo el Acceso a Miembros - VB.NET Publico a las clases derivadas Publico a las clases derivadas Privado a las clases externas Privado a las clases externas No puede ser usado en estructuras No puede ser usado en estructuras Publico a las clases derivadas Publico a las clases derivadas Privado a las clases externas Privado a las clases externas No puede ser usado en estructuras No puede ser usado en estructuras POO y Sintaxis

37 Laboratorio Clases y Herencia

38 Interfaces: Implementación C#: declaradas mediante palabra interfase C#: declaradas mediante palabra interfase POO y Sintaxis VB.net usa palabras Interfase / End Interfase VB.net usa palabras Interfase / End Interfase

39 Interfaces Los métodos son implícitamente públicos Los métodos son implícitamente públicos Los métodos no tienen implementación Los métodos no tienen implementación No se declaran access modifiers No se declaran access modifiers Estándar Se les agrega el prefijo I Estándar Se les agrega el prefijo I Los métodos son implícitamente públicos Los métodos son implícitamente públicos Los métodos no tienen implementación Los métodos no tienen implementación No se declaran access modifiers No se declaran access modifiers Estándar Se les agrega el prefijo I Estándar Se les agrega el prefijo I POO y Sintaxis

40 Métodos de las Interfaces Una clase puede implementar cero, una o más interfaces Una clase puede implementar cero, una o más interfaces Deben de implementarse todos los métodos heredados por la interface Deben de implementarse todos los métodos heredados por la interface Las interfaces a su vez pueden heredar de múltiples interfaces Las interfaces a su vez pueden heredar de múltiples interfaces Una clase puede implementar cero, una o más interfaces Una clase puede implementar cero, una o más interfaces Deben de implementarse todos los métodos heredados por la interface Deben de implementarse todos los métodos heredados por la interface Las interfaces a su vez pueden heredar de múltiples interfaces Las interfaces a su vez pueden heredar de múltiples interfaces POO y Sintaxis

41 Implementando métodos de una Interfase (implícitamente) – C# Escribe el método exactamente de la misma forma que el método de la interfase Escribe el método exactamente de la misma forma que el método de la interfase Tienen el mismo: tipo de retorno, nombre y parámetros. Tienen el mismo: tipo de retorno, nombre y parámetros. El método implementado puede ser virtual o no virtual El método implementado puede ser virtual o no virtual Escribe el método exactamente de la misma forma que el método de la interfase Escribe el método exactamente de la misma forma que el método de la interfase Tienen el mismo: tipo de retorno, nombre y parámetros. Tienen el mismo: tipo de retorno, nombre y parámetros. El método implementado puede ser virtual o no virtual El método implementado puede ser virtual o no virtual POO y Sintaxis

42 Invocando métodos de una Interfase (implícitamente) – C# Puede ser invocada directamente a través de una clase o estructura. Puede ser invocada directamente a través de una clase o estructura. Puede realizarse un cast al tipo de la interfase. Puede realizarse un cast al tipo de la interfase. Puede ser invocada directamente a través de una clase o estructura. Puede ser invocada directamente a través de una clase o estructura. Puede realizarse un cast al tipo de la interfase. Puede realizarse un cast al tipo de la interfase. POO y Sintaxis

43 Implementando métodos de una Interfase (explícitamente) – C# Debe usarse el nombre completo del método para su acceso Debe usarse el nombre completo del método para su acceso No puede ser declarada como virtual ni especificar un access modifier No puede ser declarada como virtual ni especificar un access modifier Solo puede ser accesado a través de la interfase Solo puede ser accesado a través de la interfase Debe usarse el nombre completo del método para su acceso Debe usarse el nombre completo del método para su acceso No puede ser declarada como virtual ni especificar un access modifier No puede ser declarada como virtual ni especificar un access modifier Solo puede ser accesado a través de la interfase Solo puede ser accesado a través de la interfase POO y Sintaxis

44 Invocando Métodos de una Interfase (explícitamente) – C# No puede ser invocado de forma directa No puede ser invocado de forma directa No es parte pública de una clase No es parte pública de una clase Debe ser aplicado un cast al tipo de la interfase y llamado desde el tipo de la interfase Debe ser aplicado un cast al tipo de la interfase y llamado desde el tipo de la interfase No puede ser invocado de forma directa No puede ser invocado de forma directa No es parte pública de una clase No es parte pública de una clase Debe ser aplicado un cast al tipo de la interfase y llamado desde el tipo de la interfase Debe ser aplicado un cast al tipo de la interfase y llamado desde el tipo de la interfase POO y Sintaxis

45 Ventajas Implementación Explícita Permite que la implementación de la interfase sea excluida de la cara pública de la clase o estructura Resuelve conflictos de nombre Permite que la implementación de la interfase sea excluida de la cara pública de la clase o estructura Resuelve conflictos de nombre POO y Sintaxis

46 Implementando métodos de una Interfase - VB.NET POO y Sintaxis

47 Invocando Métodos de una Interfase – VB.NET Si fue declarada pública puede ser invocada de forma directa Si fue declarada pública puede ser invocada de forma directa Si fue declarada como privada deberá ser invocada a través de un cast al tipo de la interfase Si fue declarada como privada deberá ser invocada a través de un cast al tipo de la interfase Si fue declarada pública puede ser invocada de forma directa Si fue declarada pública puede ser invocada de forma directa Si fue declarada como privada deberá ser invocada a través de un cast al tipo de la interfase Si fue declarada como privada deberá ser invocada a través de un cast al tipo de la interfase POO y Sintaxis

48 Clases Abstractas Proveen una implementación parcial para que sea heredada por las clases derivadas Proveen una implementación parcial para que sea heredada por las clases derivadas No pueden ser instanciadas No pueden ser instanciadas Utiliza el calificador abstract en C# Utiliza el calificador abstract en C# Use MustInherit keyword in VB.NET Use MustInherit keyword in VB.NET Proveen una implementación parcial para que sea heredada por las clases derivadas Proveen una implementación parcial para que sea heredada por las clases derivadas No pueden ser instanciadas No pueden ser instanciadas Utiliza el calificador abstract en C# Utiliza el calificador abstract en C# Use MustInherit keyword in VB.NET Use MustInherit keyword in VB.NET POO y Sintaxis

49 Clases Abstractas – C# POO y Sintaxis «interface» ITransporte Transporte { abstract } Taxi > Colectivo >

50 Clases Abstractas – VB.NET POO y Sintaxis «interface» ITransporte Transporte { abstract } Taxi > Colectivo >

51 Métodos Abstractos Solo en clases abstractas Solo en clases abstractas No pueden contener implementación No pueden contener implementación Deben ser implementados por las clases derivadas Deben ser implementados por las clases derivadas Utiliza el calificador abstract en C# Utiliza el calificador abstract en C# Utiliza MustOverride en VB.NET Utiliza MustOverride en VB.NET Son virtuales Son virtuales Pueden sobrescribir métodos de la clase base declarados como virtuales Pueden sobrescribir métodos de la clase base declarados como virtuales Pueden sobrescribir métodos de la clase base declarados como override Pueden sobrescribir métodos de la clase base declarados como override Solo en clases abstractas Solo en clases abstractas No pueden contener implementación No pueden contener implementación Deben ser implementados por las clases derivadas Deben ser implementados por las clases derivadas Utiliza el calificador abstract en C# Utiliza el calificador abstract en C# Utiliza MustOverride en VB.NET Utiliza MustOverride en VB.NET Son virtuales Son virtuales Pueden sobrescribir métodos de la clase base declarados como virtuales Pueden sobrescribir métodos de la clase base declarados como virtuales Pueden sobrescribir métodos de la clase base declarados como override Pueden sobrescribir métodos de la clase base declarados como override POO y Sintaxis

52 Métodos Estáticos Miembros que no requieren de una instancia para ser invocados Miembros que no requieren de una instancia para ser invocados C# C# VB.NET VB.NET Miembros que no requieren de una instancia para ser invocados Miembros que no requieren de una instancia para ser invocados C# C# VB.NET VB.NET POO y Sintaxis

53 Laboratorio Integrando conceptos Class Designer

54 Diseñador de Clases Class Designer

55 Diseñador de Clases: Usos Entender el código existente Diseñar las clases Revisar y modificar código Generar diagramas para documentación Class Designer

56 Diseñador de Clases: Características Refleja el archivo de código fuente relacionado El diagrama es una vista del código Almacenado a nivel de proyecto Soporta herencia Soporta asociaciones Soporta enums y structs Class Designer

57 Diseñador de Clases: Elementos Elementos del designer Class Enum Interface Abstract Class Struct Delegate Inheritance Association Comment Class Designer

58 Class Designer: Agregando una clase Class Designer

59 Diseñador de Clases Implementando una Interfase Visualizando la jerarquía de clases Class Designer

60 Laboratorio Diseñador de Clases Class Designer

61 Resumen POO Clases y Objetos Constructores y Destructores Métodos y Atributos Abstracción y Encapsulamiento Herencia Simple y Múltiple e Interfaces Polimorfismo Ocultamiento Clases Abstractas y Métodos Virtuales Clases Parciales (Partial Classes) POO en Net Diseñados de Clases POO Clases y Objetos Constructores y Destructores Métodos y Atributos Abstracción y Encapsulamiento Herencia Simple y Múltiple e Interfaces Polimorfismo Ocultamiento Clases Abstractas y Métodos Virtuales Clases Parciales (Partial Classes) POO en Net Diseñados de Clases


Descargar ppt "Unidad 3 Lenguajes.Net y POO Lenguajes.Net y POO [UTN - Tecnologías de desarrollo de software IDE] [2008]"

Presentaciones similares


Anuncios Google