Passando parâmetros de funções em java
Resumir:
1. Ao passar um objeto (uma referência a um objeto) como um parâmetro, a referência é passada (equivalente a um ponteiro). Em outras palavras, as modificações feitas nos parâmetros na função afetarão o objeto original.
2. Ao passar um tipo primitivo ou um conjunto de embalagem de tipos primitivos como parâmetros, o valor é passado. Em outras palavras, as modificações feitas nos parâmetros na função não afetarão a variável original.
3. Ao passar a matriz (referência da matriz)) como um parâmetro, a referência é passada (equivalente ao ponteiro). Em outras palavras, as modificações feitas nos parâmetros da função afetarão a matriz original.
4. Quando o tipo de string (referência) é passado como um parâmetro, é uma referência. No entanto, quando qualquer modificação na string for feita, um novo objeto String será gerado e o valor do objeto String original não será modificado. (No entanto, você pode atribuir uma referência ao novo objeto à referência original. Isso fornece às pessoas o fenômeno superficial de que o objeto original mudou, mas não mudou, mas a referência original apontou para o novo objeto).
pacote stringtest; classe A {int a = 1; char b = 'a'; public a () {} public a (int _a, char _b) {this.a = _a; this.b = _b; } public string tostring () {return "a ="+this.a+", b ="+this.b; }} classe pública ReferenceTest {public static A Changea (uma classe) {class.a = 2; classe.b = 'b'; classe de retorno; } public static string changestring (string str) {system.out.println (str.hashcode ()); str = str.TolowerCase (); System.out.println (str.hashcode ()); retornar str; } public static int mudeInt (int a) {a = a+1; retornar a; } public estático Inteiro ChangeInteger (número inteiro a) {a = new Integer (9); retornar a; } public static int [] alteração (int a []) {a [0] = 10; retornar a; } public static void PrintArray (int a []) {for (int i = 0; i <A.Length; i ++) {System.out.print (a [i]+""); } System.out.println (); } public static void main (string [] args) {// O objeto personalizado passa uma referência a a = new a (); A b = changea (a); System.out.println (a); System.out.println (a); System.out.println (b); System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //The String object is also a reference as um parâmetro (mas o valor do objeto String não pode ser alterado. Cada valor da string modificado recrie um novo objeto String para salvar o valor modificado, e o valor original não será alterado) String str1 = "Huhualiang"; System.out.println (str1); System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------ System.out.println (INTA); System.out.println (intb); System.out.println (intb); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] Arrayb = ChangeIntRay (Arraya); Resultados em execução:
a = 2, b = b
a = 2, b = b
---------------------------
711139030
711139030
226046678
226046678
Huhualiang
Huhualianang
---------------------------
8
9
---------------------------
1
9
---------------------------
10 1 2 3
10 1 2 3
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!