Pasar por valor --- pasar parámetros de tipo de datos básicos
Copie el código de código de la siguiente manera:
Valor de paso de clase pública {
intercambio vacío estático (int a, int b){// Método estático, intercambia los valores de a y b
temperatura interna;
temperatura = a;
a = b;
b = temperatura;
}
principal vacío estático público (String [] argumentos) {
int yo = 10;
int j = 100;
System.out.println("antes de llamar: " + "i=" + i + "/t" + "j = " + j);//antes de llamar
exchange(i, j); //Transferencia de valor, el método principal solo puede llamar a métodos estáticos
System.out.println("después de la llamada: " + "i=" + i + "/t" + "j = " + j);//Después de la llamada
}
}
Resultados de ejecución:
Copie el código de código de la siguiente manera:
antes de la llamada: i = 10 j = 100
después de la llamada: i = 10 j = 100
Nota: Al llamar a exchange(i, j), los parámetros reales i y j pasan sus valores a los parámetros formales correspondientes a y b respectivamente. Cuando se ejecuta el método exchange(), los valores del formal cambian. Los parámetros ayb no afectan los parámetros reales. Los valores de i y j no han cambiado antes y después de la llamada.
Pasando por referencia --- objeto como parámetro
Copie el código de código de la siguiente manera:
libro de clase {
Nombre de cadena;
precio privado del folato;
Libro(String n, float){ //Método de construcción
nombre = n;
precio = p;
}
cambio de vacío estático (Book a_book, String n, float p){ //Método estático, objeto como parámetro
un_libro.nombre = n;
a_book.precio = p;
}
public void output(){ //Método de instancia, información del objeto de salida
System.out.println("nombre: " + nombre + "/t" + "precio: " + precio);
}
}
clase pública PassAddr{
principal vacío estático público (cadena [] argumentos) {
Libro b = nuevo Libro("java2", 32.5f);
System.out.print("antes de llamar:/t"); //Antes de llamar
b.salida();
b.change(b, "c++", 45.5f); // Transferencia de referencia, transferir la referencia del objeto b, modificar el valor del objeto b
System.out.print("después de la llamada:/t"); //Después de la llamada
b.salida();
}
}
Resultados de ejecución:
Copie el código de código de la siguiente manera:
antes de la llamada: nombre:java2 precio:32.5
después de la llamada: nombre:c++ precio:45.5
Nota: Al llamar a change(b, "c++", 45.5f), el objeto b se utiliza como parámetro real y la referencia se pasa al parámetro formal correspondiente a_book. De hecho, a_book también apunta al mismo objeto, es decir. , el objeto tiene dos nombres de referencia: by a_book. Al ejecutar el método change(), la operación en el parámetro formal a_book es la operación en el parámetro real b.