Jakie są zwracane typy w Javie? W jaki sposób są używane?

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 doSomething () {

ArrayList list = new 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 i AnyValidUserDefinedType, to tylko niektóre z typów referencyjnych.

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 itp.

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *