Introducción a las clases

Introducción

En un lenguaje de procedimientos, no hay ningún enlace entre los datos y los procedimientos que los manejan. Por el contrario en un lenguaje orientado a objetos agrupamos los datos con el código que lo manejan. Las CLASES son la representación simbólica de los OBJETOS. Las CLASES describen campos, propiedades, métodos y eventos.

Haciendo una analogía con el trabajo de un ingeniero, la CLASE se correspondería con el plano de un motor y e OBJETO serían los diferentes motores que se construyen a partir de ese plano. Crear un OBJETO a partir de un una clase es lo que se llama INSTANCIAR.

Las tres propiedades de la ORIENTACIÓN A OBJETOS son:

  1. ENCAPSULACIÓN: Agrupa datos y códigos en una única clase.
  2. HERENCIA: Permite la creación de una nueva clase a partir de otra ya existente, de la cual se hereda todo y puede personalizarse añadiendo o modificando propiedades y métodos heredados. Las clases creadas a partir de otras existentes se llaman CLASES DERIVADAS.
  3. POLIMORFISMO: Gracias a esta propiedad se pueden utilizar diferentes clases de forma intercambiable. Otros conceptos asociados al polimorfismo son la SOBRECARGA,  SOBREESCRITURA y la OCULTACIÓN.

UML_POO1

Ejemplo CLASE Persona con notación UML.

 

 

 

 

Declaración de una clase

Sintaxis general:

Para determinar la visibilidad el lenguaje cuenta con las siguientes palabras clave:

  1. public: la clase puede ser utilizada en cualquier proyecto.
  2. internal: la clase está limitada al proyecto en el cual está definida.
  3. private: la clase sólo puede usarse en el módulo en la que está definida.
  4. protected: la clase sólo puede ser utilizada en una subclase. Es decir sólo se puede utilizar protected para una clase declarada en otra clase.
  5. protected internal: lo mismo que internal + protected.
  6. abstract: no permite crear instancias de esta clase, sólo sirve para ser heredada como clase base. Suelen tener los métodos definidos pero sin ninguna operatividad con lo que se suele escribir estos métodos en las clases derivadas.
  7. sealed: cuando una clase es la última de una jerarquía, por lo que no podrá ser utilizada como base de otra clase.

 

Clase Parcial

Podemos definir una clase en varias declaraciones, pudiendo así utilizar varios archivos fuente para declarar una clase. Se utiliza normalmente para permitir la personalización de clases generadas automáticamente. el código generado suele colocarse en un archivo llamado .designer.cs; y durante la compilación se agrupan todas las definiciones parciales para obtener el código fuente de la clase.

Creación de propiedades privadas

Sólo lectura y sólo escritura

Se pueden restringir los accesos a una propiedad, si sólo incluimos la opción «get» lo que estamos haciendo es dando permisos de lectura; en cambio si incluimos la opción «set» lo que hacemos es dar permisos de escritura.

Propiedades indexadas

Propiedades Indexadas La propiedad indexada esperará como parámetro un índice que permita especificar el «hijo» con el cual queremos trabajar. Veamos un ejemplo de instanciación de esta clase:Ejemplo Propiedades Indexadas