La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 3 Lenguajes .Net y POO

Presentaciones similares


Presentación del tema: "Unidad 3 Lenguajes .Net y POO"— Transcripción de la presentación:

1 Unidad 3 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) Introducción Objetivos de la Unidad Después de completar esta unidad Ud. estará habilitado para: Conocer conceptos fundamentales del Paradigma POO Asociar conceptos de POO en Visual Studio .NET Aprender a usar la herramienta “Class Designer” para crear diagrama de clases en VS.NET Conocer la sintaxis de las estructuras básicas de programación tanto en Visual Basic como en C#

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. La programación orientada a objetos entiende a la actividad de desarrollar software basados en el paradigma de orientación a objetos. Dentro de este paradigma, la programación es adquisición de conocimiento de la realidad que queremos modelar, en pos de construir un modelo computacional de la misma. Asociamos entonces a entes de la realidad, objetos del mundo computacional con el objetivo de construir un modelo de simulación de la misma. La programación orientada a objetos implica entre otros beneficios, gran capacidad de reuso. Dado que en la realidad resolvemos problemas a través de que los diferentes entes de la misma colaboren, una vez que hemos encontrado un mecanismo para resolver un problema, utilizamos éste para alcanzar el mismo resultado existoso una y otra vez. Dado que nuestro modelo computacional es una simulación de esta realidad, el reuso se presenta en ambos sentidos. El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que es orientado a objetos, si los elementos esenciales de construcción del software son objetos y mensajes. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo. 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) Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. La clasificación se basa en un comportamiento y atributos comunes. Permite crear un vocabulario estandarizado para comunicarse y pensar dentro del equipo de trabajo. Una clase es una construcción estática que describe un comportamiento común y atributos (que toman distintos estados). Su formalización es a través de una estructura de datos que incluye datos y funciones, llamadas métodos. Los métodos son los que definen el comportamiento. 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 Toda clase tiene, de manera implícita o explicita, dos métodos. El constructor y el destructor. El constructor es llamado cuado la clase comienza a ocupar un lugar en memoria, es decir, cuando comienza a ser utilizada, al ser instanciada. Se encarga de inicializar valores, e incluso muchas veces de llamar a otros constructores de otras clases. El destructor es un método que se llama al finalizar la vida de la instancia de la clase, para liberar recursos. Cualquiera de los dos métodos tienen que formar parte de las clases, existen constructores y destructores por defecto, para las clases mas simples. En clases mas complejas, el desarrollador deberá implementar estos métodos. Muchas veces, los constructores reciben parámetros con los valores con los que la clase debe inicializarse. Las llamadas a constructores y destructores pueden ser implícitas o explicitas, dependiendo de la clase, la aplicación, etc. 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 Los objetos son instancias de una clase. Cuando creamos una instancia tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto. Identidad: El principio de identidad se refiere a la relación única entre cada objeto del modelo computacional y el dominio de problema de la realidad que representa. En el modelo computacional esto se representa a través de un identificador único en el modelo. Comportamiento que le permite realizar tareas específicas, como a todos los objetos de su misma clase. Estado que se determina a través de cierta información almacenada, que puede ser fija o variable. POO

7 Pilares de POO Herencia Polimorfismo Encapsulamiento Abstracción POO

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

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

10 ¿Por qué usar Encapsulamiento?
Control Cambios POO

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

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

13 Jerarquías de Clases – Ejemplo I
Transporte Marítimo Aire Nieve Tierra DentroAtmosfera FueraAtmosfera 1-Persona N-Personas POO

14 Jerarquía de Clases – Ejemplo II
Cuentas Cuenta Corriente Caja Ahorro Común Sueldo POO

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

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

17 Métodos Abstractos Solo en clases abstractas
No pueden contener implementación Deben ser implementados por las clases derivadas 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 “override” Los métodos abstractos son declarados pero no implementados. Si existe un método abstracto entonces debemos declarar la clase como abstracta, y al declararla como tal no se pueden crear instancias de ella. Sirven para definir conceptos incompletos, que deben ser completados en las subclases de la clase abstracta. En el ejemplo, la clase transporte no puede ser instanciada, salvo desde alguna clase heredera, que implemente los métodos acelerar y frenar. POO

18 Métodos Virtuales 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 Cuando una declaración de método de instancia incluye un modificador virtual, se dice que el método es un método virtual. Si no existe un modificador virtual, se dice que el método es un método no virtual. La implementación de un método no virtual es invariable. La implementación es la misma tanto si se invoca un método en una instancia de la clase en la que se declaró o en una instancia de una clase derivada. En cambio, la implementación de un método virtual se puede sustituir por clases derivadas. El proceso de sustitución de la implementación de un método virtual heredado es conocido como reemplazamiento del método En la invocación de un método virtual, el tipo en tiempo de ejecución de la instancia para la que tiene lugar la invocación determina la implementación del método real a invocar. Cuando se invoca un método no virtual, el factor determinante es el tipo en tiempo de compilación de la instancia. Concretamente, cuando se invoca un método denominado N con una lista de argumentos A en una instancia con un tipo C en tiempo de compilación y un tipo R en tiempo de ejecución (donde R es C o una clase derivada de C), la invocación se procesa de la forma siguiente: En primer lugar, la resolución de sobrecarga se aplica a C, N y A para seleccionar un método específico M del conjunto de métodos declarados en y heredados por C. A continuación, si M es un método no virtual, se invoca M. Si no, M es un método virtual, y se invoca la implementación más derivada de M con respecto a R. Para cada método virtual que se ha declarado en una clase o heredado por ella, existe una implementación más derivada del método con respecto a esa clase. La implementación más derivada de un método virtual M con respecto a una clase R está determinada de la siguiente manera: Si R contiene la declaración virtual de M, ésta es la implementación más derivada de M. En caso contrario, si R contiene un override de M, ésta es la implementación más derivada de M. En caso contrario, la implementación más derivada de M con respecto a R es la misma que la implementación más derivada de M con respecto a la clase base directa de R. POO

19 Interfases Definen un “contrato”
Contienen solo métodos sin implementación No heredan atributos No se pueden crear instancias de una interfase Las clases derivadas deben de implementar todas las operaciones heredadas Son clases que no tienen implementación. Sirven como tipos de otras clases. Todos sus métodos son abstractos. Una clase puede implementar varias interfases. Implican un contrato, un “protocolo” para que una clase y otra, que es utilizada por esta, se puedan comunicar. POO ITransportable Acelera Frena

20 Interfases Una clase puede implementar cero, una o más interfases
Deben de implementarse todos los métodos heredados por la interfase 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. Cuando una declaración de método de instancia incluye un modificador virtual, se dice que el método es un método virtual. Si no existe un modificador virtual, se dice que el método es un método no virtual. La implementación de un método no virtual es invariable. La implementación es la misma tanto si se invoca un método en una instancia de la clase en la que se declaró o en una instancia de una clase derivada. En cambio, la implementación de un método virtual se puede sustituir por clases derivadas. El proceso de sustitución de la implementación de un método virtual heredado es conocido como reemplazamiento del método En la invocación de un método virtual, el tipo en tiempo de ejecución de la instancia para la que tiene lugar la invocación determina la implementación del método real a invocar. Cuando se invoca un método no virtual, el factor determinante es el tipo en tiempo de compilación de la instancia. Concretamente, cuando se invoca un método denominado N con una lista de argumentos A en una instancia con un tipo C en tiempo de compilación y un tipo R en tiempo de ejecución (donde R es C o una clase derivada de C), la invocación se procesa de la forma siguiente: En primer lugar, la resolución de sobrecarga se aplica a C, N y A para seleccionar un método específico M del conjunto de métodos declarados en y heredados por C. A continuación, si M es un método no virtual, se invoca M. Si no, M es un método virtual, y se invoca la implementación más derivada de M con respecto a R. Para cada método virtual que se ha declarado en una clase o heredado por ella, existe una implementación más derivada del método con respecto a esa clase. La implementación más derivada de un método virtual M con respecto a una clase R está determinada de la siguiente manera: Si R contiene la declaración virtual de M, ésta es la implementación más derivada de M. En caso contrario, si R contiene un override de M, ésta es la implementación más derivada de M. En caso contrario, la implementación más derivada de M con respecto a R es la misma que la implementación más derivada de M con respecto a la clase base directa de R. POO

22 Polimorfismo La definición del método reside en la clase base
La implementación del método reside en la clase derivada Auto Acelera Frena El término de polimorfismo también define la capacidad de que más de un objeto puedan crearse usando la misma clase de base para lograr dos conceptos de objetos diferentes, en este caso podemos citar el típico ejemplo de los teléfonos, los cuales se basan en un teléfono base, con la capacidad de hacer ring y tener un auricular, para luego obtener un teléfono digital, inalámbrico, con botonera de marcado y también, tomando la misma base, construir un teléfono analógico y con disco de marcado. Si en el momento de la compilación de un programa se conoce la clase concreta del objeto que se usará, las llamadas a sus métodos quedarán fijadas mediante lo que se conoce como "enlace estático o temprano" (early binding), si no, habrá de determinarse la llamada adecuada en tiempo de ejecución, efectuándose entonces un "enlace dinámico o tardío" (late binding). Cohete Acelera Frena POO Transporte 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
Proponer a los asistentes del curso la creación descripción, en atributos y métodos, de distintos objetos del mundo real. Por ejemplo: Auto, Casa, Multa por infracción de transito, Tarjeta de débito. ¿Qué otras cosas se pueden modelizar mediante POO? Class Designer

25 Clases Clase: es la definición de las características de un determinado tipo de objeto. C#: son declaradas mediante 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. En C# tienen el mismo nombre de la clase VB.NET usa un procedimiento Sub New POO y Sintaxis

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

28 Métodos Métodos: acciones que un objeto puede llevar a cabo.
En C# todo método es una función 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. C# VB.NET POO y Sintaxis

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

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

32 Herencia Dos keywords que afectan la “posiblidad” de heredar desde una clase base. C# 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 “Privado” a las clases externas No puede ser usado en estructuras POO y Sintaxis

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

37 Laboratorio Clases y Herencia

38 Interfaces: Implementación
C#: declaradas mediante palabra interfase VB.net usa palabras Interfase / End Interfase Una interfase define un contrato. Una clase o estructura que implementa una interfase se adhiere a ese contrato. Una interfase puede heredar de varias interfaces base, y una clase o estructura puede implementar varias interfaces. Las interfaces pueden contener métodos, propiedades, eventos e indexadores. Por si misma no provee implementaciones para los miembros que define. Solamente especifica los miembros que deben ser suministrados por las clases que la implementan. En C#, las implementaciones se definen siguiendo al nombre de la clase por un :, en VB.NET, debe utilizarse Implements POO y Sintaxis

39 Interfaces Los métodos son implícitamente públicos
Los métodos no tienen implementación No se declaran “access modifiers” 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 Deben de implementarse todos los métodos heredados por la interface 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 Tienen el mismo: tipo de retorno, nombre y parámetros. El método implementado puede ser virtual o no virtual NOTAS (from MSDN) C# Language Reference virtual (C# Reference) The virtual keyword is used to modify a method, property, indexer or event declaration, and allow it to be overridden in a derived class. For example, this method can be overridden by any class that inherits it: public virtual double Area() { return x * y; } The implementation of a virtual member can be changed by an overriding member in a derived class. For more information on using the virtual keyword, see Versioning with the Override and New Keywords (C# Programming Guide) and Knowing When to Use Override and New Keywords (C# Programming Guide). Remarks When a virtual method is invoked, the run-time type of the object is checked for an overriding member. The overriding member in the most derived class is called, which might be the original member, if no derived class has overridden the member. By default, methods are non-virtual. You cannot override a non-virtual method. You cannot use the virtual modifier with the static, abstract, private or override modifiers. Virtual properties behave like abstract methods, except for the differences in declaration and invocation syntax. It is an error to use the virtual modifier on a static property. A virtual inherited property can be overridden in a derived class by including a property declaration that uses the override modifier. Example In this example, the class Dimensions contains the two coordinates x, y, and the Area() virtual method. Different shape classes such as Circle, Cylinder, and Sphere inherit the Dimensions class, and the surface area is calculated for each figure. Each derived class has it own override implementation of Area(). The program calculates and displays the proper area for each figure by invoking the proper implementation of Area() according to the object associated with the method. Notice that the inherited classes Circle, Sphere, and Cylinder are all using constructors that initialize the base class, for example: 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 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 No puede ser declarada como virtual ni especificar un “access modifier” 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 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 NOTA: El “cast” aplicado a estructuras se lo conoce como operación de “boxing” 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 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 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 No pueden ser instanciadas Utiliza el calificador abstract en C# Use MustInherit keyword in VB.NET POO y Sintaxis

49 Clases Abstractas – C# POO y Sintaxis «interface» ITransporte
Colectivo <<Concrete>> <<Concrete>> POO y Sintaxis

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

51 Métodos Abstractos Solo en clases abstractas
No pueden contener implementación Deben ser implementados por las clases derivadas Utiliza el calificador abstract en C# Utiliza MustOverride en VB.NET Son virtuales Pueden sobrescribir métodos de la clase base declarados como virtuales 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 C# VB.NET En teoría de Paradigmas de Programación Orientada a Objetos se lo conoce también como Métodos de Clase 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 ¿Por qué usar Class Designer? -Permite entender el código existente: El código existente puede ser complicado y confuso de entender. Con un diseñador de clases visual, es posible explorar de manera gráfica la jerarquía de clases y comprender como las clases se relacionan entre si -Diseño de clases: El diseñador de clases visual permite crear gráficamente el diseño y la implementación en alto nivel del software -Revisar y refactorizar el código: Un diseñador visual de clases es una herramienta poderosa para revisión y refactorización de código. Los diagramas existentes pueden ser revisados y refactorizados, ganando tiempo. -Diagramas de clases para documentación: Los diagramas de clases pueden ser utilizados para documentar las jerarquías de clases existentes, mostrando de manera gráfica la herencia. Los diagramas de clases también son útiles para comunicar ideas en grupos de trabajo 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 El Class Designer de Visual Studio es un entorno de diseño visual para la CLR. Permite visualizar estructuras de clases y otros tipos, y a través de esas representaciones visuales, editar el código fuente. Los cambios realizados a los diagramas de clase se reflejan en el código y los cambios hechos en código, se reflejan en el diagrama de clases. Esta relación sincrónica entre código y diseñador hace mas fácil crear y configurar tipos complejos. El Class Designer contiene características diseñadas específicamente para ayudar en la refactorización de código así como también permite renombrar de manera sencilla identificadores y sobrescribir métodos. Es posible generar de manera automática clases y estructuras, e implementar interfaces automáticamente. Class Designer

57 Diseñador de Clases: Elementos
Elementos del designer Class Enum Interface Abstract Class Struct Delegate Inheritance Association Comment Para agregar un nuevo diagrama de clases (class diagram), seleccionar la opción “Agregar un nuevo Ítem” del proyecto en el que se desea agregar el diagrama. Aparecerá el cuadro de diálogo, allí se debe seleccionar la opción “Class Diagram”. Se deberá asignar un nombre al diagrama. Luego aparecerá como un ítem mas del proyecto. Para diseñar el diagrama de clases basta simplemente con arrastrar y soltar los distintos elementos en el área de diseño. Estos elementos son: Class Enum Interface Abstract Class Struct Delegate Inheritance Association Comment Class Designer

58 Class Designer: Agregando una clase
Para agregar una nueva clase, se debe seleccionar el ítem Class de la ToolBox y arrastrarlo sobre el área de diseño. Automáticamente se abrirá una ventana en la que se debe ingresar el nombre de la clase, la accesibilidad (publica, privada, protegida), y el nombre del archivo donde la clase debe ser generada en código, pudiéndose especificar uno nuevo o utilizando uno ya existente. Por defecto, el Namespace donde se generará la clase es el nombre del proyecto donde se agrega. De todas formas, es posible modificarlo posteriormente. Desde la solapa “Class Details”, una vez generada la clase es posible declararle los Métodos, Atributos, Propiedades y Eventos, aclarando tipos, valores de retorno, parámetros y alcance, en caso de que corresponda. Estos también son sincronizados automáticamente con el código. Al hacer doble click en el elemento creado, el designer nos lleva automáticamente a la porción de código que se creo. Se observa que la declaración de los métodos, arroja una excepción de tipo “NotImplemented” para alertar, en tiempo de ejecución, que se esta invocando a un método que aún no ha sido implementado. Las posibilidades del class designer están ligadas completamente con el Refactoring. Si bien se verá el concepto mas adelante, este permite, por ejemplo, luego de declarar un atributo, solicitar a la IDE que implemente la property correspondiente para obtener accesibilidad. El resto de las estructuras, como Interfaces y Structs, se trabajan de la misma forma que las clases. La herramienta “Inheritance” permite hacer que una clase herede de otra o bien que una clase implemente una interfase. Class Designer

59 Diseñador de Clases Implementando una Interfase
Visualizando la jerarquía de clases Implementando una Interfase El class designer permite hacer fácil la implementación de interfases en las clases. De hecho, si la interfase se muestra en el class designer, es posible implementarla utilizando el mismo procedimiento que se utiliza para realizar una herencia, dibujando la línea de herencia desde la clase a la interfase. Si la interfase no se muestra en el class designer, de todas formas es posible implementarla arrastrando la interfase desde el visor de clases a la clase que se quiere implementar. Los métodos son generados de manera automática. Una vez implementado, se necesita agregar la implementación especifica mediante el Code Editor. Visualizando la jerarquía de herencia Es posible utilizar el Class Designer para visualizar la jerarquía de herencia en un proyecto. Para mostrar la clase base de una clase heredera, es necesario hacer click derecho en el área de encabezado y seleccionar la opción “Show Base Class”. La clase base será agregada al diagrama. Para mostrar clases que heredan de una clase existente, se debe hacer click derecho sobre el área de encabezado de la clase y seleccionar “Show Derived Types”. Las clases derivadas se mostrarán en el designer. Class Designer

60 Laboratorio Diseñador de Clases Class Designer

61 Resumen POO POO en Net Diseñados de Clases 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"

Presentaciones similares


Anuncios Google