Menovateľ ≠ 0
f(x) = 1/(x − 2)
x − 2 ≠ 0 ⇒ x ≠ 2
D(f) = ℝ ∖ {2}TVOJE UČIVO. ZROZUMITEĽNE.
Od prvého bodu v grafe po kompletný rozbor funkcie.
01 / VYSKÚŠAJ A POCHOP
a mení sklon priamky.
b určuje priesečník s osou y.
Dosadíš x, vypočítaš y.
Bod zapíšeš ako [x; y].
Body označujú hodnoty z tabuľky. Výrez grafu nie je celý definičný obor. „nedef.“ znamená, že pre dané x funkcia nemá hodnotu.
02 / OSEM KROKOV, ŽIADNA VYNECHANÁ VLASTNOSŤ
Pri rozbore prejdi písmená v tomto poradí. Každé má svoju otázku.
D(f) je množina všetkých prípustných vstupov x. Z grafu si predstav jeho premietnutie na vodorovnú os. Otvorený bod do grafu nepatrí; plný bod áno.
Pri raste väčšiemu x zodpovedá väčšie y; pri poklese menšie y. Konštantná funkcia má stále rovnaké y. Hľadaj intervaly, nie iba jedno slovo pre celý graf.
Presne: ak x₁ < x₂, pri rastúcej funkcii platí f(x₁) < f(x₂). Pri neklesajúcej stačí ≤. Konštantná je neklesajúca aj nerastúca, ale nie striktne rastúca ani klesajúca.
Najprv skontroluj súmernosť D(f) podľa nuly: spolu s x musí obsahovať aj −x. Potom dosaď −x do celého predpisu a uprav ho.
Nulová funkcia na ℝ je párna aj nepárna. x² na ⟨−2; 3⟩ nie je párna: obor nie je súmerný. Nestačí pozrieť iba predpis.
H(f) obsahuje všetky výstupy y. Pri grafe si predstav jeho premietnutie na zvislú os.
D(f) hovorí o x; H(f) o y. Číslo pri najvyššom bode obrázka nemusí byť maximum funkcie — graf môže pokračovať mimo výrezu.
Globálne maximum je hodnota f(x₀), ktorá je aspoň taká veľká ako všetky ostatné hodnoty funkcie. Musí byť dosiahnutá v bode z D(f).
Lokálne maximum je najvyššie iba v blízkom okolí. Bez ďalšieho označenia tu určujeme globálne extrémy na celom D(f).
Globálne minimum je hodnota f(x₀), ktorá je nanajvýš taká veľká ako všetky ostatné hodnoty funkcie. Opäť musí byť dosiahnutá.
Funkcia je zhora ohraničená, ak existuje číslo K, pre ktoré f(x) ≤ K pre každé prípustné x. Zdola ohraničená, ak existuje k s f(x) ≥ k. Ak platí oboje, je ohraničená.
Hranica sa nemusí dosiahnuť. Preto ohraničenosť neznamená existenciu maxima či minima.
Zhora alebo zdola ohraničujeme hodnoty y, nie šírku definičného oboru na osi x.
Funkcia je prostá, ak rôzne vstupy dávajú rôzne výstupy: x₁ ≠ x₂ ⇒ f(x₁) ≠ f(x₂).
Striktne rastúca alebo klesajúca funkcia je prostá. Prostá funkcia však nemusí byť monotónna na celom obore: príkladom je 1/x na ℝ ∖ {0}.
03 / NAJPRV PODMIENKY
f(x) = 1/(x − 2)
x − 2 ≠ 0 ⇒ x ≠ 2
D(f) = ℝ ∖ {2}f(x) = √(x − 3)
x − 3 ≥ 0 ⇒ x ≥ 3
D(f) = ⟨3; +∞)f(x) = 1/√(x − 3)
x − 3 > 0 ⇒ x > 3
D(f) = (3; +∞)Pri polynómoch (napr. 2x + 1 alebo x²) je D(f) = ℝ. Pri logaritme musí byť argument kladný: log(x − 1) ⇒ x > 1. Vždy rešpektuj aj obor zadaný v príklade. Ak zadanie obor obmedzí, všetky vlastnosti určuj na tomto obmedzenom obore.
04 / VZOROVÝ ZÁPIS DO ZOŠITA
Predstav si parabolu x² posunutú o 4 nadol. Vrchol je [0; −4].
| D | Definičný obor | D(f) = ℝ. Polynóm nemá obmedzenia. |
|---|---|---|
| R | Monotónnosť | Klesá na (−∞; 0⟩; rastie na ⟨0; +∞). |
| P | Párnosť | Párna: f(−x) = (−x)² − 4 = x² − 4 = f(x). |
| O | Obor hodnôt | H(f) = ⟨−4; +∞), pretože x² ≥ 0. |
| M | Maximum | Nemá — hodnoty rastú bez obmedzenia. |
| M | Minimum | Minimum −4 v x = 0. |
| O | Ohraničenosť | Zdola ohraničená číslom −4; zhora neohraničená. |
| P | Prostosť | Nie je prostá: f(−1) = f(1) = −3. |
x² − 4 = 0 ⇒ x = −2 alebo x = 2. Priesečníky s osou x sú [−2; 0] a [2; 0]. S osou y: [0; −4].
Nad osou x: (−∞; −2) ∪ (2; +∞). Záporná je na (−2; 2). V nulových bodoch nie je kladná ani záporná.
Pre x² iba na ⟨−2; 3⟩ je H(f) = ⟨0; 9⟩, maximum 9 v x = 3 a minimum 0 v x = 0. Je ohraničená, nie je párna ani nepárna a nie je prostá. Vyskúšaj ju v grafe hore.
05 / SKÚS TO SÁM
Každému prípustnému x funkcia priradí práve jedno y. f je meno funkcie. x je vstup, y výstup. Dvojbodka uvádza predpis. Rovnako môžeš napísať f(x) = ax + b.
Pre a > 0 priamka rastie, pre a < 0 klesá, pre a = 0 je konštantná. Priesečník s osou y je [0; b]. Ak a ≠ 0, nulový bod je x = −b/a.
Pri y = 2x + 1 zvoľ x = −2. Dosadíš: y = 2 · (−2) + 1 = −3. Do tabuľky patrí −3 a do grafu bod [−2; −3].
Pre priamku stačia dva rôzne body; tretím si výsledok over. Pri krivke body spoj podľa jej tvaru, nie úsečkami naslepo.
⟨0; 3⟩ obsahuje 0 aj 3. (0; 3) ich neobsahuje. ⟨0; 3) obsahuje iba ľavý kraj. Pri ±∞ je vždy okrúhla zátvorka.
ℝ = reálne čísla; ∪ = zjednotenie; ∖ = vynechanie. ℝ ∖ {0} sú všetky reálne čísla okrem nuly.
f(−2) = 4 + 4 = 8. −2x + 4 = 0 ⇒ x = 2. Keďže a = −2 < 0, funkcia je klesajúca na ℝ. D(f) = H(f) = ℝ, nemá minimum ani maximum a nie je párna ani nepárna.
f(−x) = (−x)² + 2 = x² + 2 = f(x), teda je párna. D(f) = ℝ, H(f) = ⟨2; +∞). Minimum je 2 v x = 0, maximum nemá.
x + 2 ≥ 0 a súčasne x − 1 ≠ 0. Preto x ≥ −2 a x ≠ 1. D(f) = ⟨−2; 1) ∪ (1; +∞).
Zvoľ x: −2, −1, 0, 1, 2. Vypočítaj y: −5, −3, −1, 1, 3. Vyznač body [−2; −5], [−1; −3], [0; −1], [1; 1], [2; 3] a prelož nimi priamku. Priamka pokračuje oboma smermi.
D: ℝ. R: rastie na ℝ, lebo a = 3 > 0. P: ani párna, ani nepárna. O: H(f) = ℝ. M: maximum nemá. M: minimum nemá. O: zhora aj zdola neohraničená. P: prostá. Nulový bod navyše: x = 2.
Nie je prostá: napríklad f(0) = f(1) = 5. Je konštantná, párna, H(f) = {5}. Maximum aj minimum sú 5 v každom x. Je ohraničená zhora aj zdola.
Vezmi f(x) = x na (0; 1). Všetky hodnoty ležia medzi 0 a 1. Ani 0, ani 1 však nedosiahne, a preto nemá minimum ani maximum.
01 / ZAČNI TU
Budeme používať tvoje príklady Osoba, Medved a Main. Každý nový pojem hneď spojíme s kódom.
public class Osoba {
private String aMeno;
private int aVek;
private int aVyska;
private String aFarbaOci;
private boolean aJeStudent;
}Osoba určuje, aké údaje a metódy majú jej objekty. Atribút je uložená vlastnosť konkrétneho objektu, napríklad jeho vek.
String = text, int = celé číslo, boolean = true alebo false.
K atribútu pristupuje kód jeho triedy. Z inej triedy, napríklad Main, použijeme verejné metódy. Preto peter.aVek = 20; nefunguje, ale peter.setVek(20); áno.
Takéto oddelenie vnútorných údajov od spôsobu ich používania sa volá zapuzdrenie.
new Osoba() vytvorí nový objekt. Každé ďalšie new vytvorí ďalšiu samostatnú osobu.
V Osoba peter = new Osoba(); je Osoba typ, peter premenná a pravá strana vytvára objekt. Premenná naň odkazuje.
Osoba druhy = peter; nevytvorí novú osobu. Oba názvy odkazujú na rovnaký objekt. Zmena cez jeden názov je viditeľná aj cez druhý.
02 / AKO OBJEKT VZNIKNE
public Osoba(String paMeno, int paVek, int paVyska,
String paFarbaOci, boolean paJeStudent) {
this.aMeno = paMeno;
this.aVek = paVek;
this.aVyska = paVyska;
this.aFarbaOci = paFarbaOci;
this.aJeStudent = paJeStudent;
}Osoba peter = new Osoba("Peter", 18, 180, "modrá", true);Konštruktor sa volá Osoba a nemá návratový typ, ani void. Vyvolá sa pri vytváraní objektu cez new.
aVek je atribút. paVek je parameter prijatý konštruktorom. Číslo 18 pri volaní je argument.
this znamená „tento objekt“. this.aVek = paVek; uloží prijatú hodnotu do jeho atribútu. Predpony a/pa sú školská konvencia, nie povinnosť Javy.
public Osoba() {
this("Stevo", 16, 185, "hnedá", true);
}Osoba stevo = new Osoba();Bezparametrický konštruktor zvolí pripravené hodnoty. Zápis this(...) zavolá iný konštruktor tej istej triedy. V tomto príklade je prvým príkazom.
Oba konštruktory môžu existovať naraz — líšia sa parametrami. Toto je preťaženie.
Ak napíšeš vlastný parametrický konštruktor, Java ti automaticky nepridá bezparametrický. Ak chceš používať new Osoba(), musíš ho mať.
03 / ČÍTANIE, ZMENA A VÝSTUP
public int getVek() { return this.aVek; }Metódu môžeme volať aj z inej triedy. private by ju sprístupnilo len v rámci jej triedy.
int určuje návratový typ. return odovzdá výsledok volajúcemu a skončí vykonávanie metódy.
getVek je názov. Prázdne () znamenajú, že metóda neprijíma argumenty. Pri volaní zátvorky nevynechaj.
public int getVek() {
return this.aVek;
}
public void setVek(int paVek) {
this.aVek = paVek;
}Osoba peter = new Osoba("Peter", 18, 180, "modrá", true);
System.out.println(peter.getVek()); // 18
peter.setVek(20);
System.out.println(peter.getVek()); // 20Setter sám nič nevypisuje. Až posledný println zobrazí novú hodnotu.
int vek = peter.setVek(20); je chyba, pretože setter vracia void. Výsledok načítaj getterom.
| Atribút | Getter | Setter |
|---|---|---|
| String aMeno | getMeno() | setMeno("Eva") |
| int aVek | getVek() | setVek(20) |
| int aVyska | getVyska() | setVyska(175) |
| String aFarbaOci | getFarbaOci() | setFarbaOci("zelená") |
| boolean aJeStudent | getJeStudent() | setJeStudent(false) |
V tvojom súbore sa posledný setter volal setaJeStudent. Tu ho zjednocujeme na setJeStudent. Getter pre boolean sa bežne volá aj isStudent(); podstatné je volať názov, ktorý je skutočne definovaný.
VYSKÚŠAJ SI TO BEZ PREPISOVANIA KÓDU
Táto simulácia ukazuje účinok setterov a getterov. Nie je to Java prekladač.
Objekt začína s menom Peter a vekom 18.
VOLANIA A VÝSLEDOK
@Override
public String toString() {
return this.aMeno + ": " + this.aVek + " r., "
+ this.aVyska + " cm, farba očí: "
+ this.aFarbaOci + ", je študent: "
+ this.aJeStudent;
}System.out.println(peter.toString());
System.out.println(peter); // rovnaký textprintln pri tomto objekte použije jeho toString(). Bez vlastnej verzie by si zvyčajne videl text typu Osoba@..., nie prehľad atribútov.
@Override označuje prepísanie zdedenej metódy z triedy Object a pomôže odhaliť chybný podpis.
public String jeStudentText() {
return this.aJeStudent ? "Je študent." : "Nie je študent.";
}
public void vypisInfo() {
System.out.println("Meno: " + this.aMeno);
System.out.println("Vek: " + this.aVek);
System.out.println(this.jeStudentText());
}return odovzdá výsledok programu. System.out.println vypíše údaj do konzoly.
Ternárny operátor podmienka ? áno : nie vyberie jeden z dvoch výsledkov. Je ekvivalentom jednoduchého if/else.
String text = peter.jeStudentText();
System.out.println(text);
peter.vypisInfo();this. často môžeš vynechať, keď nevznikne nejednoznačnosť. Označuje však jasne člen aktuálneho objektu.
public class Osoba {
private String aMeno;
private int aVek;
private int aVyska;
private String aFarbaOci;
private boolean aJeStudent;
public Osoba(String paMeno, int paVek, int paVyska,
String paFarbaOci, boolean paJeStudent) {
this.aMeno = paMeno;
this.aVek = paVek;
this.aVyska = paVyska;
this.aFarbaOci = paFarbaOci;
this.aJeStudent = paJeStudent;
}
public Osoba() {
this("Stevo", 16, 185, "hnedá", true);
}
public String getMeno() { return this.aMeno; }
public int getVek() { return this.aVek; }
public int getVyska() { return this.aVyska; }
public String getFarbaOci() { return this.aFarbaOci; }
public boolean getJeStudent() { return this.aJeStudent; }
public void setMeno(String paMeno) { this.aMeno = paMeno; }
public void setVek(int paVek) { this.aVek = paVek; }
public void setVyska(int paVyska) { this.aVyska = paVyska; }
public void setFarbaOci(String paFarbaOci) { this.aFarbaOci = paFarbaOci; }
public void setJeStudent(boolean paJeStudent) { this.aJeStudent = paJeStudent; }
@Override
public String toString() {
return this.aMeno + ": " + this.aVek + " r., " + this.aVyska
+ " cm, farba očí: " + this.aFarbaOci
+ ", je študent: " + this.aJeStudent;
}
public String jeStudentText() {
return this.aJeStudent ? "Je študent." : "Nie je študent.";
}
public void vypisInfo() {
System.out.println("Meno: " + this.aMeno);
System.out.println("Vek: " + this.aVek);
System.out.println("Výška: " + this.aVyska);
System.out.println(this.jeStudentText());
}
}
Stiahnuť Osoba.javapeter.getVek(). V static main nemôžeš použiť this. Konštruktory nie sú bežné metódy s návratovým typom.04 / TVOJ DRUHÝ PRÍKLAD
V pôvodnom Medved.java sú tri atribúty, hoci zadanie v komentári spomína aspoň štyri. V tejto učebnej verzii pridávame vek. Zachovaný je aj konštruktor s tromi argumentmi; vek vtedy nastaví na 0.
public class Main {
public static void main(String[] args) {
Medved prvy = new Medved();
Medved hnedy = new Medved("hnedý", 100, false, 4);
Medved baribal = new Medved("čierny", 90, false, 3);
prvy.setVaha(120);
System.out.println(prvy.getVaha());
System.out.println(hnedy.getFarba());
System.out.println(baribal);
}
}VÝSTUP TOHTO PRÍKLADU
120 hnedý Medved: farba=čierny, váha=90, hibernuje=false, vek=3
Prvý objekt vznikol bez argumentov. Ďalšie dva dostali vlastné hodnoty. Setter zmenil iba prvého medveďa.
Názov premennej neurčuje atribúty. Premenná nazvaná polarny nezmení farbu na bielu; tú musíš zadať konštruktorom alebo setterom.
public class Medved {
private String farba;
private int vaha;
private boolean hibernuje;
private int vek;
public Medved(String paFarba, int paVaha, boolean paHibernuje, int paVek) {
this.farba = paFarba;
this.vaha = paVaha;
this.hibernuje = paHibernuje;
this.vek = paVek;
}
// Zachováva aj volania s tromi argumentmi z pôvodného príkladu.
public Medved(String paFarba, int paVaha, boolean paHibernuje) {
this(paFarba, paVaha, paHibernuje, 0);
}
public Medved() {
this("hnedý", 100, true, 5);
}
public String getFarba() { return this.farba; }
public int getVaha() { return this.vaha; }
public boolean getHibernuje() { return this.hibernuje; }
public int getVek() { return this.vek; }
public void setFarba(String paFarba) { this.farba = paFarba; }
public void setVaha(int paVaha) { this.vaha = paVaha; }
public void setHibernuje(boolean paHibernuje) { this.hibernuje = paHibernuje; }
public void setVek(int paVek) { this.vek = paVek; }
@Override
public String toString() {
return "Medved: farba=" + this.farba + ", váha=" + this.vaha
+ ", hibernuje=" + this.hibernuje + ", vek=" + this.vek;
}
}
Stiahnuť Medved.java05 / ÚLOHY Z TVOJHO MAIN.DOCX
Najprv pochop rozdiel medzi kapacitou, obsadeným miestom a objektom. Potom bude každý cyklus dávať zmysel.
Medved[] medvede = new Medved[5];
medvede[0] = prvy;
medvede[1] = hnedy;
medvede[2] = baribal;new Medved[5] vytvorí pole piatich referencií, nie päť objektov Medved. Prázdne miesta majú hodnotu null.
Pri dĺžke 5 sú indexy 0 až 4. medvede.length je kapacita. Prístup na index 5 vyvolá chybu.
Pred volaním metódy použi m != null. Volanie m.getVaha() na prázdnom mieste spôsobí NullPointerException.
Scanner sc = new Scanner(System.in);
System.out.println("Farba:");
String farba = sc.nextLine();
System.out.println("Váha:");
int vaha = Integer.parseInt(sc.nextLine());
System.out.println("Hibernuje (true/false):");
String vstup = sc.nextLine();
if (!vstup.equals("true") && !vstup.equals("false")) {
System.out.println("Zadaj true alebo false.");
return;
}
boolean hibernuje = Boolean.parseBoolean(vstup);
System.out.println("Vek:");
int vek = Integer.parseInt(sc.nextLine());
medvede[3] = new Medved(farba, vaha, hibernuje, vek);import java.util.Scanner;. Čítame celé riadky a čísla z nich prevedieme. Zadaj platné celé čísla; iný text pri parseInt vyvolá NumberFormatException. Pri kombinácii nextInt() a nextLine() treba spotrebovať zostávajúci koniec riadka. V kompletnom súbore nižšie je tento príklad pripravený na spustenie.int pocet = 0;
for (Medved m : medvede) {
if (m != null) {
System.out.println(m); // celý objekt cez toString
System.out.println(m.getFarba()); // farba každého medveďa
pocet++;
}
}
System.out.println("Počet objektov: " + pocet);Medved najtazsi = null;
for (Medved m : medvede) {
if (m != null &&
(najtazsi == null || m.getVaha() > najtazsi.getVaha())) {
najtazsi = m;
}
}
if (najtazsi != null) {
System.out.println("Najťažší: " + najtazsi);
} else {
System.out.println("Pole je prázdne.");
}// Posledný obsadený prvok nemusí byť na poslednom indexe.
for (int i = medvede.length - 1; i >= 0; i--) {
if (medvede[i] != null) {
medvede[i].setVaha(250);
System.out.println(medvede[i]);
break;
}
}
// Nový objekt nahradí referenciu na indexe 3.
medvede[3] = new Medved("čiernobiely", 250, false, 6);int suma = 0;
for (Medved m : medvede) {
if (m != null) {
if (m.getVaha() > 110) {
System.out.println(m);
}
suma += m.getVaha();
}
}
System.out.println("Súčet váh: " + suma);String hladanaFarba = "hnedý";
boolean najdeny = false;
for (Medved m : medvede) {
if (m != null && hladanaFarba.equals(m.getFarba())) {
System.out.println(m);
najdeny = true;
}
}
if (!najdeny) {
System.out.println("Taký medveď sa v poli nenachádza.");
}import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 1–5: vytvorenie objektov, setter, getter, toString.
Medved prvy = new Medved();
Medved hnedy = new Medved("hnedý", 100, false, 4);
Medved baribal = new Medved("čierny", 90, false, 3);
prvy.setVaha(120);
System.out.println(hnedy.getFarba());
System.out.println(baribal);
// 6–7: pole má päť miest, zatiaľ iba tri objekty.
Medved[] medvede = new Medved[5];
medvede[0] = prvy;
medvede[1] = hnedy;
medvede[2] = baribal;
// 8: každý vstup čítame ako celý riadok.
// Zadávaj celé čísla a pri boolean presne true alebo false.
Scanner sc = new Scanner(System.in);
System.out.println("Farba:");
String farba = sc.nextLine();
System.out.println("Váha (celé číslo):");
int vaha = Integer.parseInt(sc.nextLine());
System.out.println("Hibernuje (true/false):");
String vstup = sc.nextLine();
if (!vstup.equals("true") && !vstup.equals("false")) {
System.out.println("Hibernuje musí byť true alebo false.");
return;
}
boolean hibernuje = Boolean.parseBoolean(vstup);
System.out.println("Vek (celé číslo):");
int vek = Integer.parseInt(sc.nextLine());
medvede[3] = new Medved(farba, vaha, hibernuje, vek);
// 9: všetky existujúce objekty.
for (Medved m : medvede) {
if (m != null) System.out.println(m);
}
// 10: počet objektov, nie kapacita poľa.
int pocet = 0;
for (Medved m : medvede) {
if (m != null) pocet++;
}
System.out.println("Počet objektov: " + pocet);
// 11: farba každého existujúceho objektu.
for (Medved m : medvede) {
if (m != null) System.out.println(m.getFarba());
}
// 12: najťažší objekt; funguje aj pre prázdne pole.
Medved najtazsi = null;
for (Medved m : medvede) {
if (m != null && (najtazsi == null || m.getVaha() > najtazsi.getVaha())) {
najtazsi = m;
}
}
if (najtazsi != null) System.out.println("Najťažší: " + najtazsi);
else System.out.println("Pole neobsahuje žiadny objekt.");
// 13: posledný obsadený prvok, nie posledná pozícia poľa.
for (int i = medvede.length - 1; i >= 0; i--) {
if (medvede[i] != null) {
medvede[i].setVaha(250);
System.out.println("Upravený: " + medvede[i]);
break;
}
}
// 14: nahradenie objektu na indexe 3 novým objektom.
medvede[3] = new Medved("čiernobiely", 250, false, 6);
// 15: váha striktne nad 110 kg.
System.out.println("Nad 110 kg:");
for (Medved m : medvede) {
if (m != null && m.getVaha() > 110) System.out.println(m);
}
// 16: súčet váh.
int suma = 0;
for (Medved m : medvede) {
if (m != null) suma += m.getVaha();
}
System.out.println("Súčet váh: " + suma);
// 17: porovnanie obsahu textu cez equals.
String hladanaFarba = "hnedý";
boolean najdeny = false;
for (Medved m : medvede) {
if (m != null && hladanaFarba.equals(m.getFarba())) {
System.out.println("Nájdený: " + m);
najdeny = true;
}
}
if (!najdeny) System.out.println("Taký medveď sa v poli nenachádza.");
}
}
Stiahnuť Main.java06 / NAJPRV SKÚS, POTOM ROZBAĽ
Riešenie si najprv napíš sám. Potom porovnaj názvy metód, typy argumentov a očakávaný výstup.
Osoba eva = new Osoba("Eva", 17, 170, "zelená", true);Poradie a typy argumentov musia sedieť s konštruktorom.
eva.setVek(18);
System.out.println(eva.getVek()); // 18Setter mení, getter vráti aktuálnu hodnotu a println ju vypíše.
eva.setMeno("Ema");
System.out.println(eva);Názov premennej eva sa tým nemení. Mení sa iba atribút mena objektu.
eva.setJeStudent(false);
System.out.println(eva.jeStudentText()); // Nie je študent.false je boolean bez úvodzoviek. "false" by bol text.
Osoba prva = new Osoba();
Osoba druha = prva;
druha.setVek(30);
System.out.println(prva.getVek());30. Nebolo použité druhé new. Obe premenné odkazujú na ten istý objekt.
prvy.setVaha(prvy.getVaha() + 10);
System.out.println(prvy.getVaha());Najprv getter zistí pôvodnú hodnotu, pripočíta sa 10 a setter uloží výsledok.
for (Medved m : medvede) {
if (m != null && m.getHibernuje()) {
System.out.println(m);
}
}Getter už vracia boolean, takže nemusíš písať == true.
public boolean jePlnoleta() {
return this.aVek >= 18;
}V main: System.out.println(eva.jePlnoleta());. Podmienka sama vytvorí hodnotu true alebo false.
setVek má typ void, neposkytuje hodnotu na vypísanie. Použi dva príkazy:
eva.setVek(20);
System.out.println(eva.getVek());Vznikne NullPointerException. Najprv over medvede[4] != null. Samotná existencia poľa nezaručuje existenciu objektu na každom indexe.