Uso de Clases

Anuncio
Uso de Clases
Declaración de una clase
¨ 
Es recomendable crear un archivo de texto en
donde declararemos una clase por cada objeto
identificado en nuestro problema, aunque es
posible declarar varios objetos dentro de un mismo
archivo de texto.
[Tipo Clase] class nombreclase{
}
¨ 
Si declaramos más clases en el mismo documento en
donde se encuentra nuestra clase principal, la
sintaxis es la siguiente:
class nombreclase{
};
¨ 
En donde:
¤  [Tipo
Clase] determinan la accesibilidad de otras clases a la
clase que se está declarando, así como el comportamiento
de su herencia. Todos son opcionales y por el momento se
empleará public.
¤  class es obligatoria y le dice al compilador que el bloque
de código siguiente es una declaración de clase.
¤  nombreclase será el nombre de la clase según las reglas
vistas con anterioridad. Como se mencionó ya, el nombre de
la clase debe coincidir exactamente con el nombre del
archivo .java que la contiene.
¤  Las llaves de apertura y cierre ( { } ) delimitan el cuerpo
de nuestra definición de clase. Todas las variables y
métodos de la clase deberán ir encerrados en este bloque.
Declaración e inicialización de los
atributos de una clase
Las variables de clase, conocidas formalmente como
atributos, se colocan después de la llave de
apertura de la clase.
¨  Como cualquier tipo de variable, los atributos se
utilizan para almacenar y recuperar datos en
nuestros programas.
¨  Los atributos globales deben colocarse de manera
obligatoria afuera de cualquier método.
¨ 
Los atributos también se les conoce como variables
miembro o variables de instancia dado que cuando
un objeto es instanciado,
¨  estas variables se encargarán de contener los datos
específicos de cada objeto creado.
¨ 
¨ 
La declaración e inicialización de los atributos de una clase tiene la
siguiente sintaxis:
[modificadores] tipo variable [= valor];
¨ 
En donde:
¤ 
¤ 
¤ 
¤ 
[modificadores] representan diversas palabras reservadas que definen
la forma en que las variables de la clase son accedidos. Todos son
opcionales y por ahora se empleará el modificador public.
tipo representa el tipo de dato primitivo que la variable contendrá. Así,
algunas variables contendrán números enteros, reales, caracteres o
valores booleanos.
identificador será el nombre que se le asignará a la variable según las
reglas vistas con anterioridad.
valor será el valor que se desea asignar a la variable y es opcional.
public int shirtID = 0; public char colorCode = ‘G’; public float orderTotal; Es posible de hecho, declarar simultáneamente (e
incluso inicializar) varios atributos del mismo tipo;
para ello se emplea el separador coma con la
siguiente sintaxis:
[modificadores] tipo identificador[=valor]
[,identificador2[=valor]…]; public String Nombre, Apellido, Direccion; public int contador=0, total=1; Declaración de los métodos de una
clase
¨ 
Los métodos siguen a los atributos de la clase; su
sintaxis es la siguiente:
[modificadores] tipoderetorno identificador([argumentos]){
bloque_de_instrucciones
}
public void printMessage(){ System.out.println(“Hola a todos!”); }// Fin del método printMessage ¨ 
En donde:
¤ 
¤ 
¤ 
¤ 
¤ 
¤ 
[modificadores] por el momento se empleará public.
tipoderetorno indica el tipo de valor que el método regresa (en caso de existir).
Los valores retornados por un método pueden ser empleados por el método que
los invoca y podrá ser a lo mucho uno. Si el método no retorna nada, la
palabra clave void deberá usarse como tipo de retorno.
identificador será el nombre del método según las reglas vistas con
anterioridad.
[argumentos] representa la lista de variables cuyos valores son pasados al
método para que éste trabaje y son opcionales. Los paréntesis de apertura “( “
y cierre “ ) “ son obligatorios aún cuando el método no requiera ningún
argumento.
bloque_de_instrucciones será la lista de sentencias que el método ejecuta. Una
gran variedad de tareas pueden realizarse en el bloque de código o cuerpo
de un método. Así como en otros lenguajes de programación, podrán crearse
tantos bloques de instrucciones internos como se desee o convenga.
Las llaves de apertura y cierre ( { } ) delimitan el cuerpo de nuestro método.
Declaración, instanciamiento e
inicialización de objetos
Normalmente todo programa en Java deberá
emplear cuando menos un objeto.
¨  Para usar objetos debemos:
¨ 
¤  Definir
la clase del objeto en un archivo fuente en
donde se detallen sus atributos y métodos.
¤  Definir la clase principal que usará el o los objetos
creados.
¤  Declarar, instanciar e inicializar los objetos en la clase
principal.
¤  Invocar sus métodos de las instancias creadas.
¨ 
Tomemos por ejemplo el siguiente código Java en
donde se define a una clase de objeto llamada
Message:
public class Message{ public void printMessage(){ System.out.println("Hola a todos!"); } } ¨ 
Como podemos notar, esta clase no tiene atributo
alguno y únicamente cuenta con un método llamado
printMessage(), el cual no retorna o recibe ningún
valor, únicamente imprime un mensaje.
¨ 
Dado que esta clase no contiene un método main(), será
imposible ejecutarla, únicamente podremos compilarla.
Para usarla, deberemos crear una clase principal o de
prueba que llamaremos MessageTest en donde
crearemos una instancia del objeto de clase Message e
invocaremos su único método:
public class MessageTest{ public static void main(String args[]){ Message myMessage = new Message(); myMessage.printMessage(); } } ¨ 
¨ 
En el código anterior notamos una sintaxis nueva en la
tercera línea; ésta es la declaración, instanciamiento e
inicialización de un objeto de clase Message.
La sintaxis genérica es la siguiente:
nombredeclase identificador = new nombredeclase();
¨ 
En donde:
¤  nombredeclase
representa el nombre de la clase de objeto
a instanciar.
¤  identificador será el nombre que se le asignará a la
instancia (también llamada referencia de objeto).
¤  new será la palabra clave encargada de instanciar un
objeto empleando como plantilla a la clase especificada
por nombredeclase.
¨ 
Lo anterior puede realizarse también en dos líneas:
nombredeclase identificador;
identificador = new nombredeclase();
¨ 
Para el caso anterior tendríamos:
Message myMessage;
myMessage = new Message();
¨ 
Por último, analicemos la cuarta línea; aquí
invocamos el método del objeto empleando una
sintaxis genérica:
identificadordeobjeto.identificadordemétodo();
¨ 
Dado que la sintaxis completa que se emplea para
invocar un método varía considerablemente según
la situación, se verá con detalle en un apartado
más adelante.
¨ 
Java no permite el uso de apuntadores por parte
del programador, lo cual podría verse como una
desventaja aunque en realidad es todo lo contrario,
gracias a que no puede haber manipulación de
memoria es imposible invadir entornos ajenos al de
nuestras aplicaciones y por lo tanto la seguridad de
nuestro sistema estará siempre garantizada.
Ejemplo del Elevador:
¨ 
Las principales funciones de un elevador son:
¤  Subir
¤  Bajar
¤  Abrir
Puerta
¤  Cerrar Puerta
¨ 
Por lo que estas son métodos forman parte de la
clase funciones del elevador, quedando en código
así:
//Ejemplo del Elevador // public class Elevador{
public static void main(String args[]) { //declara la conexion con la clase funciones elevador FuncionesElevador Funcion = new FuncionesElevador(); Funcion.abrir();
Funcion.cerrar(); Funcion.subir(); Funcion.abrir(); Funcion.cerrar(); Funcion.bajar(); Funcion.abrir();
} } class FuncionesElevador{
public void subir(){ System.out.println("Elevador subiendo");
} public void bajar(){ System.out.println("Elevador bajando");
} public void abrir(){ System.out.println("Abriendo Puerta");
} public void cerrar(){ System.out.println("Cerrando Puerta");
} }; 
Descargar