viernes, 11 de noviembre de 2016

12-Programación Orientada a Objetos en Java (Parte II). Los Modificadores public, private, protected y default

Antes de adentrarnos aún más en el estudio de la programación orientada a objetos en Java vamos a estudiar los modificadores.  Los modificadores los llevamos utilizando desde que creamos nuestro primer programa Java, entonces ¿Qué son los modificadores de acceso?
Los modificadores de acceso permiten el encapsulamiento de la información, es decir, nos permiten controlar el acceso a los datos que conforman un objeto o instancia. A través de los modificadores podemos restringir el acceso a los diferentes atributos, métodos, constructores y clases.


¿Qué tipos de modificadores de acceso existen?

  • Modificador de acceso public
  • Modificador de acceso private
  • Modificador de acceso protected
  • Modificador de acceso default

12.1-Modificador de acceso public

El modificador de acceso public es el más permisivo de todos, justo lo contrario que el modificador de acceso private.
Si a un componente le ponemos un modificador public, tendremos acceso a ese componente desde cualquier lugar, ya sea desde otra clase, desde otro objeto sin importar el paquete o procedencia del objeto. El modificador public se utiliza normalmente para los métodos set and get que veremos en un tutorial posterior.
Ejemplo:

public void setEdad(int edad){
      this.edad = edad;      
}

El método anterior es un método set para establecer la edad. Este método es public, y podremos acceder a él desde cualquier parte, por ejemplo desde otra clase. A través de este método se modifica el valor de un atributo que podría ser private

private int edad = 0;

12.2-Modificador de acceso private

El modificador de acceso private es el más restrictivo de todos. Cualquier elemento de una clase, ya sean atributos o métodos private, sólo pueden ser accedido desde la misma clase.
Los atributos de una clase, por lo general, son private. Haciendo uso de métodos públicos (public) set and get, podremos acceder y modificar el valor de los atributos.

public class Humano {
    //Atributos
    private String nombre = null;
    private int edad = 0;
}

El código anterior contiene dos atributos en la clase Humano que son de acceso private. Os podréis preguntar cómo podremos ahora acceder desde otra clase a estos atributos para modificarlos o retornar su valor. Para poder acceder a los atributos de una clase private lo que haremos es crear los métodos set y/o get, que tanto estamos hablando en este tutorial y que veremos más adelante en mayor profundidad. Estos métodos tendrán un modificador public para así poder acceder a ellos desde cualquier lugar. Por ejemplo:


public class Humano {
    //Atributos
    private String nombre = null;
    private int edad = 0;
    
    //Creamos los métodos set and get con acceso público
    public void setNombre(String nombre){
        this.nombre = nombre;
    }
    
    public String getNombre(){
        return nombre;
    }
    
    public void setEdad(int edad){
        this.edad = edad;
    }
    
    public int getEdad(){
        return edad;
    }
}

class ProgramaFuncional {
    public static void main(String [] args){
        //Creamos un objeto de la clase Humano para poder acceder a los métodos
        //set and get de acceso público
        Humano primerHumano = new Humano();
    
        //A partir del objeto podremos modificar y mostrar la información
        //de los atributos que tienen el modificador private
    
        //Modificamos la edad y el nombre con los métodos set
        primerHumano.setEdad(26);//Edad vale ahora 26
        primerHumano.setNombre("Javier");//De nombre Javier
        
        //Mostramos los datos a través de los métodos get
        System.out.println("La edad es: " + primerHumano.getEdad());
        System.out.println("El nombre es: " + primerHumano.getNombre());
    }
}

12.3-Modificador de acceso protected

Este modificador nos permitirá tener acceso a los componentes con modificador protected desde:
  • La misma clase
  • Clases del mismo paquete
  • Clases que hereden de ella, incluso en diferentes paquetes.

12.3-Modificador de acceso default

El modificador por defecto (default) permite que tanto la propia clase como las clases del mismo paquete puedan acceder al contenido del elemento. 
Para utilizarlo, no hace falta poner default antes del elemento, basta con no poner nada y Java automáticamente sabrá que el modificador utilizado es default.


String nombre = "Mario";//Atributo con modificador default
    
    
    //Método con modificador por defecto (default)
    void setNombre(String nombre){
        this.nombre = nombre;
    }

Estos son los modificadores de acceso que nos proporciona Java, como resumen os dejo a continuación una tabla con estos modificadores y el acceso que tiene cada uno.


No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...