La sintaxis para los paquetes es la que sigue:
package automoviles;
class Coche {
...
}
Y en otra clase podremos hace uso de la clase coche como sigue:
package simuladores;
import automoviles.Coche;
class Simulador
{
Coche coche;
...
}
También podríamos haber puesto:
package simuladores;
import automoviles.*;
class Simulador
{
Coche coche;
...
}
Teniendo así disponibles todas las clases del objeto coche. Nota: el archivo que almacene la clase debe de estar en una ruta de directorios que sea igual al nombre del paquete, por ejemplo si mi paquete es: package automoviles.terrestres; y mi clase se llama Coche, el archivo Coche.java ha de estar en la ruta: .../automoviles/terrestres/Coche.java. Otro inciso: el archivo se tiene que llamar igual que la clase que contiene así este Coche.java contendrá dentro class Coche ....
Por defecto tenemos acceso a las clases definidas en java.lang (que es el paquete lang –de lenguaje- dentro del paquete java). Para utilizar clases de otros paquetes habrá que referirse a ellos explícitamente.
public class Ejemplo
{
public int entero;
protected String cadena;
private float numeroReal;
public Ejemplo() {
}
public void metodoPublico() {
metodoPrivado();
metodoProtegido();
metodoPublico();
entero=1;
cadena="asdf";
numeroReal=2.2;
...
}
protected void metodoProtegido() {
...
}
private void metodoPrivado();
}
Dentro de la propia clase que los define podemos acceder sin ningún problema a los miembros propios. Pero, veamos que sucede si tratamos de acceder a esos miembros desde una clase que hereda de ella:
public class EjemploHija
extends Ejemplo {
public void unMetodo() {
metodoPublico();
metodoProtegido();
metodoPrivado(); // -> Ilegal.
entero=2;
cadena="jkjkl";
numeroReal=3.1; // -> Ilegal.
}
}
Y desde una clase que haga clientela de la primera:
Ejemplo miEjemplo
= new Ejemplo();
miEjemplo.metodoPublico();
miEjemplo.metodoProtegido();
// -> Ilegal.
miEjemplo.metodoPrivado();
// -> Ilegal.
miEjemplo.entero=5;
miEjemplo.cadena="ajsdg";
// -> Ilegal.
miEjemplo.numeroReal=34.2;
// -> Ilegal.
Nota: Para las clases sólamente podemos utilizar los modificadores public y package.
Hay muchas constantes definidas en la API de Java: Math.PI, Color.red, Color.blue, etc.
El ejemplo lo componen los archivos Coche.java, Motor.java y Prueba1.java.
Se encuentran en el directorio:
\Curso Java\Java\Ejemplos\curso\
El ejemplo lo componen los archivos Coche.java, CocheDeportivo.java, Motor.java y Prueba2.java.
Se encuentran en el directorio:
\Curso Java\Java\Ejemplos\curso\