16 oct 2014

Clases y objetos en Java

Introducción a las clases

La unidad fundamental de programación en Java es la clase.

Las clases:
o   Contienen los métodos (código ejecutable).
o   Proporcionan la estructura de los objetos.
o   Proporcionan el mecanismo para fabricar objetos a partir de las definiciones de la clase.

Cada objeto es una instancia de la clase.

Los elementos fundamentales de una clase son los atributos y los métodos.

Plantilla básica de una clase:

class nombre_de_clase {
    [modificador_acceso]tipo variable_de_instancia1;
    [modificador_acceso]tipo variable_de_instancia2;
    ...
    [modificador_acceso]tipo variable_de_instanciaN;
    [mod_acceso]tipo nombre_método1 (lista_de_parámetros){
         cuerpo_del_método;
    }
    [mod_acceso]tipo nombre_método2 (lista_de_parámetros){
         cuerpo_del_método;
    }
    ...
    [mod_acceso]tipo nombre_métodoN (lista_de_parámetros){
         cuerpo_del_método;
    }
}

El archivo fuente es la unidad de compilación Java:
o   Archivo de texto con una o más definiciones de clase (no hay ni funciones ni variables globales).
o   Estos ficheros tienen extensión .java

Cuando se compila el código fuente, cada clase individual se coloca en un fichero de salida propio con el nombre de la clase con extensión .class

Una aplicación Java debe tener una clase que contenga un método main con el que poder iniciar el programa:
o   El compilador de Java compilará todas las clases que no tengan un método main.
o   El intérprete de Java, sin embargo, no tiene modo alguno de ejecutar esas clases.
o   El fichero fuente y la clase con el método main deben tener el mismo nombre (incluyendo mayúsculas y minúsculas).

Ejemplo:

package personabasicojava;
class Persona {
    public Persona() {
        nombre = "Juan";
        tel = 5551234;
    }
    String nombre;
    int tel;
}
public class PersonaBasicoJava {
    public static void main(String[] args) {
        Persona p = new Persona();
        System.out.println("Nombre: " + p.nombre);
        System.out.println("Telefono: " + p.tel);
        return;
    }
}


Creación de objetos


Cada clase que se crea añade otro tipo que puede utilizarse igual que los tipos simples.

Cuando se declara una nueva variable se puede utilizar un nombre de clase como tipo
o   A estas variables se las denomina referencias a objeto

Todas las referencias a objeto son compatibles también con las instancias de subclases de su tipo declarado.

Cuando se declara que el tipo de una variable es una clase, tiene como valor por defecto null.
                       
            Empleado emp;

El operador new crea una única instancia de una clase y devuelve una referencia a ese objeto.
           
Empleado emp = new Empleado( );

Aquí emp es una referencia a una instancia de Empleado.


 Modificadores de control de acceso

Las clases tienen dos tipos de especificación de acceso: privadas de un paquete, que es la situación por omisión, sin indicar nada, o bien públicas, lo cual se indica anteponiendo public al nombre de la clase.

Todos los atributos y métodos de una clase son accesibles para el código de la propia clase.

Para controlar el acceso de otras clases (así como la herencia por las subclases), los miembros de una clase tienen unos modificadores de control de acceso:
o   public: Los miembros declarados como públicos son accesibles en cualquier lugar donde sea accesible la clase (y son heredados por las subclases).

o   private: Los miembros declarados como privados son accesible sólo en la propia clase.

o   protected: Los miembros declarados como protegidos son accesibles para las subclases y heredados de ellas, así como por el código del mismo paquete.

Los miembros que se declaren sin modificador (conocidos como default o package-private) son accesibles sólo desde las clases del mismo paquete.


Declaración de atributos


Normalmente, los atributos tienen visibilidad private, salvo que sea conveniente acceder a ellos directamente desde clases derivadas.


public class Ficha {
    // Declaración de atributos en Java
    private String nombre;
    private String apellidos;
    private String curso;
    private String DNI;
    private String grupoPracticas;
    private int numNotas;
    private float[] calificaciones;
    private String comentarios;

 

Declaración de métodos


public class Ficha {
    …
   
    public Ficha() {     
    nombre = "Nombre";
    apellidos = "Apellidos";
    curso = "2012";
    DNI = "01234567X";
    grupoPracticas = "X7";
    numNotas = 5;
    calificaciones = new float[numNotas];
    for (int i = 0; i < numNotas; i++) {
        calificaciones[i] = i;
         }
           comentarios = "Comentarios";
    }

No hay comentarios:

Publicar un comentario