Jaké jsou typy návratů v Javě? Jak se používají?

Nejlepší odpověď

  • Pokud dělám sčítání, návratový typ by byl int .
  • Pokud chci vrátit jméno uživatele, pak typ návratu bude Řetězec .
  • Pokud chci vrátit seznam polí obsahujících některá data, pak by to byl Seznam polí .
  • Pokud chci vrátit, pokud bylo připojení úspěšné nebo ne, pak Boolean .

Příklad 1:

// Návratový typ int

veřejná funkce int doSomething () {

int a = 5;

int b = 4;

int c = a * b;

návrat c; // typ int //

}

Příklad 2:

// Návratový typ Řetězec

veřejná funkce Řetězec doSomething () {

Řetězec a = „První NAme“;

Řetězec b = „POSLEDNÍ NAme“;

Řetězec c = a + b; // zřetězení

návrat c; // typ Řetězec // O / P => křestní jméno příjmení

}

Příklad 3:

// návratový typ ArrayList

veřejná funkce ArrayList doSomething () {

ArrayList list = new ArrayList ();

String a = „First NAme“;

String b = „POSLEDNÍ NAme“;

list.add (a);

list.add (b);

návratový seznam; // type ArrayList // O / P => [příjmení křestního jména]

}

návratový typ může být jakéhokoli typu, dokonce i uživatelem definovaný objekt třídy. např. návrat objStudent; (kde návratový typ je nějaká třída Student a objStudent je předmětem této třídy.

Odpověď

Ostatní, kteří „odpověděli, jsou zkušenější než já, ale já se pokusím odpovědět na otázku.

Java má dva typy proměnných a metod – primitivní typy a referenční typy . Metoda však musí mít návratový typ primitivu, odkazu, nebo void . Pokud jeden z nich nezahrnete, váš kód nebude kompilován.

[Poznámka: Nebudu zde diskutovat o konstruktorech. Osobně nemám raději konstruktory nazývat „speciálními metodami“. Někteří programátoři používají metodu zahrnout konstruktory. Pokud se nemýlím, vzpomínám si na dokumenty Oracle Java odkazující na konstruktory jako na „speciální metody“.]]

PRIMITIVNÍ TYPY

Zde je osm primitivních typů citlivých na velká a malá písmena: byte, short, int, long, float, double, char a boolean. [String není primitivní typ; it „sa reference type.] Metoda může vrátit jeden z nich nebo žádný z nich (void) jako v následujícím fragmentu kódu.

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. */

Naše metody nemusí vracet žádnou hodnotu. Metody, které nevracejí žádný typ, musí mít typ void. Java neočekává, že bude něco vráceno, pokud zahrneme void jako typ návratu metody. Zahrnutí návratu (EDIT: 27. května) typ povede k selhání kompilace. Někteří programátoři umístí návratové prohlášení „ return; „, když je návratový typ metody neplatný. Tento kód vyhovuje.

Zde “ s příklad metody s návratovým typem void. (Mimochodem, slova jako veřejné, soukromé a chráněné se nazývají modifikátory přístupu. Pro zjednodušení tyto modifikátory přístupu záměrně vynechávám.)

double balance = 275.00;

makeDeposit( 65.00 );

void makeDeposit( double deposit )

{

balance = balance + deposit;

}

/* Notice we have no return type included in the method. */

Následující kód nebude kompilováno , protože má návratový příkaz s neplatným návratovým typem pro metodu.

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. */

TYPY REFERENCÍ

Typy odkazů jsou všechny ostatní typy kromě ides void a osm primitivních typů. Jedná se o objekty – pole, Integer, BigInteger, String, ArrayList, List, Map a AnyValidUserDefinedType, jsou jen některé z referenčních typů.

Vrátí typ odkazu v níže uvedený kód.Referenční typy (nikoli primitivní typy) mohou mít návratovou hodnotu 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. */

Ve výše uvedeném kódu jsme vrátili int [] s názvem inputArray. Typ inputArray odpovídá referenčnímu typu metody sortArray ().

V následujícím kódu jsme se rozhodli vrátit null pro náš referenční typ, i když naše metoda očekávala typ String. Připomeňme, že Řetězec je třída a referenční typ, nikoli primitivní typ jako int, double nebo 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 */

Ve výše uvedeném kódu, pokud má název délku 3, vrátí metoda getShortNames () hodnotu názvu. V našem případě je však název dlouhý 5 znaků, takže je vrácena hodnota null. Řádek 5 vytiskne null.

Jak jsem již zmínil, můžeme také vrátit typy z našich uživatelem definovaných tříd. Nejsme omezeni na třídy, které jsou definovány v knihovnách Javy, jako jsou String, Integer, BigDecimal, Map atd.

Hlavní body k zapamatování:

  • Tři typy návratů pro metody; must use one: primitive type, reference type, or void
  • Při použití primitivních a referenčních návratových typů pro metody musí být do bloku kódu metody zahrnut příkaz return – složené závorky {}. V opačném případě očekávejte chybu kompilace.
  • Při použití void jako návratového typu metody nelze do bloku kódu metody zahrnout návratové prohlášení . Jinak kód nebude kompilován.
  • Metoda s referenčním návratovým typem musí obsahovat návratový příkaz, který vrátí proměnnou s přesným referenčním typem nebo vrátí null . Null nelze použít jako návratový typ, pokud je vyžadován primitivní návratový typ. Null samozřejmě nelze použít, protože návratový typ metody má návratový typ neplatný.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *