Una clase es un tipo definido por el usuario que describe los y los de los objetos que se crearán a partir de la misma.
Los definen el estado de un determinado objeto y los son las operaciones que definen su comportamiento. Forman parte de estos los , que permiten iniciar un objeto, y los , que permiten destruirlo. Los atributos y los métodos se denominan en general .
La definición de una clase consta de dos partes: el nombre de la clase precedido por la palabra reservada , y el cuerpo de clase encerrado entre llaves.
El cuerpo de clase en general consta de , , y .
Un implícitamente define un mensaje.
El nombre del método es el .
Los modificadores de acceso son: , y .
Los generalmente forman lo que se denomina interfaz o medio de acceso a la estructura interna de los objetos; ellos definen las operaciones que se pueden realizar con sus atributos.
Los métodos se pueden anidar.
Un método es una definición incluida siempre dentro del cuerpo de una clase.
Puede ser accedido por cualquier clase perteneciente al mismo paquete. Ninguna otra clase o subclase fuera de este paquete puede tener acceso a estos miembros.
Acceso predeterminado
Private
Protected
Public
Está accesible para cualquier otra clase o subclase que necesite utilizarlo.
Acceso predeterminado.
Public.
Private.
Protected.
Es accesible solamente por los métodos de su propia clase. Esto significa que no puede ser accedido por los métodos de cualquier otra clase, incluidas las subclases.
Procted.
Se comporta exactamente igual que uno privado para los métodos de cualquier otra clase, excepto para los métodode las clases del mismo paquete o de sus subclases con independencia del paquete al que pertenezcan, para las que se comporta como un miembro público.
Cuando en una clase un mismo método se define varias veces con distinto número de parámetros, o bien con el mismo número de parámetros pero diferenciándose una definición de otra en que al menos un parámetro es de un tipo diferente, se dice que el método está .
Los métodos sobrecargados pueden diferir también en el tipo de valor retornado.
Una aplicación consiste en una o más clases, de las cuales una de ellas tiene que ser una clase aplicación: clase que incluya el método main.
Niveles de acceso de una clase: de paquete y público. Una clase con nivel de acceso de paquete sólo puede ser utilizada por las clases de su paquete (no está disponible para otros paquetes, ni siquiera para los subpaquetes). En cambio, una clase pública puede ser utilizada por cualquier otra clase de otro paquete.
Por omisión una clase tiene el nivel de acceso público.
Las clases finales generalmente se denominan constantes porque nunca cambian su valor.
Static es para hacer que una constante sea de la clase y no del objeto.
¿Quién puede cambiar el método? Una subclase que intente redefinirlo, pero sólo podrá hacerlo si el método no es final.
Cuando una clase se declara estamos impidiendo que de esa clase se puedan derivar subclases. Además todos sus métodos se convierten automáticamente en final.
Declarar una referencia final a un objeto supone que esa referencia sólo pueda utilizarse para referenciar ese objeto; cualquier intento accidental de modificar dicha referencia para que señale a otro objeto será declarado durante la compilación, en vez de causar errores durante la ejecución.
Un es un método especial de una clase que es llamado automáticamente siempre que se crea un objeto de la misma. Su función es iniciar nuevos objetos de su clase.
Un constructor, salvo casos excepcionales, debe declararse siempre público para que pueda ser invocado desde cualquier parte, aunque la clase, que se supone pública, pertenezca a otro paquete.
En el caso de que el constructor tenga parámetros, para crear un nuevo objeto hay que especificar la lista de argumentos correspondiente entre los paréntesis que siguen al nombre de la clase del objeto.
A diferencia de otros métodos de la clase, un constructor no puede ser invocado directamente, pero sí indirectamente a través de this.
Cuando trabaja con objetos lo que realmente manipula desde cualquier método son referencias a los objetos.