1. Método de transferência de parâmetros
Para resolver o problema do título, primeiro introduza o método de passagem de parâmetros. Atualmente, existem três métodos de transferência de parâmetros principais para várias linguagens de programação:
1. Passe por valor
2. Passe por referência
3. Passe por ponteiro
O método de representação (função) que passa de valor recebe uma cópia da variável fornecida pelo chamador sem alterar o valor do parâmetro; O valor da variável fornecido pelo chamador é passado pela referência; O valor do valor (função) é recebido pelo ponteiro pelo ponteiro é recebido pelo ponteiro sem alterar o valor e o endereço do ponteiro, mas o endereço apontado pelo ponteiro pode ser alterado.
2. Método de transferência de parâmetros Java
Infelizmente, existe apenas um método de passagem de parâmetros fornecido pelo Java, que é passado pelo valor. Ou seja, o método obtém uma cópia de todos os valores de parâmetros e o método não pode modificar o conteúdo da variável de parâmetro passada para ele.
Os tipos de parâmetros do método Java podem ser divididos em duas categorias:
1. Tipos de dados básicos
2. Referência de objeto
Amigos que têm experiência no desenvolvimento de Java sabem que, para os tipos de dados básicos, os métodos Java não podem alterar o conteúdo das variáveis. Então, o conteúdo não pode ser modificado por referência ao objeto da classe personalizada? Isso pode ser explicado por um exemplo simples. O código é o seguinte:
classe pubpc myclass {private objeto num; pubpc myclass (objeto num) {this.num = num; } PubPC Object getNum () {return num; } pubpc void setNum (objeto num) {this.num = num; }} Classe PubPC principal {PubPC Static Void Change (MyClass MyClass) {myclass.setnum (100); } pubpc estático void main (string [] args) {myclass a = new myclass (10); System.out.println ("O valor antes de chamar o método de mudança é:"+a.getnum ()); mudança (a); System.out.println ("O valor depois de chamar o método de mudança é:"+a.getnum ()); }}Os resultados da saída de execução do código acima são os seguintes:
A partir dos resultados, pode -se observar que o método de mudança pode modificar o estado do objeto. Em outras palavras, os métodos Java podem alterar o estado do parâmetro de um objeto. Então, isso significa que os métodos Java usam passes de referência para parâmetros de tipos de dados personalizados (classes personalizadas)? Para confirmar os resultados, você pode escrever um exemplo simples e todas as classes personalizadas ainda estão myclass acima. O código é o seguinte:
PubPC STATE VOID SWAP (MyClass A, MyClass B) {MyClass TMP = A; a = b; b = tmp; } pubpc estático void main (string [] args) {myclass a = new myclass (10); MyClass b = new myclass (100); System.out.println ("O valor de A antes da troca é:"+a.getnum ()); System.out.println ("O valor de B antes da troca é:"+b.getnum ()); troca (a, b); System.out.println ("O valor de A após a troca é:"+a.getnum ()); System.out.println ("O valor de B após a troca é:"+b.getnum ()); }}Os resultados da execução são os seguintes:
A partir dos resultados acima, podemos descobrir que os métodos Java ainda usam a passagem de valor para a passagem de parâmetros das classes personalizadas, não a passagem de referência. Então, por que os métodos Java pode modificar o estado do objeto?
Você pode considerar o processo de execução específico de chamar o método de mudança para encontrar a resposta.
O processo de execução específico é:
O MyClass é inicializado em uma cópia com o parâmetro real A, que é uma referência ao objeto.
O método setNum é aplicado à referência deste objeto. O número do objeto MyClass referenciado por MyClass e A é alterado para 100.
Depois que o método é concluído, a variável de parâmetro MyClass não é mais usada. E A continua a se referir ao objeto MyClass cujo NU se torna 100. Como mostrado na figura abaixo.
Portanto, a razão pela qual os métodos Java pode alterar o estado do parâmetro de objeto é que o método obtém uma cópia da referência do objeto, e a referência do objeto e outras cópias no método se referem ao mesmo objeto ao mesmo tempo.
Agora, vamos resumir os parâmetros do método Java:
Os métodos não podem modificar os parâmetros de um tipo de dados básico;
Os métodos podem alterar o estado dos parâmetros do objeto;
Os métodos não podem fazer com que os parâmetros do objeto consultem um novo objeto (o motivo é consultar o processo de execução específico ao chamar o método de mudança).
3. Trocar os valores numéricos das variáveis
Como você já sabe o motivo, não é difícil saber o motivo. Publique meu código pessoal diretamente:
PubPC STATE VOID SWAP (MyClass A, MyClass B) {objeto tmp = a.getnum (); a.setnum (b.getnum ()); B.Setnum (TMP);}Os resultados da execução são os seguintes:
A troca é válida.
Referências: Java Core Technology Volume I.
O artigo acima sobre Java troca o método de implementação numérica de duas variáveis é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.