4

Programovanie, algoritmy, zložitosť 2007

 2 years ago
source link: https://novotnyr.github.io/courses/programovanie-algoritmy-zlozitost-paz1c-2007/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Programovanie, algoritmy, zložitosť 2007

Programovanie, algoritmy, zložitosť 2007

2007/09/23

Oznamy

  • Podmienky na zápočet sú uvedené v prvej prezentácii.
  • Vyberte si vhodnú tému projektu a spoluriešiteľov a príďte ju prekonzultovať. Odovzdávanie projektov je medzi 20. a 30. januárom 2008!

Úvod a podmienky na zápočet

  • teoretické cvičenie - piatok, 11.00, P17
  • cvičenie pri počítačoch - štvrtok, 13.00, P3
  • podmienky na zápočet
    • účasť na praktických cvičeniach (20%)
    • domáce úlohy (raz za dve cvičenia) (30%)
    • záverečný projekt (30%)
    • test po precvičení dedičnosti (20%)

Projekty

  • Číselná lotéria (Potpinková, Martuš). Systém má podporovať viacero typov lotérii s možnosťou ľahko pridávať nové (napr. 5 zo 40 (Mates), 6 + dodatkové číslo zo 49 (Loto)). Používatelia zadávajú do lotérie tikety, kde si podľa typu hry zadajú tipované čísla. Lotéria po vyžrebovaní určí, ktoré tikety (a ktoréí užívatelia) vyhrali. Systém má podporovať načítavanie používateľov zo súboru a zápis výhernej listiny do súboru. Voliteľne môže byť v lotérii i viacero ťahov (tak ako je to v Lote).
  • Želežničná doprava (Uhrinová, Šabáková, Puciová)
  • Donášková služba (Fedorko, Goč)
  • Sieť reštaurácií (Juris)
  • Cestovná agentúra (Fedorová, Antoni)
  • Internetové kníh a CD-kupectvo (Dvorská)
  • Video a CD požičovňa (Ronďošová, Jakimová)
  • Autopredajca (Fáber, Schniederová)
  • PC Shop (Čup, Daxner)
  • Výrobcovia produktov (Miňo, Martiňák)

Teoretické cvičenia

Cvičenie 1 (28. 9. 2007)

Úvod k Jave. Triedy a objekty. Objekty majú stav (inštančné premenné) a chovanie (metódy).

Cvičenie 2 (5. 10. 2007)

Vytváranie inštancií. Čo sa deje na halde pri vytváraní objektu. Primitívne dátové typy a polia.

Cvičenie 3 (12. 10. 2007)

Metódy na menenie stavu (gettre a settre) a ich zdôvodnenie. Polia, zoznamy. Špeciálne metódy - toString(), equals(), hashCode().

Cvičenie 4 (27. 10. 2007)

Balíčky ako prostriedok na zmiernenie chaosu v triedach. Preťažené metódy. Konštruktory.

Cvičenie 5 (9. 11. 2007)

Dedičnosť a polymorfizmus na príklade orchestra.

Cvičenie 6 (16. 11. 2007)

Dedičnosť metód - podrobnosti a mechanizmy. Abstraktné triedy a abstraktné metódy. Dedičnosť inštančných premenných. Modifikátory viditeľnosti.

Cvičenie 7 (23. 11. 2007)

Dedenie konštruktorov. Pretypovanie.

Cvičenie 8 (30. 12. 2007)

Písomka

Cvičenie 9 (7. 12. 2007)

Viacnásobná dedičnosť - interfejsy:

Cvičenie 10 (15. 12. 2007)

Výnimky.

Statické metódy.

Praktické cvičenia

Cvičenie 1 (27. 9. 2007)

Domáca úloha (do 3. 10. 2007)

  1. Vyskúšajte si program Hello World.
  2. Vytvorte triedu Maximum, ktorej je možné zasielať postupne celé čísla. Objekt typu Maximum má vrátiť maximálne číslo, ktoré bolo doň vložené od chvíle vytvorenia jeho inštancie.
  3. Vytvorte triedu Palindrom s metódou, ktorá vie pre daný reťazec zistiť, či je to palindrom (teda reťazec, ktorý sa číta rovnako spredu i zozadu). Príklad: reťazec mordnilapejepalindrom.
  4. Vytvorte triedu OperacieSPoliami, ktorá bude reprezentovať prácu s poliami celých čísel:
    1. súčet dvoch polí celých čísel rovnakej dĺžky po zložkách

príklad: [2, 4, 5, 6] + [2, 3, 5, 2] = [4, 7, 10, 8]

2. rozdiel dvoch polí celých čísel rovnakej dĺžky po zložkách 

príklad: [2, 4, 5, 6] - [2, 3, 5, 2] = [0, 1, 0, 4]

3. zlepenie dvoch polí celých čísel  (konkatenácia)

príklad: [2, 4, 5, 6] zlep [2, 3, 5, 2] = [2, 4, 5, 6, 2, 3, 5, 2]

Cvičenie 2 a 3 (4. 10. 2007 a 10. 10. 2007)

Študenti sa každý rok zúčastňujú na Prírodovedeckých dňoch. Jednou z disciplín je súťaž v pití piva. Chceme vyrobiť informačný systém, ktorý bude evidovať koľko piva ktorý študent vypil a ktorý zo študentov vypil najviac piva. Súťaž v pití piva prebieha po kolách - každé kolo vypije každý učastník jedno pivo. Každý študent má však alkoholický strop (vypočítaný ako vek študenta + ročník - 15). Keď študent dosiahne alkoholický strop, nemôže v súťaži pokračovať (teda vypadáva).

Navrhnite vhodný objektový model a implementujte vhodné triedy, ktoré budú zodpovedať tomuto informačnému systému - teda budú simulovať súťaž.

Domáca úloha (do 16. 10. 2007)

  • navrhnite a implementujte triedu Student s vhodnými stavovými premennými
  • implementujte u študenta metódu dajStrop()
  • navrhnite a implementujte triedu Sutaz, ktorá eviduje súťažiacich a ich počet v poli
  • implementujte v súťaži metódu pridajSúťažiaceho
  • implementujte v súťaži metódu void vymazStarych(), ktorá zo zoznamu súťažiacich vyhodí štvrtákov a starších. (Môžete napr. použiť pomocné pole)

Cvičenie 4 (17. 10. 2007)

Momentálnym hitom je súťaž Slovensko hľadá SuperStar. Samotné vyraďovanie súťažiacich prebieha pomocou castingov (casting sa koná v jednom meste), kde ho vykonávajú porotcovia (maximálne traja na 1 casting).

Navrhnite vhodné triedy a metódy na pridanie súťažiaceho do castingu, na pridanie porotcu do castingu, pričom zabezpečte, aby casting mal naozaj najviac troch porotcov. Použite gettery a settery a privátne inštančné premenné.

Na všetkých triedach definujte metódu toString().

Cvičenie 5 (24. 10. 2007)

Porotca slúži v castingu na to, aby odfiltroval nevhodných súťažiacich. V skutočnej SuperStar existuju určite nejaké striktné kritéria na filtrovanie súťažiacich, my sa však obmedzíme na to, že každý porotca bude súťažiacich vyhadzovať náhodne. (Každý porotca pri vyhadzovaní súťažiaceho si vygeneruje náhodné číslo, ktoré určí, či súťažiaci prešiel alebo nie).

Dopracujte do porotcu metódu na vyhadzovanie súťažiacich. Dopracujte do castingu metódu, ktorá odfiltruje súťažiacich v danom castingu tak, že súťažiaci prejde postupne každým porotcom a pokiaľ ho schvália všetci porotcovia, ostáva v súťaží naďalej.

Skúste nahadzovať do castingu náhodný počet súťažiacich a simulovať chovanie porotcov.

Domáca úloha (do 7. 11. 2007)

  • naimplementujte metódu ArrayList<Sutaziaci> vyhoď(ArrayList<Sutaziaci>) na Porotcovi, ktorá odfiltruje zoznam súťažiacich na základe koeficientu náhodnosti.
  • vyrobte triedu PorotcaTester, kde bude sledované chovanie metódy vyhoď() na štyroch súťažiacich
  • naimplementujte metódu vyhoď() na Castingu, ktorá prefiltruje zoznam súťažiacich v castingu postupne cez viacerých porotcov. (Prvý porotca dostane zoznam, ten prefiltruje, výsledok získa druhý porotca atď). Zabezpečte, aby bola metóda pripravená na variabilný počet porotcov (napr. aj pre prípad, že porotca je len jeden).

Cvičenie 6 + 7 (8. 11. 2007 + 15. 11. 2007)

Firma Známosti s.r.o. chce vytvoriť systém pre vyhľadávanie optimálnych partnerských dvojíc. Kandidáti, ktorí sa chcú registrovať v systéme, musia poskytnúť meno, vek, pohlavie a záľuby.

Navrhnite a implementujte metódy pre registráciu človeka v systéme a vyhľadávanie optimálneho partnera pre daného človeka. Zvážte použitie viacparametrových konštruktorov, a preťažených metód.

Domáca úloha (do 28. 11. 2007)

Implementujte kompletný informačný systém. Odporúčaná stratégia na vyhľadávanie partnerov je nasledovná: každému z partnerov v systéme priradíme bodové ohodnotenie. Za kompatibilné pohlavie priradíme 3 body, za kompatibilný vek (najviac o tri roky starší a najviac o tri roky mladší) 1 bod a za spoločné záľuby (aspoň dve spoločné záľuby) 2 body.

Cvičenie 8 + 9 (22 + 29. 11. 2007)

V rovine sa nachádzajú geometrické útvary - štvorce, obdĺžniky a kružnice. Nájdite dva najvzdialenejšie útvary, pričom vzdialenosť rátame ako vzdialenosť ťažísk. Údaje o útvaroch načítavajte do roviny zo súboru.

Použitie triedy java.io.Scanner je na samostatnej stránke.

Cvičenie 10 (6. 12. 2007)

Do roviny pridáme nový geometrický útvar - bod. Navyše, pre ostatné geometrické útvary dodáme možnosť zafarbiť sa a vyrátať svoj obsah.

Doimplementujte príslušné metódy a zabezpečte, aby rovina vedela zistiť súčet obsahov všetkých svojich útvarov. (Pre jednoduchosť predpokladáme, že útvary sa neprekrývajú).

Cvičenie 11 (13. 12. 2007)

Dopracujte interface, ktorý reprezentuje zafarbiteľný útvar. Zabezpečte, aby štvorce a kruhy boli zafarbiteľné nejakou farbou. Do roviny dopracujte metódu, ktorá zráta obsah zafarbiteľných útvarov.

Vytvorte triedu, ktorá načíta zo súboru dáta o útvaroch a vráti ich ako zoznam geometrických útvarov. Odchytávajte korektne vyhodené výnimky.

Cvičenie 12 (20. 12. 2007)

Zabezpečte, aby metóda pre načítavanie útvarov hádzala výnimku ChybaPriNačítavaníException. Táto výnimka nech má konštruktory zdedené od triedy Exception.

Táto výnimka nech sa hádže aj pri nekorektných alebo chýbajúcich dátach k útvaru.

Domáca úloha

Zašlite hotový projekt s geometrickýcmi útvarmi z predošlých cvičení.

Praktické cvičenia (pondelok)

Cvičenie 5 (29. 10. 2007)

Momentálnym hitom je súťaž Slovensko hľadá SuperStar. Samotné vyraďovanie súťažiacich prebieha pomocou castingov (casting sa koná v jednom meste), kde ho vykonávajú porotcovia (maximálne traja na 1 casting).

Navrhnite vhodné triedy a metódy na pridanie súťažiaceho do castingu, na pridanie porotcu do castingu, pričom zabezpečte, aby casting mal naozaj najviac troch porotcov. Použite gettery a settery a privátne inštančné premenné. Na všetkých triedach definujte metódu toString().

Porotca slúži v castingu na to, aby odfiltroval nevhodných súťažiacich. V skutočnej SuperStar existuju určite nejaké striktné kritéria na filtrovanie súťažiacich, my sa však obmedzíme na to, že každý porotca bude súťažiacich vyhadzovať náhodne. (Každý porotca pri vyhadzovaní súťažiaceho si vygeneruje náhodné číslo, ktoré určí, či súťažiaci prešiel alebo nie).

Dopracujte do porotcu metódu na vyhadzovanie súťažiacich. Dopracujte do castingu metódu, ktorá odfiltruje súťažiacich v danom castingu tak, že súťažiaci prejde postupne každým porotcom a pokiaľ ho schvália všetci porotcovia, ostáva v súťaží naďalej.

Skúste nahadzovať do castingu náhodný počet súťažiacich a simulovať chovanie porotcov. Údaje o súťažiacich (meno a vek) načítavajte zo súboru, údaje o porotcoch (meno a koeficient náhodnosti) z iného súboru.

Triedy nech prináležia nejakému balíčku so zmysluplným názvom.

Cvičenie 6, 7 (5. 11 + 12. 11. 2007)

V rovine sa nachádzájú rôzne geometrické útvary - štvorce, trojuholníky a kruhy. Navrhnite a implementujte triedy a metódy, ktoré umožnia spočítať obsah všetkých útvarov nachádzajúcich sa v rovine.

Poznámky

  • štvorec je charakterizovaný súradnicami jedného z rohov a dĺžkou strany
  • kruh je charakterizovaný súradnicou stredu a polomerom
  • trojuholník je charakterizovaný súradnicami jeho troch vrcholov
  • pre jednoduchosť predpokladáme, že útvary sa neprekrývajú

Domáca úloha: Navrhnite a implementuje triedy riešiace danú úlohu. Načítavajte objekty geometrických útvarov zo súboru a pridávajte ich do roviny. Zvoľte si vhodnú reprezentáciu objektov v súbore, odporúčaná je nasledovná:

  • každý útvar je na samostatnom riadku
  • útvar je špecifikovaný usporiadanou n-ticou. Prvá zložka udáva typ útvaru, a zvyšné údaje týkajúce sa koordinátov.
    • Príklad štvorca: 1;2;5;4 (1 = štvorec, [2, 5] = súradnice stredu, 4 = dĺžka strany
    • Príklad trojuholníka: 2;2;5;3;7;2;2 (ľ = štvorec, [2, 5] = súradnice prvého vrchola, [3,7] = súradnice druhého vrchola, [2,2] = súradnice tretieho vrchola) Použite java.uil.Scanner a metódu String#split().

Cvičenie 7 + 8 (21. 11 + 26. 11. 2007)

Firma Prachy s.r.o. chce zarobiť na kurzových machináciách s použitím internetu. Ich cieľom je prejsť kurzové lístky viacerých bánk a zisťovať pre každú menu najvýhodnejší kurz pre predaj a nákup devíz.

Vytvorte informačný systém, ktorý obíde kurzové lístky bánk a zistí pre každú z mien najnižšiu cenu pre predaj a najvyššiu cenu pre nákup valút. Kurzové lístky sa môžu nachádzať buď na Internete alebo môžu byť načítané zo súboru.

Príkladom kurzového lístka je Národná banka, http://www.nbs.sk/KL/EXKL/AKT_EXKL.XML

Funkčné požiadavky:

  • Systém musí podporovať pridanie kurzového lístka (buď z internetovej adresy alebo zo súboru)
  • Systém musí vyhadzovať rozumné výnimky

Vytvorte triedy KurzovýLístok, Mena, Banka, Systém. V triede Systém vytvorte metódy načítaj(Banka banka, File file) a načítaj(Banka banka, URL adresa), ktorými načítate údaje o kurzovom lístku pre danú banku zo súboru, resp. z URL adresy. Metódy nech hádžu výnimku KurzovýLístokException.

Cvičenie 9 (10. 12. 2007)

Vytvorte pomocnú triedu, ktorá bude vedieť spracovávať kurzový lístok vo formáte Národnej banky (http://www.nbs.sk/KL/EXKL/AKT_EXKL.XML). Vytvorte metódy, ktoré načítajú z kurzového lístka

  • dátum platnosti ako reťazec
  • dátum platnosti ako trojicu celých čísel (deň, mesiac a rok)
  • výmenný kurz (z elementu <value>) pre daný textový názov krajiny. Pre vstup Albánsko je výstupom 27.347).

Užitočné metódy triedy String

  • int indexOf(String s): vráti index prvého výskytu podreťazca s v danom reťazci. Ak sa daný podreťazec v reťazci nevyskytuje, vráti -1.
	"janko komár".indexOf("ko")

Výsledkom je 3 (prvýkrát sa ko vyskytuje od štvrtého znaku, teda od tretieho indexu)

  • String substring(int počIndex, int koncIndex): vráti podreťazec medzi počiatočným indexom a koncovým indexom.
"hamburger".substring(4, 8)

vráti urge.

  • char charAt(int index): vráti znak na danej pozícii.
char znak = "hamburger".charAt(3);

vráti znak b.

  • int length(): vráti dĺžku reťazca
int dlzka = "hamburger".length()

Výsledkom je 9.

  • boolean startsWith(String prefix): zistí, či sa reťazec začína daným podreťazcom.
boolean b = "myšlienka".startsWith("myš");

vráti true.

Cvičenie 10 (17. 12. 2007)

V rovine sa nachádzajú geometrické útvary – štvorce, obdĺžniky a kružnice.

  • Nájdite dva najvzdialenejšie útvary, pričom vzdialenosť rátame ako vzdialenosť ťažísk. Údaje o útvaroch načítavajte do roviny zo súboru. Použitie triedy java.io.Scanner je na samostatnej stránke.
  • Zabezpečte, aby rovina vedela zistiť súčet obsahov všetkých svojich útvarov. (Pre jednoduchosť predpokladáme, že útvary sa neprekrývajú).

Dopracujte interface, ktorý reprezentuje zafarbiteľný útvar. Zabezpečte, aby štvorce a kruhy boli zafarbiteľné nejakou farbou. Do roviny dopracujte metódu, ktorá zráta obsah zafarbiteľných útvarov.

Vytvorte triedu, ktorá načíta zo súboru dáta o útvaroch a vráti ich ako zoznam geometrických útvarov. Odchytávajte korektne vyhodené výnimky.

Domáca úloha

Zašlite hotový projekt s geometrickýcmi útvarmi z predošlých cvičení.

Konvencia o zasielaní domácich úloh

Domáce úlohy je potrebné zasielať na e-mail cvičiaceho skomprimované v archíve ZIP. Archív musí mať názov typu priezviskoPoradovéČísloTýždňa.zip a musí obsahovať zdrojové (.java) súbory. Skompilované (.class) súbory nie je potrebné prikladať.

Príklad: zadanie pre siedmy týždeň semestra zaslané študentom Mrkvičkom: mrkvicka7.zip.

V predmete (subject-e) mailu uveďte text DU PAZ1c.

Domáce úlohy nespĺňajúce mennú konvenciu nebudú akceptované.

Odkazy

Syntaktické rozdiely medzi Pascalom a Javou

Jednoduchý program Ahoj svet

program AhojSvet;
begin
  writeln('Ahoj svet');
end.
public class AhojSvet
  public static void main(String[] args) {
    System.out.println("Ahoj svet");
  }
}

for cyklus

program DU;
  var i:integer;
begin
  for i:=1 to 20 do begin
    writeln('Budem si pisat domace ulohy');
  end;
end.
public class AhojSvet
  public static void main(String[] args) {
    for(int i = 0; i < 20; i++) {
      System.out.println("Budem si pisat domace ulohy");
    }
  }
}

Podmienky

if (a = 25 or b < 25) and (a > b) then begin
  writeln('Podmienka splnena');
end 
else begin
  writeln('Podmienka nesplnena');
end;
if( (a == 25 || b < 25) && (a > b)) {
  System.out.println("Podmienka splnena");
} else {
  System.out.println("Podmienka nesplnena");
}

Cyklus while

a := 25;
while a >= 0 do begin
  writeln(a);
  a := a - 1;
end;
int a = 25;
while(a > 0) {
  System.out.println(a);
  a--;
}

Procedurálne programovanie

program rovnica;

function diskriminant(a,b,c:integer):integer;
begin
  diskriminant := (b * b) - (4 * a * c);
end;

procedure korene(a,b,c:integer);
  var d:integer;
begin
  d:=diskriminant(a,b,c);
  writeln( (-b + sqrt(d)) / (2 * a) );
  writeln( (-b - sqrt(d)) / (2 * a) );
end;

begin
  korene(2, 15, 5);
end.
public class Rovnica {
  public static int diskriminant(int a, int b, int c) {
    return (b * b) - (4 * a * c);
  }

  public static void korene(int a, int b, int c) {
    int d = diskriminant(a, b, c);
    System.out.println( (-b + Math.sqrt(d)) / (2 * a) );
    System.out.println( (-b - Math.sqrt(d)) / (2 * a) );
  }

  public static void main(String[] args) {
    korene(2, 15, 5);
  }
}

Písomka

Vágny príklad

Firma Vox Populi si chce nechať vytvoriť informačný systém pre prieskum verejnej mienky založený na hlasovaní. Každý prieskum verejnej mienky obsahuje otázku a množinu odpovedí; účastník hlasovania potom následne odpovedá na otázku zvolením jednej z možných odpovedí.

Príkladom prieskumu verejnej mienky môže byť otázka: Myslíte si, že SuperStar je zmanipulovaná? s možnými odpoveďami:

  • áno, určite
  • čiastočne, niekedy mám pocit, že na vypadávajúcom sa dohodli
  • nie, veď je to pod dozorom notára
  • nerozmýšľal(a) som o tom

Samotné hlasovanie môže prebiehať viacerými formami (SMSkou, mailom, faxom, pohľadnicou atď.) a je neanonymné: pre každý hlas chceme mať identifikáciu odosielateľa.

Firma Vox Populi chce pre daný prieskum zisťovať rôzne štatistiky: koľko ľudí sa zúčastnilo, koľko hlasov prišlo pre danú možnosť a pod. Navrhnite pre tento informačný systém triedy, uveďte a slovne popíšte ich inštančné premenné a metódy. Zvážte a odôvodnite použitie dedičnosti (ak si myslíte, že dedičnosť je potrebná, slovne to zdôvodnite; ak si myslíte, že potrebná nie je, zdôvodnite to tiež).

Implementujte metódu (t. j. napíšte kód v programovacom jazyku), ktorá zistí počet účastníkov hlasujúcich cez SMS. Uveďte aj triedu a relevantné inštačné premenné (v prípade, že ich metóda používa). Inak povedané, napíšte fragment triedy a úplnú implementáciu uvedenej metódy.

Naimplementujte tester (t. j. napíšte kód v programovacom jazyku) s metódou main(), v ktorej ukážete príklady použitia vami navrhnutého informačného systému a tried (predpokladajte, že všetky metódy všetkých tried už máte implementované). V testeri ukážte použitie minimálne 5 metód používaných v triedach informačného systému.

Oprava kódu

Programátor Jozef ťahá v práci už dva týždne šestnásťhodinové nadčasy, čo sa neblaho prejavuje na kvalite kódu, ktorý produkuje. Nižšie je uvedená trieda Kniha, ktorú napísal v noci o pol tretej. Opravte po ňom všetky syntaktické a logické chyby, ktoré nájdete v jeho kóde.

Ak vidíte akékoľvek priestor na vylepšenie, uveďte ho.

Testové otázky

  1. Majme riadok
int[] x = new int[25];

Ktoré z tvrdení budú platiť po vykonaní tohto riadku?

A. x[24] je 0

B. x[24] je nedefinovaná

C. x[25] je 0

D. x[0] je null

E. x.length je rovné 25

  1. Majme triedu
public class Trieda {
  float rátaj(float a, float b) { }
  // sem príde metóda
}

Ktorá z nasledovných metód by môže byť uvedená v triede namiesto komentára a prečo? A. int rátaj(int a, int b)

B. float rátaj(float a, float b)

C. float rátaj(float c, float d)

D. float rátaj(int a, int b, int c)

  1. Majme nasledovné triedy (každá v samostatnom súbore):
public class Rodič {
  public void metóda(int i) {
    System.out.print("Rodič "
      + i);
  }
}
public class Dedič extends Rodič {
  public void metóda(int j) {
    System.out.print("Dedič " + j);
  }
  public void metóda(String s) {
    System.out.print("Mám " + s);
  }
  public static void main(
    String args[]) {
    Rodič b1 = new Rodič()
    Rodič b2 = new Dedič();
    b1.metóda(5);
    b2.metóda(6);
  }
}

Aký výsledok sa vypíše po spustení metódy main() v triede Dedič?

A. Rodič 5Rodič 6

B. Dedič 5Dedič 6

C. Dedič 5Rodič 6

D. Rodič 5Dedič 6

E. Mám 5Mám 6

  1. Majme nasledovnú triedu
public class Test extends Rodič {
  public Test(int j) {   }
  public Test(int j, int k) { 
    super(j, k);
  }
}

pričom Rodič je trieda z predošlého príkladu. Ktoré z uvedených konštrukcií je možné použiť na vytvorenie inštancie triedy Test?

A. Test t = new Test();

B. Test t = new Test(1);

C. Test t = new Test(1, 2);

D. Test t = new Test(1, 2, 3);

  1. Čo sa stane pri pokuse o kompiláciu nasledovných tried a po spustení triedy Zebra?

A. Trieda Zviera sa neskompiluje kvôli chybe.

B. Trieda Zebra sa neskompiluje kvôli chybe.

C. Všetko sa skompiluje správne. Po zavolaní konštruktora triedy Zviera sa vypíše chybové hlásenie.

D. Všetko sa skompiluje správne. Po zavolaní konštruktora triedy Zebra sa vypíše chybové hlásenie.

E. Všetko sa skompiluje správne a spustí sa správne.

class Zviera {
  float váha;
  Zviera(float váha) {
    this.váha = váha;
  }
}
class Zebra extends Zviera {
  public static
  void main(String[] args) {
    Zviera a = new Zviera(222.2f);
    Zebra z = new Zebra();
  }
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK