Pasando parámetros de funciones en Java
Resumir:
1. Al pasar un objeto (una referencia a un objeto) como parámetro, la referencia se pasa (equivalente a un puntero). En otras palabras, las modificaciones realizadas a los parámetros en la función afectarán el objeto original.
2. Al pasar un tipo primitivo o un conjunto de envoltura de tipos primitivos como parámetros, se pasa el valor. En otras palabras, las modificaciones realizadas a los parámetros en la función no afectarán la variable original.
3. Al pasar la matriz (referencia de matriz)) como parámetro, la referencia se pasa (equivalente al puntero). En otras palabras, las modificaciones realizadas a los parámetros en la función afectarán la matriz original.
4. Cuando el tipo de cadena (referencia) se pasa como parámetro, es una referencia. Sin embargo, cuando se realiza cualquier modificación en la cadena, se generará un nuevo objeto de cadena y no se modificará el valor del objeto de cadena original. (Sin embargo, puede asignar una referencia al nuevo objeto a la referencia original. Esto le da a las personas el fenómeno superficial que el objeto original ha cambiado, pero no ha cambiado, pero la referencia original ha señalado el nuevo objeto).
paquete stringtest; Clase 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; }} clase pública referenceTest {public static a Changea (una clase) {class.a = 2; class.b = 'b'; clase de retorno; } public static string changeString (string str) {system.out.println (str.hashcode ()); str = str.tolowercase (); System.out.println (str.hashcode ()); regresar str; } public static int cambia (int a) {a = a+1; regresar a; } public static integer ChangeInteger (entero a) {a = nuevo entero (9); regresar a; } public static int [] ChangeIntArray (int a []) {a [0] = 10; regresar 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) {// El objeto personalizado pasa una referencia a 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 No se puede cambiar un parámetro (pero el valor del objeto de cadena. System.out.println (str1); System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int int intb=changeint(inta); System.out.println (INTA); System.out.println (intb); System.out.println (intb); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------- [] Arrayb = ChangeInsinterray (Arraya); Resultados de ejecución:
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
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!