Programación Orientada a Objetos en .NET con C# (4ª parte)

8. December 2008 02:50 by Oscar.SS in Desarrollo .NET, Formación  //  Tags: ,   //   Comments (0)

2. Encapsulación

c- Clases en C# (declaración y accesibilidad)

 

En el artículo anterior vimos como la encapsulación estaba directamente relacionada con las clases y la relación de estas con los objetos. Ahora vamos a ver cómo hacer uso de las clases desde nuestro código C#.

Definir una clase en C# es muy sencillo. Solo tenemos que utilizar la palabra reservada "class" seguida del nombre que queramos darle a nuestra clase.

    class Empleados
    {
 
    }

De esta forma ya tenemos una clase (también llamado tipo definido por el usuario) con la que podemos empezar a trabajar. Antes de continuar hablando de los miembros que podemos implementar en una clase debemos hacer una pausa para hablar de los modificadores de accesibilidad.

 

Modificadores de accesibilidad en .NET

Los modificadores de accesibilidad permiten definir el nivel de acceso que tendrán los tipos y los miembros de estos tipos para otros usuarios. Entendiendo por otros usuarios a otros tipos que pertenezcan al mismo proyecto o incluso a un proyecto distinto. Veamos estos modificadores por orden de accesibilidad de mayor a menor.

- public: Un tipo o miembro declarado public puede ser usado desde cualquier código que pertenezca al mismo proyecto o a un proyecto diferente. Es el modificador menos restrictivo de todos.

- internal: Un tipo o miembro declarado internal puede ser usado desde cualquier código que pertenezca al mismo proyecto. Debemos verlo como un tipo o miembro interno de nuestro proyecto.

- protected: Un tipo o miembro declarado protected solo puede ser usado por el código de la misma clase o por código de una clase derivada.

- protected internal: Es una mezcla de los dos anteriores. Puede ser usado por código que pertenezca al mismo proyecto y por código de la misma clase o de una clase derivada.

- private: Un tipo o miembro declarado private solo puede ser usado por código de la misma clase o estructura. Es el más restrictivo de todos los modificadores de accesibilidad.

Todos los tipos (y los miembros de los tipos) tienen un determinado tipo de accesibilidad predefinido. Es decir, si no utilizamos ninguno de los anteriores, el compilador de C# asignará uno por defecto. Normalmente en este estudio hablaremos de las clases por ser el tipo definido por el usuario más flexible y potente, pero en la siguiente tabla podemos ver que modificadores de accesibilidad por defecto corresponden a cada tipo.

 

 

TIPOS

Declarado en ámbito de namespace

Accesibilidad predeterminada

Accesibilidad declarada permitida

Enum

Public

Internal

Public

Class

Internal

 

Internal

Public

Interface

Public

Internal

Public

Struct

Internal

Internal

                 Public               

 

 Nota: Los miembros de las clases tales como métodos y propiedades pueden ser declarados utilizando cualquiera de los modificadores de accesibilidad, teniendo como accesibilidad predeterminada private.

Según todo lo explicado, es fácil deducir que en la declaración de nuestra clase  Empleado, como no especificamos un modificador de accesibilidad, tendrá la accesibilidad Internal.

Bueno, ahora que tenemos claro (eso espero) todo este lío de los modificadores de accesibilidad, vamos a ver en profundidad los miembros que normalmente implementaremos en una clase.

La forma de implementar una clase dependerá en gran medida de las exigencias de nuestro código y de la finalidad de la clase misma. Pero normalmente una clase será un contenedor para los siguientes miembros:

- Constructores.

- Atributos.

- Propiedades.

- Campos.

- Métodos.

- Otros tipos.

- Destructor.

 

 En los artículos siguientes trataremos cada uno de estos miembros en profundidad. La comprensión de los conceptos relacionados con la implementación de los miembros de una clase es de suma importacia para enfocar los restantes pilares (herencia y polimorfismo) de la programación orientada a objetos.

 

Recent Comments

Comment RSS

Month List