Najlepsza odpowiedź
- Jeśli dodam, typem zwracanym będzie int .
- Jeśli chcę zwrócić nazwę użytkownika, typem zwracanym będzie String .
- Jeśli chcę zwrócić listę tablicy zawierającej jakieś dane, będzie to Lista tablic .
- Jeśli chcę zwraca, jeśli połączenie się powiodło, czy nie, to Boolean .
Przykład 1:
// Return type int
public function int doSomething () {
int a = 5;
int b = 4;
int c = a * b;
return c; // wpisz int //
}
Przykład 2:
// Zwracany typ String
public function String doSomething () {
String a = „First NAme”;
String b = „OSTATNIA NAME”;
String c = a + b; // konkatenacja
return c; // wpisz String // O / P => Imię Nazwisko
}
Przykład 3:
// Zwracany typ ArrayList
public function ArrayList
ArrayList
String a = „First NAme”;
String b = „LAST NAme”;
list.add (a);
list.add (b);
lista zwrotów; // wpisz ArrayList // O / P => [First Name Last Name]
}
return type może być dowolnego typu, nawet obiekt klasy zdefiniowanej przez użytkownika. np. return objStudent; (gdzie typem zwracanym jest jakaś klasa Student, a objStudent jest obiektem tej klasy.
Odpowiedź
Inni, którzy odpowiedzieli, są bardziej doświadczeni niż ja, ale spróbuję aby odpowiedzieć na pytanie.
Java ma dwa typy zmiennych i metod – typy prymitywne i typy odwołań . Jednak metoda musi mieć zwracany typ pierwotny, referencyjny, lub void . Jeśli nie podasz żadnego z nich, kod nie zostanie skompilowany.
[Uwaga: nie omawiam tutaj konstruktorów. Osobiście nie wolę nazywać konstruktorów „metodami specjalnymi”. Niektórzy programiści używają terminu metoda, aby include konstruktory. Jeśli się nie mylę, przypominam sobie w dokumentach Oracle Java, że konstruktory są określane jako „metody specjalne”.]
PRIMITIVE TYPES
Oto osiem typów pierwotnych uwzględniających wielkość liter: byte, short, int, long, float, double, char i boolean. [String nie jest typem pierwotnym; jest to typ referencyjny.] Metoda może zwrócić jedną z tych wartości lub żadną z nich (void), jak w poniższym fragmencie kodu.
balance = getAccountBalance();
/* Method getAccountBalance() below is going to subtract a fee of 1.50 before returning our balance. */
double getAccountBalance()
{
balance = balance - 1.50;
return balance;
}
/* The variable balance must have a type that matches double because the return type of method getAccountBalance() is double. Otherwise, we get a compile error. */
Nasze metody w ogóle nie muszą zwracać żadnej wartości. Te metody, które nie zwracają żadnego typu, muszą mieć typ o nazwie void. Java nie oczekuje, że coś zostanie zwrócone, jeśli uwzględnimy void jako zwracany typ metody. Uwzględnienie zwrotu (EDYCJA: 27 maja) typ spowoduje niepowodzenie kompilacja. Niektórzy programiści umieszczają instrukcję powrotu „ return; ”, gdy typ zwracany metody jest nieważny. Ten kod jest zgodny.
Tutaj ” s przykład metody z zwracanym typem void. (Nawiasem mówiąc, słowa takie jak publiczne, prywatne i chronione są nazywane modyfikatorami dostępu. Celowo pomijam te modyfikatory dla uproszczenia.)
double balance = 275.00;
makeDeposit( 65.00 );
void makeDeposit( double deposit )
{
balance = balance + deposit;
}
/* Notice we have no return type included in the method. */
Poniższy kod wygrał „t compile , ponieważ zawiera instrukcję return z void zwracanym typem metody.
double balance = 275.00;
makeDeposit( 200.00 );
void makeDeposit( double deposit )
{
balance = balance + deposit;
return balance;
}
/* The last line "return balance" causes the code to fail to compile because the program doesn"t know what to do with the return statement. Java is expecting a return type of void, nothing. The code is returning balance, a double type. */
RODZAJE ODNIESIEŃ
Typy odwołań to wszystkie inne typy ides void i osiem typów pierwotnych. Te typy to obiekty – tablice, Integer, BigInteger, String, ArrayList, List, Map
Zwróćmy typ referencyjny w poniższy kod.Typy referencyjne (nie typy pierwotne) mogą mieć zwracaną wartość null.
int[] values = { -4, 16, -36, 0 };
values = sortArray( values );
int[] sortArray( int[] inputArray )
{
/* code to sort values */
return inputArray;
}
/* The program returns the sorted array. */
W powyższym kodzie zwróciliśmy int [] o nazwie inputArray. Typ inputArray odpowiada typowi odwołania metody sortArray ().
W poniższym kodzie zdecydowaliśmy się zwrócić null dla naszego typ referencyjny, mimo że nasza metoda oczekiwała typu String. Przypomnij sobie, że String to klasa i typ referencyjny, a nie typ prymitywny, taki jak int, double czy boolean.
/* We want to return the name only if it is short, 3 characters or fewer to be exact. */
String firstName = "Ahmad";
String shortName = getShortNames( firstName );
System.out.println("Short Name = " + shortName );
String getShortNames( String name )
{
if ( name.length() > 3 )
{
return null;
}
else
{
return name;
}
}
/* Output: null */
W powyższym kodzie, jeśli nazwa ma długość 3, metoda getShortNames () zwróci wartość nazwy. Jednak w naszym przypadku nazwa ma 5 znaków, więc zwracana jest wartość null. Linia 5 wypisuje null.
Jak wspomniałem wcześniej, możemy również zwrócić typy z naszych klas zdefiniowanych przez użytkownika. Nie jesteśmy ograniczeni do klas zdefiniowanych w bibliotekach Javy, takich jak String, Integer, BigDecimal, Map
Najważniejsze kwestie do zapamiętania:
- Trzy typy zwracane dla metod; musi używać jednego: typ pierwotny, typ referencyjny lub void
- W przypadku używania typów pierwotnych i zwracanych w metodach instrukcja return musi być zawarta w bloku kodu metody – nawiasach klamrowych {}. W przeciwnym razie spodziewaj się błędu kompilacji.
- Gdy używasz void jako zwracanego typu metody, instrukcja return nie może być zawarta w bloku kodu metody . W przeciwnym razie kod nie zostanie skompilowany.
- Metoda z zwracanym typem odniesienia musi zawierać instrukcję return, która zwraca zmienną z dokładnym typem odniesienia lub zwraca null . Null nie może być używane jako typ zwracany, jeśli wymagany jest pierwotny typ zwracany. Oczywiście nie można użyć null jako zwracanego typu metody, która ma zwracany typ void.