 |
|
 |
Definición de clases
Conceptos de clase y objeto
C# es un lenguaje orientado a objetos puro[6], lo que significa que todo con lo que vamos a trabajar en este lenguaje son objetos. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C# no es más que un conjunto de objetos que interaccionan unos con otros a través de sus métodos.
Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. Por esta razón, se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo[7].
Sintaxis de definición de clases
La sintaxis básica para definir una clase es la que a continuación se muestra:
class <nombreClase> { <miembros> }
|
De este modo se definiría una clase de nombre cuyos miembros son los definidos en . Los miembros de una clase son los datos y métodos de los que van a disponer todos los objetos de la misma. Un ejemplo de cómo declarar una clase de nombre A que no tenga ningún miembro es la siguiente:
Una clase así declarada no dispondrá de ningún miembro a excepción de los implícitamente definidos de manera común para todos los objetos que creemos en C#. Estos miembros los veremos dentro de poco en este mismo tema bajo el epígrafe La clase primegina: System.Object.
Aunque en C# hay muchos tipos de miembros distintos, por ahora vamos a considerar que éstos únicamente pueden ser campos o métodos y vamos a hablar un poco acerca de ellos y de cómo se definen:
- Campos: Un campo es un dato común a todos los objetos de una determinada clase. Para definir cuáles son los campos de los que una clase dispone se usa la siguiente sintaxis dentro de la zona señalada como <miembros> en la definición de la misma:
<tipoCampo> <nombreCampo>;
|
El nombre que demos al campo puede ser cualquier identificador que queramos siempre y cuando siga las reglas descritas en el Tema 4: Aspectos Léxicos para la escritura de identificadores y no coincida con el nombre de ningún otro miembro previamente definido en la definición de clase.
Los campos de un objeto son a su vez objetos, y en <tipoCampo> hemos de indicar cuál es el tipo de dato del objeto que vamos a crear. Éste tipo puede corresponderse con cualquiera que los predefinidos en la BCL o con cualquier otro que nosotros hallamos definido siguiendo la sintaxis arriba mostrada. A continuación se muestra un ejemplo de definición de una clase de nombre Persona que dispone de tres campos:
class Persona { string Nombre;// Campo de cada objeto Persona que almacena su nombre int Edad; // Campo de cada objeto Persona que almacena su edad string NIF; // Campo de cada objeto Persona que almacena su NIF }
|
Según esta definición, todos los objetos de clase Persona incorporarán campos que almacenarán cuál es el nombre de la persona que cada objeto representa, cuál es su edad y cuál es su NIF. El tipo int incluido en la definición del campo Edad es un tipo predefinido en la BCL cuyos objetos son capaces de almacenar números enteros con signo comprendidos entre -2.147.483.648 y 2.147.483.647 (32 bits), mientras que string es un tipo predefinido que permite almacenar cadenas de texto que sigan el formato de los literales de cadena visto en el Tema 4: Aspectos Léxicos
Para acceder a un campo de un determinado objeto se usa la sintaxis:
Por ejemplo, para acceder al campo Edad de un objeto Persona llamado p y cambiar su valor por 20 se haría:
En realidad lo marcado como <objeto> no tiene porqué ser necesariamente el nombre de algún objeto, sino que puede ser cualquier expresión que produzca como resultado una referencia no nula a un objeto (si produjese null se lanzaría una excepción del tipo predefinido System.NullPointerException)
- Metodos: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:
<tipoDevuelto> <nombreMétodo> (<parametros>) { <instrucciones> }
|
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>.
Un ejemplo de cómo declarar un método de nombre Cumpleaños es la siguiente modificación de la definición de la clase Persona usada antes como ejemplo:
class Persona { string Nombre;//Campo de cada objeto Persona que almacena su nombre int Edad; //Campo de cada objeto Persona que almacena su edad string NIF; //Campo de cada objeto Persona que almacena su NIF void Cumpleaños()//Incrementa en uno de la edad del objeto Persona { Edad++; } }
|
La sintaxis usada para llamar a los métodos de un objeto es la misma que la usada para llamar a sus campos, sólo que ahora tras el nombre del método al que se desea llamar hay que indicar entre paréntesis cuáles son los valores que se desea dar a los parámetros del método al hacer la llamada. O sea, se escribe:
<objeto>.<método>(<parámetros>)
|
Como es lógico, si el método no tomase parámetros se dejarían vacíos los parámetros en la llamada al mismo. Por ejemplo, para llamar al método Cumpleaños() de un objeto Persona llamado p se haría:
p.Cumpleaños(); // El método no toma parámetros, // luego no le pasamos ninguno
|
Es importante señalar que en una misma clase pueden definirse varios métodos con el mismo nombre siempre y cuando tomen diferente número o tipo de parámetros. A esto se le conoce como sobrecarga de métodos, y es posible ya que el compilador sabrá a cual llamar a partir de los <parámetros> especificados.
Sin embargo, lo que no se permite es definir varios métodos que únicamente se diferencien en su valor de retorno, ya que como éste no se tiene porqué indicar al llamarlos no podría diferenciarse a que método en concreto se hace referencia en cada llamada. Por ejemplo, a partir de la llamada:
Si además de la versión de Cumpleaños() que no retorna nada hubiese otra que retornase un int, ¿cómo sabría entonces el compilador a cuál llamar?
Antes de continuar es preciso señalar que en C# todo, incluido los literales, son objetos del tipo de cada literal y por tanto pueden contar con miembros a los que se accedería tal y como se ha explicado. Para entender esto no hay nada mejor que un ejemplo:
string s = 12.ToString();
|
Este código almacena el literal de cadena “12” en la variable s, pues 12 es un objeto de tipo int (tipo que representa enteros) y cuenta cuenta con el método común a todos los ints llamado ToString() que lo que hace es devolver una cadena cuyos caracteres son los dígitos que forman el entero representado por el int sobre el que se aplica; y como la variable s es de tipo string (tipo que representa cadenas) es perfectamente posible almacenar dicha cadena en ella, que es lo que se hace en el código anterior. |
| |
 |
verde
por
x
Respuesta recibida el [10/06/2007 12:07:27]
|
 |
mejoren su pagina por que esta bien aburrida
|
| |
 |
Respuesta al anterior
por
ElErmitaño
Respuesta recibida el [07/08/2007 04:01:38]
|
 |
Se supone que es 1 tutorial sobre C#, no una página de entretenimiento ^_^" jajaja
|
| |
 |
Frank Moya Pons
por
Anónimo
Respuesta recibida el [12/10/2007 08:44:51]
|
 |
Que es la Clase, su Clasificacion y su Valor
|
| |
 |
=P
por
Jealotus
Respuesta recibida el [08/11/2007 09:29:46]
|
 |
me parece buen tutorial... me ha explicado mejor la mayoria de las cosas que las que me ha explicado el maestro... faltan algunos ejemplos... o eso ayudaria mas a comprender otros casos...
|
| |
 |
xap
por
mari
Respuesta recibida el [29/01/2008 07:42:28]
|
 |
pues si me ayudo un poquito con unas dudas pero faltan mas ejemplos
|
| |
 |
me gustaría...
por
angel
Respuesta recibida el [09/03/2008 12:25:32]
|
 |
Hola, apenas empecé a leer éste manual y quisiera saber si me podrían mandar ejemplos de todos los temas que tienen y además quisiera saber si se puede descargar èste tutorial? sancermoa@gmail.com
|
| |
 |
Bueno
por
Fredy
Respuesta recibida el [03/04/2008 10:30:05]
|
 |
DEberias poenr ejemplos mas interesante y ams informacion, la verdad no parece un tutorial jeje
|
| |
 |
regular
por
yuli
Respuesta recibida el [15/04/2008 01:32:53]
|
 |
hola. poss me parecio un poco aburridon, se necesitan mas ejemplos, y mayor explikcion, ya saben q programacion no es nada facil, asi q pongas mas ejemplos, seee. bye?.
|
| |
 |
regular
por
yuli
Respuesta recibida el [15/04/2008 01:35:12]
|
 |
hola aki no mas pasando, por fa pon mas ejemplos q lo expliquen bien y q sea entendible mayormnt, estauvo aburrido, pero pueden mejorar. sale.aprovechando. visiten mi metro www.metroflog.com/yuli_89
|
| |
 |
No entiendo las quejas de la g...
por
Jon
Respuesta recibida el [04/05/2008 05:51:45]
|
 |
No entiendo las quejas de la gente sobre lo aburrido que resulta el tutorial. No es una novela ni una página de juegos, es un tutorial sobre un lenguaje de programación... la verdad es que con tal de quejarse la gente. En fin, que muchas gracias por colgar este manual.
|
| |
 |
comentario..
por
ALFREDYNHO
Respuesta recibida el [10/05/2008 11:47:47]
|
 |
Esta muy bueno pero podria ser excelente con algunos ejemplos mas ya que aprender a programar es programando y para eso se necesita ejemplitos ^_^ Yo no soy un experto pero ahi voy
|
| |
 |
kedo 1 duda
por
vicky
Respuesta recibida el [04/06/2008 08:58:35]
|
 |
no encontre la definicion de control
por todo lo demas esta muy bien el tutorial...
|
| |
 |
...
por
Stratega
Respuesta recibida el [10/06/2008 04:45:00]
|
 |
A este tutorial, se le deberían agregar más ejemplos !!! Favor de no confundir "Ejemplos" con "Entretención".
|
| |
 |
A caballo regalado ...
por
Bufalo_lp
Respuesta recibida el [13/07/2008 07:42:54]
|
 |
Quejarse menos, leer y practicar más. Chiquillos, comprender la sintaxis de un lenguaje es un cosa. Ahora, aprender algoritmo estructurado, algoritmo O.O. es otra historia, los ejemplos sirven pero no generan producción propia. Uno aprende de los errores y estos se dan con la practica.
|
| |
 |
Efectivamente hacen falta ejemplo
por
Algoeno
Respuesta recibida el [01/08/2008 03:58:03]
|
 |
Me parece un buen tutorial y estoy de acuerdo con lo que dice JON pues es un tutorial de programacion, y no una revista de chismes o algo asi, mejor hay que leer mas y dejar de quejarse. haaaa y la verdad si hacen falta mas ejemplos, digo para entender mejor puesto que en mi caso es mejor la practica que la teoria, si pudieran poner mas ejemplos estaria de lujo...
|
| |
 |
Excelente
por
Ocupado
Respuesta recibida el [21/08/2008 04:11:06]
|
 |
Me pareció muy claro y útil. Supongo que cuando piden ejemplos se referirán a algún código completo de algún juego divertido jaja A leer mas detenidamente y a quejarse menos :) Muchas gracias
|
| |
 |
muy buen tutorial
por
viktor
Respuesta recibida el [02/09/2008 05:50:09]
|
 |
me parece excelente muy bien explikado,,!
saludo0s
|
| |
 |
Clases
por
Israel
Respuesta recibida el [18/10/2008 10:21:07]
|
 |
Gracias por el tutorial, ahora, como podria ser una clase para manipular datos?
gracias por todo
|
| |
 |
Hola
por
Linda
Respuesta recibida el [10/11/2008 03:58:00]
|
 |
Me parece un buen manual, lo que importa es la intención en enseñarnos a programar, ah y lo de aburrido no tiene nada, solo que como alguien empieza a poner un comentario asi ya todos se siguen, y mejor que hagan las cosas solos, no quieren que aqui les hagan la tarea o si? Por mi parte buen manual, ojala sigan subiendo mas cosas
|
| |
 |
graxias
por
toño
Respuesta recibida el [16/11/2008 10:09:44]
|
 |
esta bien padre suy pag aunke me gustaria ke icieran un programa el cual nos mostrara el signo zodiakalde la persona al escribir su fecha
|
| |
 |
muy bueno
por
dayana rivas (monagas)
Respuesta recibida el [02/12/2008 12:36:45]
|
 |
muy bueno este tutorial, me sirvio de mucho para mi trabajo, halla aquellos flojos que dicen que esta aburrido, solo quieren que le hagan las cosas.. y de aca se puede sacar muy buena informacion.
|
| |
 |
buen manual
por
hugo
Respuesta recibida el [05/01/2009 09:54:04]
|
 |
Me parece un muy buen manual ya que me a ayudado a comprender como funcionan las clases.
Buen manual
|
| |
 |
El tutorial esta bien y no cre...
por
edilson
Respuesta recibida el [05/01/2009 01:44:29]
|
 |
El tutorial esta bien y no creo que le falten ejemplos. Yo lo estoy leyendo y hasta el momento he comprendido los conceptos, lo que pasa es que hay personas que requieren todo molidito y no les gusta pensar un poquito....
|
| |
 |
????
por
X
Respuesta recibida el [25/01/2009 03:26:56]
|
 |
..Pues.. no entiendo nada de los anteriores comentarios. ¿Ejemplos? ¿para qué? El tutorial es del LENGUAJE DE PROGRAMACIÓN C#, no de cómo programar. NO ES LO MISMO. Programar es la lógica con la que se hacen (o harán) las cosas, el lenguaje de programación la forma en la que pasamos esto a la computadora. En mi opinión todos los quejumbrosos deberían de aprender a programar primero; una vez esto, el codificar se puede hacer en cualquier lenguaje de programación, C y sus derivados, Pascal, VB, etc...
|
| |
 |
:D
por
Lootpack
Respuesta recibida el [23/03/2009 10:55:11]
|
 |
Un tutorial cojonudo.
Estoy empezando con mis primeros pinitos con este lenguaje y me parece que tiene los conceptos claros y fáciles de entender.
Ni me parece aburrido ni me parece incompleto respecto al número de ejemplos (opinión personal claro).
Un saludo y gracias
|
| |
 |
Me parece que lo explica bien ...
por
Xelnaga
Respuesta recibida el [22/04/2009 12:51:12]
|
 |
Me parece que lo explica bien y no necesita mas ejemplos. Si no lo entendeis dedicaros a estudiar otra cosa porque esta realmente mascadito.
|
| |
 |
Me parece que lo explica bien ...
por
Xelnaga
Respuesta recibida el [22/04/2009 12:51:51]
|
 |
Me parece que lo explica bien y no necesita mas ejemplos. Si no lo entendeis dedicaros a estudiar otra cosa porque esta realmente mascadito.
|
| |
 |
PREGUNTA
por
CRISTIAN
Respuesta recibida el [18/05/2009 11:40:48]
|
 |
COMO HAGO ESTOY HACIENDO UN PROGRAMA EN C# Y NECESITO Q EL PROGRAMA INTERACTUE CON UNA BASE DE DATOS COMO LO HAGO QUEDARE MUY AGRADECIDO SI ME OUEDEN AYUDAR
|
| |
 |
muy bueno
por
yerel
Respuesta recibida el [07/07/2009 05:13:19]
|
 |
me parece muy bueno este tutorial, pero necesita mas ejemplos. y quisiera saber si se puede descargar el tutorial.
|
| |
 |
que aburrido
por
padrecito007
Respuesta recibida el [12/08/2009 11:25:01]
|
 |
zzzzzzzz jaja me quede dormido
|
| |
 |
Bueno
por
eli
Respuesta recibida el [20/08/2009 08:19:37]
|
 |
Creo que es muy bueno ,pero como dicen lo demas le falta unos ejemplitos mas.Me gustaria saber como se utiza una funcion para sacar la raiz y para que sirve el pow en c#.desde Nicaragua.bye.
|
| |
 |
bueno
por
macs
Respuesta recibida el [28/09/2009 11:02:53]
|
 |
me parece un buen tutoria ... sencillo y claro sin complicaciones .. muy bn !
|
| |
 |
Puede mejorar
por
linda
Respuesta recibida el [09/10/2009 07:08:26]
|
 |
los conceptos estan bien,la estructura de la clase lo entiendo pero se necesita codigo para ir la practica.....ah y no es aburrido!
|
| |
 |
Puede mejorar
por
linda
Respuesta recibida el [09/10/2009 07:08:45]
|
 |
los conceptos estan bien,la estructura de la clase lo entiendo pero se necesita codigo para ir la practica.....ah y no es aburrido!
|
| |
 |
bien explicado felicidades
por
karlosystem
Respuesta recibida el [13/10/2009 09:17:41]
|
 |
muy buen inicio del tutorial de c sharp en la cual se explica detalladamente la creacion de una clase, objetos y metodos, sigue asi amigo y no hagas caso aquellos que dicen que no existen ejemplos, para la gran mayoria esta todo bien... leyendo comentarios anteriores .. las que se quejan de no haber ejemplos son "chicas".. una chica programando es como ver a una mujer bombero ..casos raros no ??.. saludos
|
| |
 |
la mejor pagina
por
yoselin loya
Respuesta recibida el [14/10/2009 05:45:56]
|
 |
por que eligieron hacer esta pagin a
|
| |
 |
licenciado
por
joel graterol
Respuesta recibida el [20/10/2009 02:11:30]
|
 |
la definicion esta muy bien era lo que buscaba de aburrida no tiene nada la divercion se busca en otro concepto hay gente poco inteligente para usar esta pagina de estudio,les felicito busquen mas definiciones que las hay gracias chao
|
| |
 |
C#
por
darwin
Respuesta recibida el [25/11/2009 05:27:00]
|
 |
por fabor los conceptos si van a poner no lo pongan con muchos enrredos tiene q ser complendible exacto entienden gracias
|
| |
 |
C#
por
darwin
Respuesta recibida el [25/11/2009 05:30:02]
|
 |
por fabor los conceptos si van a poner no lo pongan con muchos enrredos tiene q ser complendible exacto entienden gracias
|
| |
 |
genial
por
david
Respuesta recibida el [11/02/2010 04:03:05]
|
 |
Está muy bien el tutorial. Eso sí, el diseño de la web es muy muy muy mejorable. Se nota que está realizada con programadores y sin diseñador.
Y por los coments se ven una cantidad de faltas de ortografía que ... pataditas al diccionario de la RAE.
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Definición de clases |
|
Autor:
José Antonio González Seco
|
|
Visitas:
59759 |
Fecha de publicación:
03/10/2006 |
|
José Antonio es experto en tecnologias Microsoft. Imparte cursos y conferencias en congresos sobre C# y .NET en Universidades de toda España (Sevilla, Barcelona, San Sebastián, Valencia, Oviedo, etc.) en representación de grandes empresas como Microsoft. |
|
|
Visitas:
96
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
798
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
753
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
659
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3158
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14520
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1484
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
692
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
369
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2022
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |