Sunday, July 30, 2017

Class Problema 7

Clases Problema 7 (Java)
Problema

Identifique y muestra la diferencia de pasar argumentos por referencia y por valor. Ayuda: En el Manual de Java SE 8 en la pagina 173 dice:"Cuando se pasa una variable primitiva dentro de un método, esta pasa como valor......, mientras que cuando se pasa un objeto como parámetro dentro de un método, éste pasa por referencia.
De un ejemplo que permita demostrar esta afirmación (en el manual hay un ejemplo con valores enteros, inténtelo hacer con otra variable primitiva).

Solución

Clase valor_referencia

package certification1;

public class valor_referencia {
    int valor1;
    
    public valor_referencia(int valor){
        valor1 = valor;
    }
    
    void referencia(valor_referencia a){
        a.valor1 *= 2;   // valor1 cambiara
    }
    
    void valor(int a){
        a *= 2;        // valor1 NO cambiara
    }
}
Clase main


package certification1;

public class Certification1 {
    
    public static void main(String[] args) {
       try{
           
           {
               System.out.println("Por Referencia");
               valor_referencia x = new valor_referencia(12);
               x.referencia(x);
               System.out.println(x.valor1);
           }
           {
               System.out.println("Por valor");
               int valor1 = 12;
               valor_referencia x = new valor_referencia(valor1);
               x.valor(2);
               System.out.println(valor1);
           }
           
       }
       catch(Exception e){
           System.out.println(e.getMessage());
       }
    }
}

No comments:

Post a Comment

Earn free bitcoin