Passar por valor --- passar parâmetros básicos de tipo de dados
Copie o código do código da seguinte forma:
classe pública PassValue{
static void exchange(int a, int b){//Método estático, troque os valores de a e b
temperatura interna;
temperatura = uma;
uma = b;
b = temperatura;
}
public static void main(String[] args){
int eu = 10;
int j = 100;
System.out.println("antes da chamada: " + "i=" + i + "/t" + "j = " + j);//antes da chamada
exchange(i, j); //Transferência de valor, o método principal só pode chamar métodos estáticos
System.out.println("após chamada: " + "i=" + i + "/t" + "j = " + j);//após chamada
}
}
Resultados em execução:
Copie o código do código da seguinte forma:
antes da chamada: i = 10 j = 100
após chamada: i = 10 j = 100
Nota: Ao chamar exchange(i, j), os parâmetros reais i e j passam seus valores para os parâmetros formais correspondentes aeb respectivamente. Quando o método exchange() é executado, os valores do formal mudam. os parâmetros a e b não afetam os parâmetros reais. Os valores de i e j não foram alterados antes e depois da chamada.
Passando por referência --- objeto como parâmetro
Copie o código do código da seguinte forma:
livro de aula{
Nome da sequência;
preço privado do folato;
Book(String n, float){ //Método de construção
nome =n;
preço =p;
}
static void change(Book a_book, String n, float p){ //Método estático, objeto como parâmetro
a_livro.nome = n;
a_livro.preço = p;
}
public void output(){ //Método de instância, informações do objeto de saída
System.out.println("nome: " + nome + "/t" + "preço: " + preço);
}
}
classe pública PassAddr{
public static void main(String [] args){
Livro b = novo Livro("java2", 32.5f);
System.out.print("antes da chamada:/t");
b.saída();
b.change(b, "c++", 45.5f); //Transferência de referência, transfere a referência do objeto b, modifica o valor do objeto b.
System.out.print("após chamada:/t"); //Após chamada
b.saída();
}
}
Resultados em execução:
Copie o código do código da seguinte forma:
antes da chamada: nome:java2 preço:32,5
após chamada: nome:c++ preço:45,5
Nota: Ao chamar change(b,"c++",45.5f), o objeto b é usado como parâmetro real e a referência é passada para o parâmetro formal correspondente a_book. Na verdade, a_book também aponta para o mesmo objeto, ou seja, , o objeto terá dois nomes de referência: b e a_book. Ao executar o método change(), a operação no parâmetro formal a_book é a operação no parâmetro real b.