Archivos para la categoría ‘Tutorial’

Tutorial b√°sico de Hibernate

3 de Marzo de 2010

A través de javahispano, hemos llegado a este tutorial básico de Hibernate, traducido por David Marco.

Puede ser una buena referencia si est√°s comenzando a utilizar Hibernate

http://www.davidmarco.es/tutoriales/hibernate-reference/

Tutorial para exportar librerias GWT a javascript

29 de Diciembre de 2009

Las ventajas de utilizar GWT para desarrollar código javascript de calidad es que el programador no tiene por qué ser experto en javascript, conocer particularidades de cada navegador, empaquetamiento de javascript, ofuscación, dependencias entre librerías, etc.

Aquí os dejamos un tutorial para exportar librerías GWT a javascript

Tutorial. Qué es un paquete

26 de Agosto de 2008

Un paquete es un espacio de nombres que organiza un conjunto de clases e interfaces relacionadas. Puede pensar en los paquetes como algo similar a las diferentes carpetas de su ordenador. Puede tener guardadas páginas HTML en una carpeta, imágenes en otra y scripts y aplicaciones en otra distinta. Puesto que un software escrito en el lenguaje de programación Java puede llegar a consistir de cientos o miles de clases individuales, tiene sentido que se organicen las clases e interfaces relacionadas en paquetes.

La plataforma Java proporciona una enorme biblioteca de clases (un conjunto de paquetes) adecuado para usar en sus propias aplicaciones. A esta biblioteca se la conoce como la Interfaz de Programaci√≥n de Aplicaciones (Application Programming Interface en ingl√©s) o por su abreviatura API. Sus paquetes representan las tareas m√°s comunes asociadas a la programaci√≥n en general. Por ejemplo, un objeto String contiene estado y comportamiento para cadenas de caracteres (¬ęcharacter strings¬Ľ); un objeto File permite a un programador crear, eliminar, inspeccionar, comparar o modificar un archivo en un sistema de archivos; un objeto Socket permite la creaci√≥n y uso de sockets de red; otros objetos de interfaz gr√°fica (¬ęGUI¬Ľ) controlan botones, cajas de selecci√≥n y cualquier otra cosa relacionada con las interfaces gr√°ficas de usuario. Literalmente hay miles de clases de las que elegir. Esto le permite al programador enfocar sus esfuerzos en el dise√Īo de la aplicaci√≥n, m√°s que en la infraestructura requerida para hacerla funcionar.

La Java Platform API Specification contiene el listado completo de todos los paquetes, interfaces, clases, campos y m√©todos proporcionados por la Plataforma Java 6, edici√≥n est√°ndar (Java Platform 6, Standard Edition). Cargue esta p√°gina en su navegador y a√Ī√°dala a sus marcadores o favoritos. Siendo programador se convertir√° en su documentaci√≥n de referencia m√°s importante.

 

Tutorial. Qué es un interfaz

25 de Agosto de 2008

Como ya ha aprendido, los objetos definen su interacción con el mundo exterior a través de los métodos de que exponen. Los métodos forman la interfaz del objeto con el mundo exterior; por ejemplo, los botones que hay en la parte frontal de su televisor forman la interfaz entre usted y el cableado eléctrico al otro lado de la caja de plástico. Debe pulsar un botón para encender y apagar el televisor.
En su forma m√°s com√ļn, una interfaz es un grupo de m√©todos relacionados con cuerpos vac√≠os. El comportamiento de una bicicleta, si se especifica como una interfaz, podr√≠a aparecer as√≠:

interface Bicycle {
 
       void changeCadence(int newValue);
 
       void changeGear(int newValue);
 
       void speedUp(int increment);
 
       void applyBrakes(int decrement);
}

Para implementar esta interfaz el nombre de su clase debería cambiar (a ACMEBicycle, por ejemplo), y usaría la palabra clave implements en la declaración de clase:

class ACMEBicycle implements Bicycle {
 
   // remainder of this class implemented as before
 
}

Implementar una interfaz permite a una clase ser más formal acerca del comportamiento que promete proporcionar. Las interfaces forman un contrato entre la clase y el mundo exterior, y este contrato se hace cumplir en el momento de la compilación. Si su clase afirma implementar una interfaz, todos los métodos definidos por esa interfaz deben aparecer en su código fuente para que se compile con éxito.

Tutorial. Qué es la herencia

21 de Agosto de 2008

A menudo diferentes tipos de objetos tienen algunas cosas en com√ļn. Por ejemplo, las bicicletas de monta√Īa, las de carretera y los t√°ndems todos comparten las caracter√≠sticas de las bicicletas (velocidad actual, cadencia de pedal, marcha). A√ļn as√≠ cada una de ellas tambi√©n define caracter√≠sticas adicionales que las hacen diferentes: los t√°ndems tienen dos asientos y dos manillares, las bicicletas de carretera tienen un manillar con cuernos, algunas bicicletas de monta√Īa tienen m√°s pi√Īones que les proporcionan marchas m√°s cortas.

La programaci√≥n orientada a objetos permite que las clases hereden estados y comportamientos de uso com√ļn de otras clases. En este ejemplo, Bicycle se convierte en la superclase de MountainBike, RoadBike y TandemBike. En el lenguaje de programaci√≥n Java se permite que cada clase tenga una superclase directa y que cada superclase tenga el potencial para una cantidad ilimitada de subclases.

La sintaxis para crear subclases en sencilla. Utilice la palabra clave extends seguida del nombre de la clase de la que desea heredar al inicio de su declaración de clase:

class MountainBike extends Bicycle {
 
     // Los nuevos campos y m√©todos que definan una bici de monta√Īa ir√≠an aqu√≠
 
}

Esto proporciona a MountainBike los mismos campos y m√©todos que Bicycle, pero permite a su c√≥digo encargarse exclusivamente de las caracter√≠sticas que la hacen √ļnica. Esto hace que el c√≥digo de sus subclases sea f√°cil de leer. Sin embargo debe encargarse de documentar apropiadamente el estado y comportamiento que cada superclase que define, ya que ese c√≥digo no aparecer√° en el archivo fuente de cada subclase.

Tutorial. Qué es una clase

20 de Agosto de 2008

En el mundo real a menudo se encontrará con muchos objetos individuales del mismo tipo. Puede haber miles de otras bicicletas, todas de la misma marca y modelo. Cada bicicleta ha sido fabricada a partir de los mismos planos y, por lo tanto contiene los mismos componentes. En términos de orientación a objetos decimos que su bicicleta es una instancia de la clase de objetos conocida como bicicletas. Una clase es el plano del que se crean objetos individuales.

La siguiente clase Bicycle es una posible implementación de una bicicleta:

 
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 
 
class Bicycle {
 
       int cadence = 0;
       int speed = 0;
       int gear = 1;
 
       void changeCadence(int newValue) {
            cadence = newValue;
       }
 
       void changeGear(int newValue) {
            gear = newValue;
       }
 
       void speedUp(int increment) {
            speed = speed + increment;   
       }
 
       void applyBrakes(int decrement) {
            speed = speed - decrement;
       }
 
       void printStates() {
            System.out.println("cadence:"+cadence+" speed:"+speed+" gear:"+gear);
       }
}

La sintaxis del lenguaje Java le podr√° resultar nueva, pero el dise√Īo de esta clase est√° basada en la anterior discusi√≥n sobre los objetos bicicleta. Los campos cadence (cadencia), speed (velocidad) y gear (marcha) representan el estado del objeto, y los m√©todos (changeCadence, changeGear, speedUp etc.) definen su interacci√≥n con el mundo exterior.

Quizás se habrá fijado en que la clase Bicycle no contiene un método main. Eso es porque no es una aplicación completa, solamente es el plano para bicicletas que se podría utilizar en una aplicación. La responsibilidad de crear y usar nuevos objetos Bicycle pertenece a otra clase de su aplicación.

A continuación hay una clase BicycleDemo que crea dos objetos Bicycle distintos e invoca sus métodos:

/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 
 
class BicycleDemo {
     public static void main(String[] args) {
 
          // Create two different Bicycle objects
          Bicycle bike1 = new Bicycle();
          Bicycle bike2 = new Bicycle();
 
          // Invoke methods on those objects
          bike1.changeCadence(50);
          bike1.speedUp(10);
          bike1.changeGear(2);
          bike1.printStates();
 
          bike2.changeCadence(50);
          bike2.speedUp(10);
          bike2.changeGear(2);
          bike2.changeCadence(40);
          bike2.speedUp(10);
          bike2.changeGear(3);
          bike2.printStates();
     }
}

La salida de esta prueba muestra la cadencia de pedaleo, velocidad y marcha para las dos bicicletas:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3

Tutorial. Qué es un objeto

19 de Agosto de 2008

Los objetos son la clave para entender la tecnología orientada a objetos. Si mira a su alrededor ahora mismo se encontrará con muchos ejemplos de objetos del mundo real: su perro, su escritorio, su televisor, su bicicleta.

Los objetos del mundo real comparten dos características: Todos tienen estado y comportamiento. Los perros tienen estado (nombre, color, raza, hambriento) y comportamiento (ladrando, buscando, meneando la cola). Las bicicletas también tienen un estado (marcha actual, cadencia de pedaleo actual, velocidad actual) y comportamiento (cambio de marcha, cambio de cadencia de pedaleo, frenar). Identificar el estado y el comportamiento de los objetos del mundo real es una gran ayuda para empezar a pensar en términos de programación orientada a objetos.

T√≥mese un momento ahora mismo para observar los objetos del mundo real que hay a su alrededor. Para cada uno de los objetos que ve, h√°gase dos preguntas: “¬ŅEn qu√© posibles estados puede estar este objeto?” y “¬ŅQu√© posibles comportamientos puede realizar?””. Aseg√ļrese de escribir sus observaciones. Mientras lo haga, ver√° que los objetos del mundo real var√≠an en complejidad, su l√°mpara de escritorio puede tener solo dos estados (encendido y apagado) y dos posibles comportamientos (encender y apagar), pero su radio tendr√° m√°s estados (encendido, apagado, volumen actual, emisora actual) y comportamientos (encender, apagar, subir volumen, bajar volumen, buscar y sintonizar). Tambi√©n observar√° que algunos objetos, a su vez, tambi√©n contendr√°n otros objetos. Todas estas observaciones del mundo real son reproducibles en el mundo de la programaci√≥n orientada a objetos.

Un objeto software.

Los objetos software son conceptualmente similares a los objetos del mundo real: tambi√©n consisten de estado y comportamiento. Un objeto almacena su estado en campos o atributos (“variables” en algunos lenguajes de programaci√≥n) y muestra su comportamiento a trav√©s de m√©todos (“funciones” en algunos lenguajes de programaci√≥n). Los m√©todos operan sobre el estado interno del objeto y sirven como el mecanismo principal para la comunicaci√≥n entre objetos. La ocultaci√≥n del estado interno y requerir que toda interacci√≥n se realice a trav√©s de los m√©todos de un objeto se conoce como encapsulaci√≥n de datos ‚ÄĒ un principio fundamental de la programaci√≥n orientada a objetos.

Piense, por ejemplo, en una bicicleta. Al atribuir el estado (velocidad actual, cadencia de pedaleo actual y marcha actual) y proporcionar métodos para cambiar ese estado, el objeto mantiene el control sobre cómo se permite al mundo exterior usarlo. Por ejemplo, si la bicicleta solamente tiene 6 marchas, un método que cambie de marcha podrá rechazar cualquier valor que sea inferior a 1 o superior a 6.

Al agrupar código en objetos software individuales se obtienen ciertos beneficios:

  • Modularidad: El c√≥digo fuente de un objeto se puede escribir y mantener independientemente del c√≥digo fuente de otros objetos. Una vez creado, un objeto se puede pasar f√°cilmente de un lado al otro del sistema.
  • Ocultaci√≥n de informaci√≥n: Al interactuar solamente con los m√©todos de un objeto los detalles de su implementaci√≥n interna permanecen ocultas al mundo exterior.
  • Reutilizaci√≥n de c√≥digo: Si un objeto ya existe (quiz√°s escrito por otro desarrollador de software), puede utilizar ese objeto en su programa. Esto permite que un especialista implemente / compruebe / depure objetos espec√≠ficos para una tarea, en los que luego podr√° confiar en su propio c√≥digo.
  • Conectividad y facilidad de depuraci√≥n: Si un objeto en concreto resulta ser problem√°tico podr√° simplemente eliminarlo de su aplicaci√≥n y “conectar” un objeto distinto para reemplazarlo. Esto es an√°logo a la reparaci√≥n de problemas mec√°nicos en el mundo real. Si rompe un tornillo, reemplaza el tornillo, no la m√°quina entera.

Sentencias de Control de Flujo en Java

1 de Julio de 2008

Las sentencias de control de flujo determinan el orden en que se ejecutar√°n las otras sentencias dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo.

  • toma de decisiones ¬†¬†¬† if-else, switch-case
  • bucles ¬†¬†¬† for, while, do-while
  • excepciones ¬†¬†¬† try-catch-finally, throw
  • miscelaneas ¬†¬†¬† break, continue, label:, return

Aquí sólo vamos a tratar las sentencias de tomas de decisiones y los bucles, dejando las excepciones para otra ocasión.

Sentencias de toma de decisiones

  • La sentencia if-else

La sentencia if-else de java proporciona a los programas la posibilidad de ejecutar selectivamente otras sentencias bas√°ndose en alg√ļn criterio. Esta es la versi√≥n m√°s sencilla de la sentencia if: la sentencia gobernada por if se ejecuta si alguna codici√≥n es verdadera. Generalmente, la forma sencilla de if se puede escribir as√≠.

if (expresión)
sentencia;

Pero, ¬Ņy si quieres ejecutar un juego diferente de sentencias si la expresi√≥n es falsa? Bien, puedes utilizar la sentencia else, que ejecuta la condici√≥n opuesta

if (expresión)
sentencia;
else
otrasentencia;

Este uso particular de la sentencia else es la forma de capturarlo todo.

Existe otra forma de la sentecia else, else if que ejecuta una sentencia basada en otra expresión. Como ejemplo, un programa que asigna notas basadas en la puntuación de un examen, un Sobresaliente para una puntuación del 90% o superior, un Notable para el 80% o superior y demás:

int puntuacion;
String nota;
 
if (puntuacion >= 90) {
nota = "Sobresaliente";
} else if (puntuacion >= 80) {
nota = "Notable";
} else if (puntuacion >= 70) {
nota = "Bien";
} else if (puntuacion >= 60) {
nota = "Suficiente";
} else {
nota = "Insuficiente";
}

Una sentencia if puede tener cualquier n√ļmero de sentencias de acompa√Īamiento else if.

  • La sentencia switch-case

La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en alguna expresi√≥n. Por ejemplo, un programa contiene un entero llamado mes cuyo valor indica el mes en alguna fecha, y se quiere mostrar el nombre del mes bas√°ndose en su n√ļmero entero equivalente. Se podr√≠a utilizar la sentencia switch de Java para realizar esta tarea.

int mes;
. . .
switch (mes) {
case 1:  System.out.println("Enero"); break;
case 2:  System.out.println("Febrero"); break;
case 3:  System.out.println("Marzo"); break;
case 4:  System.out.println("Abril"); break;
case 5:  System.out.println("May0"); break;
case 6:  System.out.println("Junio"); break;
case 7:  System.out.println("Julio"); break;
case 8:  System.out.println("Agosto"); break;
case 9:  System.out.println("Septiembre"); break;
case 10: System.out.println("Octubre"); break;
case 11: System.out.println("Noviembre"); break;
case 12: System.out.println("Diciembre"); break;
default: System.out.println("No es un mes v√°lido");
break;
}

La sentencia switch eval√ļa su expresi√≥n, en este caso el valor de mes, y ejecuta la sentencia case apropiada.

Decidir cuando utilizar las sentencias if o switch dependen del juicio personal. Se puede decidir cual utilizar bas√°ndose en la buena lectura del c√≥digo o en otros factores. Cada sentencia case debe ser √ļnica y el valor proporcionado a cada sentencia case debe ser del mismo tipo que el tipo de dato devuelto por la expresi√≥n proporcionada a la sentencia switch.

Otro punto de interes en la sentencia switch son las sentencias break despu√©s de cada case. La sentencia break hace que el control salga de la sentencia switch y contin√ļe con la siguiente l√≠nea. La sentencia break es necesaria porque las sentencias case se siguen ejecutando hacia abajo. Esto es, sin un break expl√≠cito, el flujo de control seguir√≠a secuencialmente a trav√©s de las sentencias case siguientes.

Finalmente, puede utilizar la sentencia default al final de la sentencia switch para manejar los valores que no se han manejado explícitamente por una de las sentencias case.

Sentencias de Bucle

  • El bucle while

Una sentencia while realiza una acción mientras se cumpla una cierta condición. La sintaxis general de la sentencia while es.

while (expresión)
sentencia;

Esto es, mientras la expresión sea verdadera, ejecutará la sentencia.

sentencia puede ser una s√≥la sentencia o puede ser un bloque de sentencias. Un bloque de sentencias es un juego de sentencias legales de java contenidas dentro de corchetes(‘{‘y ‘}’).

Adem√°s de while Java tiene otros dos constructores de bucles que puedes utilizar en tus programas.

  • El bucle for

Puedes utilizar este bucle cuando conozcas los límites del bucle (su instrucción de inicialización, su criterio de terminación y su instrucción de incremento). Por ejemplo, el bucle for se utiliza frecuentemente para iterar sobre los elementos de un array, o los caracteres de una cadena.

 
// a es un array de cualquier tipo
. . .
int i;
int length = a.length;
for (i = 0; i < a.length; i++) {
System.out.println(a[i]);
}

Si sabes cuando estas escribiendo el programa que quieres empezar en el inicio del array, parar al final y utilizar cada uno de los elementos. Entonces la sentencia for es una buena elección. La forma general del bucle for puede expresarse asi.

for (inicialización; terminación; incremento)
sentencias

inicialización es la sentencia que inicializa el bucle. Se ejecuta una vez al iniciar el bucle.

terminaci√≥n es una sentencia que determina cuando se termina el bucle. Esta expresi√≥n se eval√ļa al principio de cada iteracci√≥n en el bucle. Cuando la exprei√≥n se eval√ļa a false el bucle se termina.

Finalmente, incremento es una expresión que se invoca en cada interacción del bucle. Cualquiera (o todos) de estos componentes puden ser una sentencia vacía (un punto y coma).

  • el bucle do-while

Java proporciona otro bucle, el bucle do-while,que es similar al bucle while que se vi√≥ al principio, excepto en que la expresi√≥n se aval√ļ al final del bucle.

do {
sentencias
} while (Expresión Booleana);

La sentencia do-while se usa muy poco en la construcción de bucles pero tiene sus usos. Por ejemplo, es conveniente utilizar la sentencia do-while cuando el bucle debe ejecutarse al menos una vez.

Tutorial. Clases en Java

23 de Junio de 2008

Las clases son los elementos fundamentales de Java. Todo en Java forma parte de una clase, es una clase o describe como funciona una clase. El conocimiento de las clases es fundamental para poder entender los programas Java.

Todas las acciones de los programas Java se colocan dentro del bloque de una clase o un objeto. Todos los métodos se definen dentro del bloque de la clase, Java no soporta funciones o variables globales. Así pues, el esqueleto de cualquier aplicación Java se basa en la definición de una clase.

Todos los datos básicos, como los enteros, se deben declarar en las clases antes de hacer uso de ellos. La palabra clave import puede colocarse al principio de un fichero, fuera del bloque de la clase. Es necesario declarar explícitamente las clases que se van a utilizar (import) que no estén dentro del paquete (package) al que pertenece la clase.

Los tipos de clases que podemos definir son:

  • abstract: Una clase abstract tiene al menos un m√©todo abstracto. Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia.
  • final: Una clase final se declara como la clase que termina una cadena de herencia. No se puede heredar de una clase final. Por ejemplo, la clase Math es una clase final.
  • public: Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Son accesibles dentro del mismo paquete en el que se han declarado. Para acceder desde otros paquetes, primero tienen que ser importadas.
  • synchronizable: Este modificador especifica que todos los m√©todos definidos en la clase son sincronizados, es decir, que no se puede acceder al mismo tiempo a ellos desde distintos threads; el sistema se encarga de controlar la concurrencia. Este mecanismo hace que desde threads diferentes se puedan modificar las mismas variables sin que haya problemas de que se sobreescriban.

Cuando se crea una nueva clase en Java, se puede especificar el nivel de acceso que se quiere para las variables de instancia y los métodos definidos en la clase:

  • public (public void CualquieraPuedeAcceder(){}): Cualquier clase desde cualquier lugar puede acceder a las variables y m√©todos de instacia p√ļblicos.
  • protected (protected void SoloSubClases(){}): S√≥lo las subclases de la clase y nadie m√°s puede acceder a las variables y m√©todos de instancia protegidos.
  • private (private String NumeroDelCarnetDeIdentidad;) Las variables y m√©todos de instancia privados s√≥lo pueden ser accedidos desde dentro de la clase. No son accesibles desde las subclases.
  • friendly (sin declaraci√≥n espec√≠fica, void MetodoDeMiPaquete(){}) Por defecto, si no se especifica el control de acceso, las variables y m√©todos de instancia se declaran friendly (amigas), lo que significa que son accesibles por todos los objetos dentro del mismo paquete, pero no por los externos al paquete. Es lo mismo que protected.

Comentarios en Java

11 de Junio de 2008

En Java hay tres tipos de comentarios:

// comentarios para una sola línea
 
/* comentarios de una o
más líneas
*/
 
/** comentario de documentación, de una o más líneas
*/

Los dos primeros tipos de comentarios son los que todo programador conoce y se utilizan del mismo modo. Los comentarios de documentación, colocados inmediatamente antes de una declaración (de variable o función), indican que ese comentario ha de ser colocado en la documentación que se genera automáticamente cuando se utiliza la herramienta de Java, javadoc. Dichos comentarios sirven como descripción del elemento declarado permitiendo generar una documentación de nuestras clases escrita al mismo tiempo que se genera el código.

En este tipo de comentario para documentación, se permite la introducción de algunos tokens o palabras clave, que harán que la información que les sigue aparezca de forma diferente al resto en la documentación.