miércoles, 7 de marzo de 2018

Programación Orientada a Objetos en JAVA parte 4

MODIFICADORES DE ACCESO

Entremos al "NetBeans":
Crearemos 2 paquetes; uno de ellos va 2 clases y el otro en un paquete, asi:



En la clase1 por defecto hay un modificador:

package Paquete1;

public class Clase1 {
     int atributo1;

}


en la clase2 crearemos un objeto, así:

package Paquete1;

public class Clase2 {
    public static void main (String[] args){
        Clase1 objeto1 = new Clase1();
        
        objeto1.atributo1 = 15;
    }

}


Por el momento no hay error (si copiamos y pegamos) por que clase1 y clase2 están en el mismo paquete (package); ahora crearemos un objeto en la clase 3, pero si hacemos esto, nos marcaría error porque clase 3 y clase 1 estan en diferentes paquetes y para eso importaremos así:

package Paquete2;
import Paquete1.Clase1;

public class Clase3 {
    public static void main (String[] args){
        Clase1 objeto1 = new Clase1();
        
        objeto1.atributo1 = 15;
    }

}

por el momento no nos esta marcando un error pero si queremos llamar al "atributo1" : objeto1.atributo1 = 15; nos marcaria error porque como se ha mencionado en la clase 1 por defecto hay un modificador y solo es para ese paquete, y como solucionarlo? pues ir a la clase1 en donde dice: int atributo1; añadir "public" y quedaria asi: public int atributo1; listo ya no marcaria error. Ahora si en vez de "public" escribimos "private" que pasaria? Marcaria un error en la clase3 y tambien en la clase2; pero porque en la clase2, si pertenece al mismo paquete? el "private" lo que hace es restringir el atributo1 y solo puede ser utilizado por métodos en la misma clase.


ENCAPSULAMIENTO

Que hace el encapsulamiento?

Es ocultar tanto los atributos como los métodos y solo puedan ser accedidos de la misma clase.

Para hacer el encapsulamiento usaremos los métodos accesores que son los Setters y los Getters. en el encapsulamiento los Setters (set) establecemos la variable y con los Getters (get) mostraremos la varibale un ejemplo:

package Paquete1;

public class Clase1 {
    private int edad;
    private String nombre;
    
    //Con el Set establecemos la edad y el get mostramos la edad
    public void SetEdad(int edad){
        this.edad = edad;
    }
    public int GetEdad(){
        return edad;
    }
    
    public String getNombre() {
        return nombre;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }



Esa es la forma de encapsular, ahora si queremos establecer la edad escribir public void y para mostrar con el public int (depende del tipo de dato que tiene el atributo, en esta casi la edad es de int y por lo tanto le asignamos el public int)

Ahora vamos al método main:

public static void main (String[] args){
        Clase1 objeto1 = new Clase1();
        
        objeto1.SetEdad(10);
        System.out.println("La edad es: "+objeto1.GetEdad());

    }

}

Crearemos el objeto y llamamos a método setEdad(estableciendo un numero) y luego imprimimos para llamar al getEdad solo escribir: ".."+objeto1.GetEdad()); y listo.


Compartir:

PAG WEB de Farmacia con HTML5 y CSS

Interfaz Principal de la Página Tamaño de Escritorio: Tamaño de Tablet: Tamaño de Celular Movil: Armado de l...