PDF de programación - Cómo escribir una Clase

<<>>
Imágen de pdf Cómo escribir una Clase

Cómo escribir una Clasegráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 2 de Febrero del 2018)
876 visualizaciones desde el 2 de Febrero del 2018
183,0 KB
2 paginas
Cómo escribir una Clase
Ahora que entendemos (más o menos) cómo funciona la teoría básica de la P.O.O. y sabemos acerca de la importancia de las clases, es momento para que
veamos cómo sería la estructura de una clase.

Es importante tener en cuenta que cada lenguaje tiene, de acuerdo a su sintaxis, sus propias normas sobre cómo escribir clases. No será lo mismo en PHP
que en AS2 o incluso AS3. Así que, primero, hablaremos en un sentido más general, para luego pasar a la práctica concreta. Para los efectos, usaremos
como lenguaje de ejemplo ActionScript.

Estructura de la Clase

Los elementos básicos de una clase se estructuran de la siguiente forma (más abajo definiremos cada elemento):

1.  Paquete al que pertenece la clase (package – sólo en AS3, en AS2 se incluye en la Definición de la Clase).
2.  Definición de la Clase (class – En AS2, si la clase está incluida en un paquete, se usa la sintaxis paquete.clase).
3.  Variables Internas (Son de uso interno de la clase, por lo que se restringe su uso fuera de ellas con la palabra clave private, así la variable miVar, de tipo

numérico, podría definirse así:
private var miVar:Number = 0;)

4.  Constructor de la Clase (excepto en el caso de las clases estáticas, pero de eso hablaremos en otro post).
5.  Propiedades, Métodos y Eventos de la Clase (no necesariamente en ese orden, pero es una buena forma de organizarlo).

Por supuesto, una clase bien hecha contiene además comentarios con información sobre la clase, la forma de usarla, su autor, etc. En este caso lo omitimos
para concentrarnos en lo básico y no enredarnos más de lo estrictamente necesario.

Dicho esto, veamos los puntos nombrados arriba en una clase de ejemplo, para luego pasar a explicar los conceptos:

Para crear una nueva instancia de la clase Persona debemos importarla y luego instanciar con la palabra clave new, pasándole los parámetros que necesita:

import cesarfrick.Persona;
var cesar:Persona = new Persona("César", "Frick", 36);

Ahora expliquemos de qué se trata lo que hemos dicho:

Paquete:

Aunque podemos colocar nuestras clases en el mismo directorio donde se encuentra el archivo que los usará, siempre resulta más ordenado y eficiente
clasificarlos en carpetas, donde podemos colocar aquellas clases que tienen un mismo propósito. Así podemos tener una carpeta llamada graph para clases
de tipo gráfico, externalData para clases que conectan y/o procesan datos externos, etc. Estas carpetas son conocidas como paquetes.

Otra ventaja de usar paquetes (además de mantener nuestras clases ordenadas) es que nos permiten importar todas las clases que necesitemos de ellos

Otra ventaja de usar paquetes (además de mantener nuestras clases ordenadas) es que nos permiten importar todas las clases que necesitemos de ellos
con sólo una línea: import paquete.*, en vez de tener que hacer un import para cada clase. Si te preocupa que terminen importándose más clases de las
que necesitas de ese paquete, no hay problema porque sólo se importarán las que sean necesarias y no las que no utilices en el código.

En algunos lenguajes, existen palabras reservadas para declarar el paquete al que pertenece una clase (como en el caso de AS3), en estos casos va primero
la declaración del paquete y luego la de la clase. En AS3 sería de esta forma:

package nombreDelPaquete{
class NombreDeLaClase{
...
}
}

Clase:

La clase, propiamente dicha, se declara con la palabra clave class.

Hay un par de cosas que debemos tener en cuenta cuando creamos una clase:

No es obligatorio, pero por regla general ­los entendidos lo llaman convención y es cuando todos se ponen de acuerdo en hacer algo de la misma forma
(¡ja! como si tal cosa fuese posible. Errr… perdón, eso es otro tema)­ los nombres de las clases siempre comienzan con mayúsculas.
Esto si es obligatorio: El archivo donde se encuentra la clase debe tener el mismo nombre que ésta, respetando mayúsculas y minúsculas. Esto es
importante porque los import usan el nombre del paquete (si lo hubiere) y la clase para ubicarlos en el disco, así que si usas diferentes nombres, nunca
los hallará y dará error.
Si el lenguaje no tiene una palabra reservada para definir el paquete (AS2, por ejemplo), la definición de la clase sería así:

class nombreDelPaquete.NombreDeLaClase{
...
}

Variables Internas o Privadas:

En último término, todas las propiedades de una clase son en realidad variables, pero no es conveniente que el usuario de la clase pueda manipular
directamente estas variables, por ello se mantienen privadas, es decir, sólo pueden llamarse y manipularse dentro del código de la clase, pero no fuera
de ellas (o sea que si se trata de llamar a una de estas variables desde la instancia, no funcionará). Para hacer que una variable/función sea privada, se le
antepone la palabra private.

Constructor:

Es la función que se ejecuta cada vez que se crea una instancia de la clase, Si necesitamos que nuestra clase inicie con ciertos valores, colocamos los
parámetros correspondientes entre los paréntesis. La función constructora siempre devuelve Void (Vacío).
También puede haber casos en los que no queramos que la clase constructora ejecute ningún código. Para ello simplemente la colocamos vacía, es decir, la
declaramos pero no ponemos código en ella. Si una clase no tiene un constructor, no puede ser instanciada.

Propiedades, Métodos y Eventos de la clase:

Decíamos antes que las propiedades son realmente variables dentro de la clase, pero para poder controlar qué puede cambiar o no el usuario de la clase, si
los valores son correctos, etc. hacemos uso de unas funciones especiales para definir propiedades: get y set.

get permite al usuario recuperar el valor de la propiedad, leerlo, por lo que su salida debe ser correspondiente con la que se espera de la propiedad (por
ejemplo, no tendría sentido que la propiedad “nombre” del ejemplo devolviese un número). Si sólo creamos una función get para una propiedad, ésta es
de sólo lectura.
set es usado para darle un valor a la propiedad, normalmente se añaden aquí los controles para asegurarse que el valor que se asigna es del tipo
deseado (y evitar que la clase colapse por un error de tipo de datos). La función de set, al ser para escribir en la propiedad no devuelve ningún tipo de
datos, pero debe tener un parámetro que es el valor que se pasará a la variable. Al contrario de get, no puede haber una clase de sólo escritura (después
de todo, no tiene ningún sentido tener una propiedad a la que se le pueda asignar un valor pero este no pueda ser recuperado).
Los métodos no son más que funciones públicas, que pueden tener o no datos y que afectan a la instancia de alguna forma.
Los eventos, al igual que los métodos, son funciones, pero estos reaccionan ante alguna interacción del usuario o pueden ser reescritos por éste. A ellos
dedicaremos un par de capítulos.

Como ven escribir una clase no es tan complicado como puede pensarse en un principio. Luego hablaremos de las ventajas/desventajas de usar clases, pero
por ahora creo que ha sido bastante (al menos yo estoy exhausto :P ). Sólo decir que si les resulta muy complicado lo que ven acá, repasen los capítulos
anteriores para que lo vean en contexto. También decir que en este caso y todos los que vengan escribiremos el código siguiendo las reglas del Strict Data
Typing (Tipeo Estricto de Datos).

 

Blog   Foros   Tutoriales   Tutoriales de Flash   Ejemplos .fla   Anime   Videotutoriales   Cursos   Curso de Flash   Curso de HTML   Tags
  • Links de descarga
http://lwp-l.com/pdf8566

Comentarios de: Cómo escribir una Clase (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad