OOP: Java 8.Gy: Gyakorlás

Hasonló dokumentumok
7. K: JAVA alapok Konzultáció

OOP: Java 8.Gy: Abstract osztályok, interfészek

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

4. Gy: JAVA osztályok

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

BME MOGI Gépészeti informatika 8.

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 7.Gy: Öröklődés, referenciák

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

OOP: Java 4.Gy: Java osztályok

Objektum Orientált Programozás. 6. JAVA öröklődés 30/1B IT MAN

Szoftvertechnolo gia gyakorlat

OOP: Java 5.Gy: Osztály, referencia, konstruktor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

BME MOGI Gépészeti informatika 7.

OOP: Java 1.Gy: Java alapok

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Abstract osztályok és interface-ek. 7-dik gyakorlat

BME MOGI Gépészeti informatika 4.

Java Programozás 11. Ea: MVC modell

Osztályok. 4. gyakorlat

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Kalapácsvetés 2016 szöveges

Programozási technológia

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Java programozási nyelv 6. rész Java a gyakorlatban

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java programozási nyelv 5. rész Osztályok III.

Programozás I. Első ZH segédlet

Java és web programozás

Torna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

BME MOGI Gépészeti informatika 5.

BME MOGI Gépészeti informatika 1.

Programozási nyelvek Java

OOP: Java 1.Gy: Java alapok

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

hiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

BME MOGI Gépészeti informatika 13.

A képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!

3. Osztályok II. Programozás II

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Java Programozás 3. Gy: Java GUI. Swing, AWT

JAVA PROGRAMOZÁS 2.ELŐADÁS

Felhasználó által definiált adattípus

4. Öröklődés. Programozás II

INFORMATIKAI ALAPISMERETEK

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

RESIDENT EVIL CODENAME: NIK

Programozási nyelvek II.: JAVA

Programozási nyelvek II.: JAVA, 3. gyakorlat

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Programozás I ZH, Név:... A. csoport EHA: pont Gyakorlatvezető:...

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

BME MOGI Gépészeti informatika 6.

Programozási nyelvek Java

OOP #14 (referencia-elv)

Java Programozás 3. Ea: Java osztályok. OOP alapalapok

Java programozási nyelv 4. rész Osztályok II.

Java Programozás 5. Ea: OOP alapok. Abstract Javaságok

Öröklés és Polimorfizmus

Java és web programozás

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA

Algoritmusok és adatszerkezetek II.

Programozás II gyakorlat. 4. Öröklődés

Elemi Alkalmazások Fejlesztése II.

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Objektumorientált programozás C# nyelven

Programozás I. Szöveges fájlok kezelése Felsorolástípus Objektumtömb Gyakorló feladatok

Osztályok, objektumok

INFORMATIKAI ALAPISMERETEK

Segédanyag: Java alkalmazások gyakorlat

C# osztályok. Krizsán Zoltán

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Vizuális programozás Komplex számok

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

Programozási nyelvek II.: JAVA

500. CC Megoldó Alfréd CC 500.

Programozási nyelvek és módszerek Java Thread-ek

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

#include <iostream> using namespace std; // struct macska is lehetne class macska { public: int kor; int suly; }; void main() { macska cirmi;

Átírás:

OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10

43/2

Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét (szöveg) és korát (egész érték) Készítsen konstruktort, mely a név és a kor segítségével inicializál egy példányt Készítsen getter és setter metódusokat Készítsen egy Megfelelo nevű metódust, melynek működési módja egyelőre nem ismert. Definiálja felül az osztály tostring metódusát, mely a következő alakban adja vissza az adatokat: Név: Éva, Kor: 57 43/3

Szemely osztály public abstract class Szemely { private String nev; private int kor; public Szemely(String nev, int kor){ this.nev = nev; this.kor = kor; public abstract boolean Megfelelo(); public String tostring(){ return "Név: "+nev+", Kor: "+kor; 43/4

Szemely osztály public String getnev() { return nev; public void setnev(string nev) { this.nev = nev; public int getkor() { return kor; public void setkor(int kor) { this.kor = kor; 43/5

Egy régebbi beszámoló anyaga A 2. Feladat: Készítse el a Jelentkezo nevű osztályt, a Szemely osztály leszármazottjaként Az osztály tárolja a jelentkező intelligencia hányadosát (egész) és igényelt fizetését (egész) Legyen az osztálynak olyan konstruktora, mely a név és a kor segítségével inicializál egy példányt Készítse el az intelligencia hányados (iq), és a fizetés beállításához és kiolvasásához szükséges metódusokat Készítse el a Megfelelo metódust, mely: ha a személy nincs még 40 éves, és az iq-ja nagyobb 110-nél, és a fizetési igénye kevesebb 400.000-nél akkor igaz, egyébként hamis értékkel térjen vissza Definiálja felül a tostring metódust, mely a következő formában adja vissza egy jelentkező adatait (A Megfelelo tulajdonság Igen vagy Nem szöveggel legyen visszaadva!): Név: Éva, Kor: 57, Iq: 138, Fizetés: 360000, Megfelelő: Nem 43/6

Jelentkezo osztály public class Jelentkezo extends Szemely { private int iq; private int fizetes; public Jelentkezo(String nev, int kor){ super(nev, kor); public void setiq(int iq){ this.iq = iq; public void setfizetes(int fizetes){ this.fizetes = fizetes; public int getiq(){ return iq; 43/7

Jelentkezo osztály public int getfizetes(){ return fizetes; public boolean Megfelelo(){ if (super.getkor() > 40 && iq > 110 && fizetes < 400000) return true; else return false; public String tostring(){ String mf="nem"; if (Megfelelo()) mf="igen"; return super.tostring()+", Iq: "+iq+", Fizetés: "+ fizetes+", Megfelelő: "+mf; 43/8

Egy régebbi beszámoló anyaga 3. Feladat: Készítsen egy FelvetelProgram nevű futtatható osztályt Olvassa be billentyűzetről a jelentkezők számát, és készítsen egy ilyen elemszámú, Jelentkezo típusú tömböt Töltse fel a tömböt, a nevet billentyűzetről olvassa be, a kor 18 és 60 közötti véletlen szám legyen Állítsa be az iq-t véletlenszerűen generált adatokkal, melyek 80 és 140 között lehetnek Állítsa be az igényelt fizetést véletlenszerűen generált adatokkal, melyek 200000 és 500000 között lehetnek, 10000-es lépésközzel (200000, 210000, 220000, 230000, 500000) Írassa ki minden jelentkező adatait és minősítését a képernyőre Határozza meg, és írassa ki, hogy hány jelentkező megfelelő! 43/9

Egy régebbi beszámoló anyaga Futtatási minta: Jelentkezők száma: 5 A jelentkező neve: Éva A jelentkező neve: Dezső A jelentkező neve: Béla A jelentkező neve: Zoli A jelentkező neve: Judit Név: Éva, Kor: 57, Iq: 138, Fizetés: 360000, Megfelelő: Nem Név: Dezső, Kor: 34, Iq: 124, Fizetés: 240000, Megfelelő: Igen Név: Béla, Kor: 57, Iq: 130, Fizetés: 480000, Megfelelő: Nem Név: Zoli, Kor: 35, Iq: 124, Fizetés: 430000, Megfelelő: Nem Név: Judit, Kor: 37, Iq: 86, Fizetés: 400000, Megfelelő: Nem 1 jelentkező megfelelő. 43/10

FelvetelProgram osztály import java.util.scanner; public class FelvetelProgram { public static void main(string[ ] args) { Scanner sc = new Scanner(System.in); String s1; int db, kor, iq, fiz; System.out.println("Jelentkezők száma: "); s1 = sc.nextline(); db = Integer.parseInt(s1); Jelentkezo [] jel = new Jelentkezo[db]; 43/11

FelvetelProgram osztály for (int i=0; i<db; i++){ System.out.println("A jelentkező neve: "); s1 = sc.nextline(); kor = 18 + (int)(math.random()*43); jel[i] = new Jelentkezo(s1, kor); iq = 80 + (int)(math.random()*61); fiz = 200000 + 10000*(int)(Math.random()*31); jel[i].setiq(iq); jel[i].setfizetes(fiz); for (int i=0; i<db; i++) System.out.println(jel[i]); int mdb = 0; for (int i=0; i<db; i++) if (jel[i].megfelelo()) mdb++; System.out.println(mdb+" jelentkező megfelelő."); 43/12

Konzol Jelentkezők száma: 5 A jelentkező neve: a A jelentkező neve: b A jelentkező neve: c A jelentkező neve: d A jelentkező neve: e Név: a, Kor: 40, Iq: 94, Fizetés: 460000, Megfelelő: Nem Név: b, Kor: 28, Iq: 118, Fizetés: 290000, Megfelelő: Igen Név: c, Kor: 38, Iq: 110, Fizetés: 290000, Megfelelő: Nem Név: d, Kor: 48, Iq: 106, Fizetés: 430000, Megfelelő: Nem Név: e, Kor: 34, Iq: 87, Fizetés: 350000, Megfelelő: Nem 1 jelentkező megfelelő. 43/13

43/14

Gyakorló példa a számonkérésre 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét (szöveg) és Neptun kódját (szöveg) Készítsen konstruktort, mely a név és a kód alapján inicializál egy példányt Legyen az osztálynak a nevet visszaadó metódusa Alkosson olyan törzs nélküli metódust, mellyel egész értékként kiszámítja a Juttatás-t. 43/15

Szemely osztály, adattagok: név, neptunkód Konstruktor (név, neptunkód). Metódusok: getnev, Juttatás public abstract class Szemely { private String Nev; private String Neptunkod; public Szemely (String Nev, String Kod){ this.nev = Nev; Neptunkod = Kod; public String getnev(){ return Nev; public abstract int Juttatas(); 43/16

Gyakorló példa a számonkérésre 2. Feladat: Készítse el a Hallgato nevű osztályt, a Szemely osztály leszármazottjaként Az osztály tárolja a Hallgató féléves jegyeit egy egész típusú tömbbe, és legyen egy Ösztöndíjat tároló adattagja is. Az osztályhoz tartozzon egy konstans, mely az ösztöndíj számítás ALAPértékét jelentse, értéke legyen 10000. Készítsen egy, a jegyek számát beállító metódust Készítsen egy metódust, egy konkrét (valahányadik) jegy beírására Alkosson metódust az ösztöndíj beállítására Készítsen egy Átlag metódust, mely a jegyek átlagát adja vissza A Juttatás metódus adja vissza egy hallgató juttatását, mely ha az átlag legalább hármas, akkor az átlag és az alap szorzata, egyébként nulla. Az osztály tostring metódusa a következő formában adjon vissza adatot: Név: Géza, Átlag: 3.1, Ösztöndíj: 31000 Készítsen egy jegykiír nevű metódust, mely kiírja egy hallgató nevét és összes jegyét a következő formában: Géza 0. jegye: 5 Géza 1. jegye: 5 Géza 2. jegye: 2 43/17 Géza 3. jegye: 3...

Hallgato osztály, szülő: Szemely, adattagok: jegyek[ ], Ösztöndíj Konstruktor (név, neptunkód). Metódusok: setjegyek, JegyBeír, setösztöndíj, Átlag, Juttatás, tostring, jegykiír public class Hallgato extends Szemely { private int [ ] jegyek; private int Osztondij; final static int ALAP = 10000; public Hallgato (String Nev, String Kod){ super(nev, Kod); public void setjegyek(int j){ jegyek = new int[j]; public void JegyBeir(int i, int jegy){ jegyek[i] = jegy; public void setosztondij(int od){ Osztondij = od; 43/18

Hallgato osztály, szülő: Szemely, adattagok: jegyek[ ], Ösztöndíj Konstruktor (név, neptunkód). Metódusok: setjegyek, JegyBeír, setösztöndíj, Átlag, Juttatás, tostring, jegykiír 43/19 public double Atlag(){ double atlag = 0d; for (int i=0; i<10; i++) atlag += jegyek[i]; return atlag/10d; public int Juttatas(){ if (Atlag() >= 3) return (int)(atlag()*alap); else return 0; public String tostring(){ return "Név: "+getnev()+", Átlag: "+Atlag()+ ", Ösztöndíj: "+Osztondij; public void jegykiir(){ for (int i=0; i<10; i++) System.out.println(getNev()+ " "+i+". jegye: "+jegyek[i]);

Gyakorló példa a számonkérésre 3. Feladat: Készítsen egy HallgatoProgram nevű futtatható osztályt Készítsen egy 5 elemű tömböt hallgatók adatainak tárolására Olvasson be a billentyűzetről a hallgatók nevét és kódját, és az adatokkal inicializálja a hallgatók adatait Állítsa be a jegyek számát 10-re, és minden hallgatóhoz generáljon véletlenszerűen az (1-5) tartományban jegyeket Állítsa be minden hallgatónál az ösztöndíjat, melyet a Juttatás metódussal határozzon meg Írassa ki minden Hallgató adatait a képernyőre Írassa ki az utolsó hallgató jegyeit a képernyőre 43/20

Gyakorló példa a számonkérésre Futtatási minta: A hallgató neve: Jenő A hallgató kódja: ab45bb A hallgató neve: Béla A hallgató kódja: 3mz675 A hallgató neve: Éva A hallgató kódja: cc98vv A hallgató neve: Zoli A hallgató kódja: zxa3e4 A hallgató neve: Géza A hallgató kódja: wxyc78 Név: Jenő, Átlag: 3.5, Ösztöndíj: 35000 Név: Béla, Átlag: 4.0, Ösztöndíj: 40000 Név: Éva, Átlag: 2.5, Ösztöndíj: 0 Név: Zoli, Átlag: 2.6, Ösztöndíj: 0 Név: Géza, Átlag: 3.1, Ösztöndíj: 31000 Géza 0. jegye: 5 Géza 1. jegye: 5 Géza 2. jegye: 2 Géza 3. jegye: 3 Géza 4. jegye: 5 Géza 5. jegye: 1 Géza 6. jegye: 3 Géza 7. jegye: 4 Géza 8. jegye: 1 Géza 9. jegye: 2 43/21

HallgatoProgram futtatható osztály 5 hallgató beolvasása tömbbe, 10 jegy generálása hallgatónként, ösztöndíj számítása, hallgatók adatainak kiírása, utolsó hallgató jegyeinek kiírása import java.util.scanner; public class HallgatoProgram { public static void main(string[ ] args) { Scanner sc = new Scanner(System.in); Hallgato [] h = new Hallgato[5]; String s1, s2; for (int i=0; i<5; i++){ System.out.println("A hallgató neve: "); s1 = sc.nextline(); System.out.println("A hallgató kódja: "); s2 = sc.nextline(); h[i]= new Hallgato(s1, s2); h[i].setjegyek(10); for (int j=0; j<10; j++){ h[i].jegybeir(j, 1+(int)(Math.random()*5)); h[i].setosztondij(h[i].juttatas()); 43/22

HallgatoProgram futtatható osztály 5 hallgató beolvasása tömbbe, 10 jegy generálása hallgatónként ösztöndíj számítása, hallgatók adatainak kiírása, utolsó hallgató jegyeinek kiírása for (int i=0; i<5; i++) System.out.println(h[i]); h[4].jegykiir(); 43/23

43/24

Értelmezzük a kódot! public interface IPenzugy { int getfizetes(); void setfizetes(int befiz); Interface: abstract metódusok gyűjteménye A metódusoknak lehet bemenő paramétere! public interface IFeladat { String getfeladat(); void setfeladat(string feladat); public class Alkalmazott implements IFeladat, IPenzugy {... Ha egy osztály implementál egy interface-t, akkor minden metódusát implementálni kell! Hány metódusa lesz? 43/25

Értelmezzük a kódot! public class Alkalmazott implements IFeladat, IPenzugy { private String nev; private String beosztas; private String feladat; private int fizetes; public Alkalmazott(String nev, String beosztas){ this.nev = nev; this.beosztas = beosztas; public int getfizetes(){ return fizetes; public void setfizetes(int befiz){ fizetes = befiz; public interface IPenzugy { int getfizetes(); void setfizetes(int befiz); 43/26

Értelmezzük a kódot! public String getfeladat(){ return feladat; public interface IFeladat { String getfeladat(); void setfeladat(string feladat); public void setfeladat(string befelad){ feladat = befelad; public String tostring(){ return nev+" "+beosztas; Józsi teremőr 43/27

Értelmezzük a kódot! Olyan példányt kell kapnia, ami import java.util.scanner; megvalósítja az IFeladat interfészt! public class MiniMelosProgram { static Scanner sc = new Scanner(System.in); public static void Fonok(IFeladat ifa){ Csak a feladatot kezelheti! System.out.println(ifa+"\n"); System.out.println("Jelenlegi feladat: "+ifa.getfeladat()+"\n"); System.out.println("Új feladat? : "); String fel = sc.nextline(); ifa.setfeladat(fel); public static void Penzugyes(IPenzugy ipu){ Csak a fizetést kezelheti! System.out.println(ipu+"\n"); System.out.println("Jelenlegi fizetés: "+ipu.getfizetes()+"\n"); System.out.println("Új fizetes? : "); String fbe = sc.nextline(); int fiz = Integer.parseInt(fbe); ipu.setfizetes(fiz); 43/28

Értelmezzük a kódot! public static void main(string[ ] args) { Alkalmazott melos = new Alkalmazott("Jenő","mindenes"); Fonok(melos); Penzugyes(melos); System.out.println(melos.toString()+ "-"+melos.getfeladat()+"-"+melos.getfizetes()); Konzol 43/29 Jenő mindenes Jelenlegi feladat: null Új feladat? : takarítás Jenő mindenes Jelenlegi fizetés: 0 Új fizetes? : 20000 Jenő mindenes-takarítás-20000

43/30

Gyakorló példa a számonkérésre 1. Feladat: Készítsen egy Alkoholos nevű interfészt, benne egy mennyialkoholttartalmaz nevű valós eredményt visszaadó metódust 2. Feladat: Készítsen egy Ital nevű osztályt, legyen az adattagja az ital neve Készítsen a névvel inicializáló konstruktort Készítsen getnév metódust Alkosson olyan törzs nélküli metódust, mellyel szövegként visszaadja azt, hogy mibőlkészült az ital Alkosson olyan törzs nélküli metódust, mellyel szövegként visszaadja azt, hogy milyenízű az ital 43/31

Alkoholos interfész, mennyialkoholttartalmaz metódus File\New\Interface public interface Alkoholos { public double mennyialkoholttartalmaz(); 43/32

Ital osztály, név adattag, konstruktor, getnév metódus, törzsnélküli mibőlkészült és milyenízű metódusok public abstract class Ital { private String nev; public Ital(String nev) { this.nev = nev; public String getnev(){ return nev; public abstract String mibolkeszult(); public abstract String milyenizu(); 43/33

Gyakorló példa a számonkérésre 3. Feladat: Készítse el a Gyümölcslé nevű osztályt, az Ital osztály leszármazottjaként Az osztály adattagként tárolja az alapanyag-ot, és a gyümölcslé ízét Legyen az osztálynak olyan konstruktora, mely a három adattag értékével inicializás (név, alapanyag, íz) Valósítsa meg a szükséges metódusokat Az osztály tostring metódusa a következő formában adjon vissza adatot: Hohes C: nem alkoholos, citrom alapú ital 43/34

Gyümölcslé osztály, szülő: Ital, adattagok: alapanyag, íz Konstruktor (név, alapanyag, íz). Metódusok: milyenízű, mibőlkészült tostring: Sió barack: nem alkoholos, barack alapú ital public class Gyumolcsle extends Ital { private String alapanyag; private String iz; public Gyumolcsle(String nev, String alap, String iz) { super(nev); alapanyag = alap; this.iz = iz; public String milyenizu() { return iz; public String mibolkeszult(){ return alapanyag; public String tostring() { return getnev()+": nem alkoholos, "+alapanyag+" alapú ital"; 43/35

Gyakorló példa a számonkérésre 4. Feladat: Készítse el a AlkoholosItal nevű osztályt, az Ital osztály leszármazottjaként, melyben megvalósítja az Alkoholos interfészt Az osztály adattagként tárolja az alapanyag-ot, és a gyümölcslé ízét, és az alkoholtartalmat (0-1 közötti valós szám) Legyen az osztálynak olyan konstruktora, mely a négy adattag értékével inicializás (név, alapanyag, íz, alkohol) Valósítsa meg a szükséges metódusokat Az osztály tostring metódusa a következő formában adjon vissza adatot: Pálinka: 40.0% alkohol tartalmú ital 43/36

AlkoholosItal osztály, szülő: Ital, implementálja az Alkoholos interfészt adattagok: alapanyag, íz, alkohol. Konstruktor (név, alapanyag, íz, alkohol). Metódusok: milyenízű, mibőlkészült tostring: Pálinka: 40.0% alkohol tartalmú ital public class AlkoholosItal extends Ital implements Alkoholos { private String alapanyag; private String iz; private double alkoholtartalom; public AlkoholosItal(String nev, String alap, String iz, double alk) { super(nev); alapanyag = alap; this.iz = iz; alkoholtartalom = alk; public String milyenizu() { return iz; public String mibolkeszult(){ return alapanyag; public String tostring() { return getnev()+": "+alkoholtartalom*100+"% "+ " alkohol tartalmú ital"; 43/37

Gyakorló példa a számonkérésre 5. Feladat: Készítsen egy AbsztinensProgram nevű futtatható osztályt Készítsen egy osztályszintű elfogyaszt nevű metódust, mely egy italt kap paraméterül. Kiírja a kapott ital nevét, és ha az ital alkoholos, akkor a "Köszönöm, nem kérem! Alkoholt tartalmaz!" szöveget, egyébként a "Megittam, finom volt!" szöveget. Hozzon létre egy 4 elemű Ital típusú tömböt Töltse fel 2 Gyümölcslével, és 2 AlkoholosItal-lal Fogyassza el az italokat 43/38

Gyakorló példa a számonkérésre Futtatási minta: Megkínáltak a következővel: Sió barack: nem alkoholos, barack alapú ital Megittam, finom volt! Megkínáltak a következővel: Sör: 5.0% alkohol tartalmú ital Köszönöm, nem kérem! Alkoholt tartalmaz! Megkínáltak a következővel: Hohes C: nem alkoholos, citrom alapú ital Megittam, finom volt! Megkínáltak a következővel: Pálinka: 40.0% alkohol tartalmú ital Köszönöm, nem kérem! Alkoholt tartalmaz! 43/39

AbsztinensProgram futtatható osztály elfogyaszt osztály metódus, 4 elemű Ital tömb, feltöltés adatokkal, italok elfogyasztása public class AbsztinensProgram { public static void elfogyaszt(ital i) { System.out.println("Megkínáltak a következővel: "+i); if (i instanceof Alkoholos) System.out.println("Köszönöm, nem kérem! Alkoholt tartalmaz!"); else System.out.println("Megittam, finom volt!"); public static void main(string[ ] args) { Ital [ ] ital = new Ital [4]; ital[0] = new Gyumolcsle("Sió barack", "barack", "édes"); ital[1] = new AlkoholosItal("Sör", "komló", "keserű", 0.05); ital[2] = new Gyumolcsle("Hohes C", "citrom", "savanykás"); ital[3] = new AlkoholosItal("Pálinka", "szilva", "szilva", 0.4); for (int i=0; i<4; i++) AbsztinensProgram.elfogyaszt(ital[i]); 43/40

Konzol Megkínáltak a következővel: Sió barack: nem alkoholos, barack alapú ital Megittam, finom volt! Megkínáltak a következővel: Sör: 5.0% alkohol tartalmú ital Köszönöm, nem kérem! Alkoholt tartalmaz! Megkínáltak a következővel: Hohes C: nem alkoholos, citrom alapú ital Megittam, finom volt! Megkínáltak a következővel: Pálinka: 40.0% alkohol tartalmú ital Köszönöm, nem kérem! Alkoholt tartalmaz! 43/41

43/42

VÉGE VÉGE 43/43