Què és una declaració de retorn a Java?
A la programació Java, la instrucció return s'utilitza per retornar un valor quan s'ha completat l'execució del bloc. La instrucció de retorn dins d'un bucle farà que el bucle es trenqui i el compilador ignorarà altres declaracions.
Devolució d'un valor d'un mètode
A Java, cada mètode es declara amb un tipus de retorn com ara int, float, double, string, etc.
Aquests tipus de retorn requerien una instrucció de retorn al final del mètode. S'utilitza una paraula clau de retorn per retornar el valor resultat.
El tipus de retorn nul no requereix cap declaració de retorn. Si intentem retornar un valor d'un mètode void, el compilador mostra un error.
marquesina html
A continuació es mostren els punts importants que cal recordar quan es retorna un valor:
- El tipus de retorn del mètode i el tipus de dades retornades al final del mètode han de ser del mateix tipus. Per exemple, si es declara un mètode amb el tipus de retorn flotant, el valor retornat només hauria de ser de tipus flotant.
- La variable que emmagatzema el valor retornat després de cridar el mètode hauria de ser un tipus de dades similar, en cas contrari, les dades es podrien perdre.
- Si es declara un mètode amb paràmetres, la seqüència del paràmetre ha de ser la mateixa durant la declaració i la trucada de mètode.
Sintaxi:
La sintaxi d'una instrucció de retorn és que la paraula clau de retorn va seguida del valor a retornar.
return returnvalue;
Els següents programes Java demostren l'ús de les sentències return.
SampleReturn1.java
public class SampleReturn1 { /* Method with an integer return type and no arguments */ public int CompareNum() { int x = 3; int y = 8; System.out.println('x = ' + x + ' y = ' + y); if(x>y) return x; else return y; } /* Driver Code */ public static void main(String ar[]) { SampleReturn1 obj = new SampleReturn1(); int result = obj.CompareNum(); System.out.println('The greater number among x and y is: ' + result); } }
Sortida:
x = 3 y = 8 The greater number among x and y is: 8
Al codi Java anterior, el mètode CompareNum es defineix amb el int tipus de retorn. Es compara el x i i valors i retorna el nombre més gran.
SampleReturn2.java
public class SampleReturn2 { /* Method with an integer return type and arguments */ public int CompareNum(int x, int y) { System.out.println('x = ' + x + ' y = ' + y); if(x>y) return x; else return y; } /* Driver Code */ public static void main(String ar[]) { SampleReturn2 obj = new SampleReturn2(); int result = obj.CompareNum(15,24); System.out.println('The greater number among x and y is: ' + result); } }
Sortida:
x = 15 y = 24 The greater number among x and y is: 24
Al codi Java anterior, el mètode CompareNum es defineix amb int tipus de retorn i dos arguments x i i . El mètode compara x i i valors i retorna el nombre més gran.
objecte java
Devolució d'una classe o interfície
Un mètode pot tenir el nom de la classe com a tipus de retorn. Per tant, ha de retornar l'objecte de la classe exacta o la seva subclasse.
Un nom d'interfície també es pot utilitzar com a tipus de retorn, però l'objecte retornat ha d'implementar mètodes d'aquesta interfície.
El següent programa Java mostra la implementació d'un nom de classe com a tipus de retorn.
SampleReturn3.java
class SumReturn { private int a; public SumReturn(int i) { a = i; } /*The addition method returns a SumReturn object with adding 100 into it. */ public SumReturn addition() { SumReturn result = new SumReturn(a + 100); return result; } public void display() { System.out.println('Additon result: ' + a); } } public class SampleReturn3 { /* Driver Code */ public static void main(String[] args) { SumReturn obj1 = new SumReturn(50); SumReturn obj2; /* addition method returns a reference of SumReult class */ obj2 = obj1.addition(); obj2.display(); } }
Sortida:
Additon result: 150
En el codi anterior, a SumResult classe conté un addició mètode amb el nom de classe com a tipus de retorn. Torna el resultat valor i l'imprimeix amb el visualització mètode.