Paluuarvot ja ylikuormitus
Tutustukaa return-lauseisiin, ennenaikaisiin paluuarvoihin ja metodien ylikuormitukseen parametrien määrän ja tyypin perusteella. Mukana ovat varargs- ja ylikuormituksen valinnan esimerkit.
Paluuarvot ja ylikuormitus on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 3 oppituntia.
Yleiskatsaus
Tavoite: Opetella return-lauseet ja metodien ylikuormitus. Tässä tutustutaan aikaisiin palautuksiin eli suojalauseisiin, parametrimäärän ja tyypin perusteella tehtäviin ylikuormituksiin sekä lyhyeen varargs-esimerkkiin.
Return ja suojalause
Return palauttaa arvon kutsujalle ja lopettaa metodin suorituksen. Suojalauseet eli aikaiset palautukset pitävät koodin yksinkertaisena käsittelemällä erikoistapaukset ensin.
public class Main {
// Double an integer and return the result
static int doubleIt(int x) {
return x * 2;
}
// Return a label using a simple early-return pattern (guard clause)
static String parity(int n) {
if (n % 2 == 0) {
return "even"; // early return ends the method here
}
return "odd"; // otherwise this path executes
}
public static void main(String[] args) {
System.out.println("doubleIt(7) = " + doubleIt(7));
System.out.println("parity(10) = " + parity(10));
System.out.println("parity(11) = " + parity(11));
}
}
Useita palautuksia
Virheellisen syötteen käsittely aikaisella palautuksella välttää syvän sisäkkäisyyden. Tässä nollalla jakaminen palauttaa nollan yksinkertaisena toimintatapana; myöhemmin tutustutaan poikkeuksiin.
public class Main {
// Safe integer division with simple validation
static int safeDiv(int num, int den) {
if (den == 0) {
return 0; // simple policy: return 0 if denominator is zero
}
return num / den; // normal path
}
public static void main(String[] args) {
System.out.println("safeDiv(8, 2) = " + safeDiv(8, 2));
System.out.println("safeDiv(5, 0) = " + safeDiv(5, 0));
}
}
Ylikuormitus: määrä
Ylikuormitus tarkoittaa samaa metodin nimeä ja erilaista parametriluetteloa. Parametrien määrän muuttaminen muodostaa kelvollisen ylikuormituksen.
public class Main {
// Overload 1: max of two numbers
static int max(int a, int b) {
return (a > b) ? a : b;
}
// Overload 2: max of three numbers (different parameter COUNT)
static int max(int a, int b, int c) {
int m = (a > b) ? a : b;
return (m > c) ? m : c;
}
public static void main(String[] args) {
System.out.println("max(3, 9) = " + max(3, 9));
System.out.println("max(3, 9, 5) = " + max(3, 9, 5));
}
}
Ylikuormitus: tyypit
Ylikuormitus tyypin perusteella mahdollistaa saman nimen käyttämisen toisiinsa liittyviin toimintoihin. Sekatyyppiset numeeriset argumentit muunnetaan parhaiten sopivaa allekirjoitusta vastaaviksi.
public class Main {
// Overload for integers
static int add(int a, int b) {
return a + b;
}
// Overload for doubles (different parameter TYPES)
static double add(double a, double b) {
return a + b;
}
public static void main(String[] args) {
System.out.println("add(2, 3) = " + add(2, 3)); // calls int version
System.out.println("add(2.5, 3.5) = " + add(2.5, 3.5)); // calls double version
System.out.println("add(2, 3.5) = " + add(2, 3.5)); // numeric promotion chooses double version
}
}
Ylikuormitus: varargs
Varargs (int...) kerää nolla tai useampia argumentteja. Ylikuormituksen ratkaisu suosii täsmällistä ei-varargs-vastaavuutta, jos sellainen on käytettävissä.
public class Main {
// Specific overload for two ints
static int sum(int a, int b) {
return a + b;
}
// Varargs overload for many ints
static int sum(int... nums) {
int s = 0;
for (int i = 0; i < nums.length; i = i + 1) s = s + nums[i];
return s;
}
public static void main(String[] args) {
// Exact match beats varargs
System.out.println("sum(4, 5) = " + sum(4, 5)); // picks (int,int)
System.out.println("sum(1,2,3,4) = " + sum(1, 2, 3, 4)); // uses varargs
}
}
Ylikuormituksen tarkistus
Pikatarkistus: Mitkä kaksi metodia voivat olla kelvollisia ylikuormituksia samassa luokassa?
Kertaus ja seuraava aihe
Kertaus: Käytettiin return-lauseita ja aikaisia palautuksia, luotiin parametrimäärän ja tyypin perusteella kelvollisia ylikuormituksia sekä harjoiteltiin varargs-rakennetta. Seuraavaksi käsitellään muuttujien ja metodien näkyvyysaluetta ja elinkaarta.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Paluuarvot ja ylikuormitus” ilmainen?
Kyllä – oppitunnin ”Paluuarvot ja ylikuormitus” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Paluuarvot ja ylikuormitus”?
Tutustukaa return-lauseisiin, ennenaikaisiin paluuarvoihin ja metodien ylikuormitukseen parametrien määrän ja tyypin perusteella. Mukana ovat varargs- ja ylikuormituksen valinnan esimerkit. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Paluuarvot ja ylikuormitus”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Metodien ja parametrien määrittäminen
- Paluuarvot ja ylikuormitus
- Näkyvyysalue ja elinkaari