Definición+de+una+clase

Una vez declarada conceptualmente una clase es preciso definirla. En este caso se necesita crear una nueva clase, definir variables de instancia y escribir métodos. Casi todo en Java es un objeto: un objeto almacena datos relacionados y proporciona operaciones que puedan ejecutarse sobre sí mismo. Una clase define las características de un grupo de objetos que comparten ciertas características: almacenan los mismos tipos de datos y pueden realizar los mismos tipos de operaciones. Cada instancia de un objeto de la misma clase almacena los mismos tipos de datos y se pueden realizar las mismas operaciones, pero cada objeto puede almacenar diferentes valores reales y representa una ocurrencia específica de esa clase de objetos.

Una clase contiene:
 * Constructores. Crean un objeto de una clase determinada y se utilizan para inicializar el estado del objeto.
 * Variables de instancia. Almacenan información acerca del estado del objeto.
 * Métodos. Realizan alguna operación sobre un objeto.
 * Variables estáticas. Almacenan información que se relaciona con la clase completa en lugar de con un objeto específico.
 * Métodos estáticos. Realizan alguna operación que se relaciona con la clase completa en lugar de con un objeto específico.

Ejemplo

code format="java" class Coordena{ double x = 5.0; double y = 1.0;

double distancia { return Math.sqrt(x*x + y*y); } } code

Creación de clases
Una clase es una colección de miembros datos y métodos que definen un objetos específico. Es la construcción fundamental del lenguaje Java. Una clase puede ser definida por el usuario o proporcionada por los paquetes incorporados en Java.El convenio para dar nombre a las clases es utilizar una letra mayúscula para la primera letra.

Archivos de clases y compilación independiente.
Un programa Java consta de objetos de diversas clases que interactúan unos con otros. Cada definición de una clase Java debe estar en un archivo. No sólo cada definición de la clase Java debe estar en un archivo independiente, sino que el nombre del archivo debe ser el mismo que el nombre de la clase, con la extensión .java.Se ha de compilar una clase Java antes de que cualquier programa la utilice. El código compilado de la clase se almacenará en un archivo del mismo nombre, pero terminado en una extensión .class. Posteriormente, se puede compilar un archivo de programa con el método main. Declaración de variables de instancia Los miembros dato de una clase se definen mediante variables instancia. Estas variables pueden ser de cualquier tipo primitivo (int, float, double…), arrays, cadenas, etc. **Sintaxis**
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">acceso || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">nombreTipo nombreVariableInstancia; ||
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">acceso || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">puede ser public, protected, private, o bien, el acceso por defecto o por omisión. ||
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">public || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">se puede acceder a la variable desde cualquier método ||
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">protected || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">los métodos de la clase, los métodos de las clases del mismo paquete pueden acceder sólo a los métodos de las clases derivadas ||
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">private || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">sólo los métodos de la clase pueden acceder a la variable ||
 * <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">por omisión || <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">los métodos de la clase y los de las clases del mismo paquete pueden acceder a la variable ||

<span style="color: #0020ff; font-family: Verdana,Geneva,sans-serif;">Definición de métodos
<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">La definición de un método consta de dos partes: cabecera y cuerpo del método.El nombre de un método puede ser cualquier identificador, pero no puede ser una palabra reservada Java. Se sigue el convenio de que la primera letra del nombre del método se escribe con minúsculas. <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">La cabecera del método especifica el tipo de acceso, tipo de valor devuelto o de retorno, nombre del método y los parámetros del método.Un método puede devolver un valor. El tipo del método es el tipo de dato del valor que devuelve el método. Si el método no devuelve un valor, el tipo de método es la palabra reservada void. Todos los métodos excepto los constructores devuelven un tipo de dato.

<span style="color: #0020ff; font-family: Verdana,Geneva,sans-serif;">Definición de un método que devuelve un valor
<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">La definición, al igual que un método que no devuelve valor, consta de las sentencias y de al menos una sentencia return, en la que se específica el valor devuelto. La sentencia return tiene dos formatos: return; return expresión;

<span style="color: #0020ff; font-family: Verdana,Geneva,sans-serif;">Invocación de un método
<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">Un método puede tener una lista de parámetros en la especificación del método. Cuando un método se llama o invoca, los parámetros formales se reemplazan por variables o datos, que se denominan parámetros reales o actuales. La lista de parámetros puede estar vacía. <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">La invocación a un método de un objeto consiste en escribir el nombre del objeto llamador, seguido por un punto, a continuación el nombre del método, seguido de un paréntesis que contiene información del método.

<span style="color: #0020ff; font-family: Verdana,Geneva,sans-serif;">Constructores
<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">Los constructores son métodos no estáticos que tienen el mismo nombre de la case, no devuelven ningún tipo de retorno y se llaman automáticamente cuando se crea una clase. La función del constructor es inicializar un nuevo objeto. Se pueden especificar para una clase tantos constructores como sea necesario, diferenciándose uno de otro por el número o tipo de los parámetros. Los valores que inicializaron a las variables instancia se pasan a través de la lista de argumentos de los constructores. <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">Los constructores son métodos especiales que no requieren un tipo de retorno, ni incluso void.

<span style="color: #0020ff; font-family: Verdana,Geneva,sans-serif;">Método main
<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">Todas las aplicaciones Java comienzan invocando al método main que se sitúa en la clase cuyo nombre ha sido dado a la máquina virtual Java para comenzar la ejecución del programa. No todas las clases necesitan un método main, sólo las clases que son el punto de arranque del programa. <span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">El método main se declara static, ya que es llamado por la máquina java en tiempo de ejecución antes de que se cree cualquier objeto. Los argumentos que se pasan al método main pueden ser cualquiera de la línea de órdenes que se introduce cuando se ejecuta el programa.

<span style="display: block; font-family: Verdana,Geneva,sans-serif; text-align: justify;">