La sintaxis básica para definir una clase es la que a continuación se muestra:

DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: C

12 downloads 21 Views 203KB Size

Recommend Stories


Algunos autores que intentan definir a la Andragogía expresan:
Universidad Nacional Autónoma de México Dirección de Educación Continua ANDRAGOGÍA. SU UBICACIÓN EN LA EDUCACIÓN CONTINUA Lic. Néstor Fernández Sánche

ESTA ES UNA MUESTRA. PROHIBIDA SU REPRODUCCIÓN
ES TR A Latinoamericana para la Familia Alianza .P R O H IB ID A SU R EP R O D U C C IÓ N APRENDIENDO A QUERER Un nuevo grupo de amigos liderados po

La transacción que se utiliza es la FBCJ Esta es la transacción que deben utilizar
Página 1 de 12 Versión: 1 Código: I15 Fecha de actualización: 30/11/2011 INSTRUCTIVO REEMBOLSO DE CAJA MENOR ELABORÓ Jenny Ovalle Ramirez Gerente ad

La fotografía muestra una banda transportadora que se utiliza en un aeropuerto
M703: Banda transportadora A) Presentación del problema La fotografía muestra una banda transportadora que se utiliza en un aeropuerto. Para traslada

ELEMENTOS PARA DEFINIR LA ORIENTACIÓN EPISTEMOLÓGICA DE LA INVESTIGACIÓN QUE SE REALIZA DESDE LAS CIENCIAS DE LA EDUCACIÓN
………………………………………………………………………………………………………………… ELEMENTOS PARA DEFINIR LA ORIENTACIÓN EPISTEMOLÓGICA DE LA INVESTIGACIÓN QUE SE REALIZA DESDE LAS CIENCI

Se empezará por definir que es un proyecto, de acuerdo al libro Evaluación de
MARCO DE REFERENCIA 2. MARCO DE REFERENCIA 2.1 PROYECTO Se empezará por definir que es un proyecto, de acuerdo al libro Evaluación de Proyectos d

MATERIAL DIDÁCTICO "LA ENERGIA ES UNA FUERZA QUE SIEMPRE SE TRANSFORMA, NUNCA SE DESVANECE"
MATERIAL DIDÁCTICO "LA ENERGIA ES UNA FUERZA QUE SIEMPRE SE TRANSFORMA, NUNCA SE DESVANECE" Definición de energía y su relación con el trabajo. Llama

Story Transcript

DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: Código: class nombreClase { miembros }

De este modo se definiría una clase de nombre "nombreClase" cuyos miembros son los definidos en "miembros". Los miembros de una clase son los atributos y métodos de los que van a disponer todos los objetos de la misma. Modificadores de Acceso - Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase * Public: Cualquier clase puede “ver” los miembros públicos de otra clase * Private: Sólo la clase puede ver sus propios miembros privados * Protected: un miembro protected solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella. Constructores Son métodos dentro de la clase que son llamados automáticamente cuando se crea una instancia de dicha clase Destructores Al igual que es posible definir métodos constructores que incluyan código que gestione la creación de objetos de un tipo de dato, también es posible definir un destructor que gestione cómo se destruyen los objetos de ese tipo de dato. Este método suele ser útil para liberar recursos tales como los ficheros o las conexiones de redes abiertas que el objeto a destruir estuviese acaparando en el momento en que se fuese a destruir.

La destrucción de un objeto es realizada por el recolector de basura cuando realiza una recolección de basura y detecta que no existen referencias a ese objeto ni en pila, ni en registros ni desde otros objetos sí referenciados. Las recolecciones se inician automáticamente cuando el recolector detecta que queda poca memoria libre o que se va a finalizar la ejecución de la aplicación, aunque también puede forzarse llamando al método Collect() de la clase System.GC La sintaxis que se usa para definir un destructor es la siguiente: Código: ~() { }

Operador new Ahora que ya sabemos cómo definir las clases de objetos que podremos usar en nuestras aplicaciones ha llegado el momento de explicar cómo crear objetos de una determinada clase. Algo de ello ya se introdujo en el Tema 4: Aspectos Léxicos cuando se comentó la utilidad del operador new, que precisamente es crear objetos y cuya sintaxis es: Código: new ()

Este operador crea un nuevo objeto del tipo cuyo nombre se le indica y llama durante su proceso de creación al constructor del mismo apropiado según los valores que se le pasen en "parametros", devolviendo una referencia al objeto recién creado. Hay que resaltar el hecho de que new no devuelve el propio objeto creado, sino una referencia a la dirección de memoria dinámica donde en realidad se ha creado.

El antes comentado constructor de un objeto no es más que un método definido en la definición de su tipo que tiene el mismo nombre que la clase a la que pertenece el objeto y no tiene valor de retorno. Como new siempre devuelve una referencia a la dirección de memoria donde se cree el objeto y los constructores sólo pueden usarse como operandos de new, no tiene sentido que un constructor devuelva objetos, por lo que no tiene sentido incluir en su definición un campo "tipoDevuelto" y el compilador considera erróneo hacerlo (aunque se indique void) El constructor recibe ese nombre debido a que su código suele usarse precisamente para construir el objeto, para inicializar sus miembros. Métodos Un método es un conjunto de instrucciones a las que se les asocia un nombre de modo que si se desea ejecutarlas basta referenciarlas a través de dicho nombre en vez de tener que escribirlas. Dentro de estas instrucciones es posible acceder con total libertad a la información almacenada en los campos pertenecientes a la clase dentro de la que el método se ha definido, por lo que como al principio del tema se indicó, los métodos permiten manipular los datos almacenados en los objetos. La sintaxis que se usa en C# para definir los métodos es la siguiente: Código: () { }

Todo método puede devolver un objeto como resultado de la ejecución de las instrucciones que lo forman, y el tipo de dato al que pertenece este objeto es lo que se indica en "tipoDevuelto". Si no devuelve nada se

indica void, y si devuelve algo es obligatorio finalizar la ejecución de sus instrucciones con alguna instrucción return "objeto"; que indique qué objeto ha de devolverse. Opcionalmente todo método puede recibir en cada llamada una lista de objetos a los que podrá acceder durante la ejecución de sus instrucciones. En "parametros" se indica es cuáles son los tipos de dato de estos objetos y cuál es el nombre con el que harán referencia las instrucciones del método a cada uno de ellos. Aunque los objetos que puede recibir el método pueden ser diferentes cada vez que se solicite su ejecución, siempre han de ser de los mismos tipos y han de seguir el orden establecido en "parametros". EJEMPLO DE DEFINCION DE UNA CLASE EN C# Código: class Persona { string _Nombre; su nombre. int _Edad; edad. string _NIF; NIF.

// Campo de cada objeto Persona que almacena // Campo de cada objeto Persona que almacena su

// Campo de cada objeto Persona que almacena su

void Cumpleaños() objeto Persona. { Edad ; }

// Método que incrementa en uno la edad del

Persona (string nombre, int edad, string nif) // Constructor { _Nombre = nombre; _Edad = edad; _NIF = nif; } ~Persona() // Destructor { } }

Como se ve en el código, el constructor toma como parámetros los valores con los que deseemos inicializar el objeto a crear. Gracias a él, podemos crear un objeto Persona de nombre José, de 22 años de edad y NIF 12344321-A así: Código: new Persona(“José”, 22, “12344321-A”)

Nótese que la forma en que se pasan parámetros al constructor consiste en indicar los valores que se ha de dar a cada uno de los parámetros indicados en la definición del mismo separándolos por comas. Obviamente, si un parámetro se definió como de tipo string habrá que pasarle una cadena, si se definió de tipo int habrá que pasarle un entero y, en general, a todo parámetro habrá que pasarle un valor de su mismo tipo (o de alguno convertible al mismo), produciéndose un error al compilar si no se hace así. Una vez creado un objeto lo más normal es almacenar la dirección devuelta por new en una variable del tipo apropiado para el objeto creado. El siguiente ejemplo -que como es lógico irá dentro de la definición de algún método- muestra cómo crear una variable de tipo Persona llamada p y cómo almacenar en ella la dirección del objeto que devolvería la anterior aplicación del operador new: Código: Persona p; // Creamos variable p p = new Persona(“Jose”, 22, “12344321-A”); // Almacenamos en p el objeto creado con new

Propiedades Las propiedades permiten implementar el encapsulamiento, impidiendo el acceso directo a los atributos de una clase y proporcionando un mecanismo para poder obtener y asignar sus valores. Código: public string Nombre { get { return _Nombre; } set { _Nombre= value; } } } // Main() p.Nombre = “Pepe”; //Asignación Mostrar(p.Nombre); //Obtención

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.