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

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

4. Gy: JAVA osztályok

OOP: Java 8.Gy: Gyakorlás

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

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

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

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

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

7. K: JAVA alapok Konzultáció

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

OOP: Java 4.Gy: Java osztályok

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

Osztályok. 4. gyakorlat

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:

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

Szoftvertechnolo gia gyakorlat

Programozás I. Első ZH segédlet

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

BME MOGI Gépészeti informatika 8.

Programozási nyelvek II.: JAVA

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

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

Java és web programozás

OOP: Java 1.Gy: Java alapok

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

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

Java Programozás 11. Ea: MVC modell

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

BME MOGI Gépészeti informatika 4.

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

Objektumorientált programozás C# nyelven

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

Programozási nyelvek Java

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

OOP: Java 1.Gy: Java alapok

Kalapácsvetés 2016 szöveges

Öröklés és Polimorfizmus

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

INFORMATIKAI ALAPISMERETEK

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

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

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?

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

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

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

Java II. I A Java programozási nyelv alapelemei

és az instanceof operátor

3. Osztályok II. Programozás II

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

Java és web programozás

Java gyakorlat feladatai e s megolda sai ( )

A C# programozási nyelv alapjai

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

Elemi Alkalmazások Fejlesztése II.

Programozási nyelvek II.: JAVA

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Programozási nyelvek Java

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

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 és web programozás

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

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

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

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

INFORMATIKAI ALAPISMERETEK

BME MOGI Gépészeti informatika 7.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Objektumorientált Programozás VI.

Java II. I A Java programozási nyelv alapelemei

Objektumorientált Programozás VI.

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:)!

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

BME MOGI Gépészeti informatika 6.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

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

Informatika terméktervezőknek

1. Alapok. Programozás II

3. Gyakorlat Ismerkedés a Java nyelvvel

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


Segédanyag: Java alkalmazások gyakorlat

Adatszerkezetek és algoritmusok

Bánsághi Anna

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

Programozás I. Objektum-orientált programozás Stringműveletek V 1.0 ÓE-NIK-AII,

Objektumorientált programozás IX. Osztályok, objektumok

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

OOP #14 (referencia-elv)

Szoftvertechnológia alapjai Java előadások

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

Globális operátor overloading

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Web-technológia PHP-vel

Származtatási mechanizmus a C++ nyelvben

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Programozás II gyakorlat. 8. Operátor túlterhelés

Átírás:

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

Feladatok 1. Készítsen egy Alkalmazott osztályt - legyen név, kor és fizetés adata - legyen egy osztályszintű adattagja a nyugdíj korhatár tárolására, értéke kezdetben legyen 65. - legyen konstruktora, amelyben paraméterként kapott értékekkel inicializálja az adattagokat - legyen metódusa, amely visszaadja hány éve van még nyugdíjig - legyen metódusa, amely string-be összefűzve adja vissza az Alkalmazott adatait, hozzáfűzve a nyugdíjig hátralévő éveinek számát is - legyen metódusa, amely paraméterként kapott értékre állítja be a korhatárt - legyen metódusa, amely paraméterként kapott két Alkalmazott közül a nagyobb fizetésűt adja vissza. Készítsen egy futtatható osztályt, amely beolvas n számú alkalmazottat egy tömbbe. Kiírja az alkalmazottak adatait, majd megváltoztatja a nyugdíj korhatárt és újra kiírja az alkalmazottak adatait. Majd kiírja a legnagyobb fizetésű alkalmazott adatait. 21/2 B IT MAN

Alkalmazott osztály, adattagok: név, kor, fizetes Konstruktor: 3 értékkel inicializál Metódus: Hátra van nyugdíjig Alkalmazott.java public class Alkalmazott { private String nev; private int kor; private int fizetes; private static int Nyugdij= 65; public Alkalmazott(String nev, int kor, int fizetes) { this.nev = nev; this.kor = kor; this.fizetes = fizetes; public int HatraVan() { return Nyugdij-kor; 21/3 B IT MAN

Metódus: Adatok (név+kor+fizetés+hátra van nyugdíjig Metódus: nyugdíj beállítás Metódus: Nagyobb fizetésű alkalmazott (2 bemenő alkalmazott) Alkalmazott.java public String Adatok() { return "Név: "+nev+" Kor: "+kor+"fizetes: "+fizetes+ " Nyugdijig még "+HatraVan()+" év van hátra"; static void SetNyugdij(int NyugdijBe){ Nyugdij = NyugdijBe; static boolean NagyobbFizetes(Alkalmazott A1, Alkalmazott A2){ return A1.fizetes > A2.fizetes; 21/4 B IT MAN

Alkalmazottak futtatható osztály: beolvas N alkalmazottat egy tömbbe Adatok kiírása, nyugdíjkorhatár váltás, újbóli adatkiírás Alkalmazottak.java import java.util.scanner; public class Alkalmazottak { public static void main(string[] args) { Scanner sc = new Scanner(System.in); System.out.println("Alkalmazottak száma: "); String s1 = sc.nextline(); int N = Integer.parseInt(s1); Alkalmazott[] A = new Alkalmazott[N]; String nev, s2; int kor, fizetes; for (int i=0; i<n; i++) { System.out.println(i+". alkalmazott neve: "); nev = sc.nextline(); System.out.println(i+". alkalmazott kora: "); s1 = sc.nextline(); kor = Integer.parseInt(s1); 21/5 B IT MAN

Alkalmazottak futtatható osztály: beolvas N alkalmazottat egy tömbbe Adatok kiírása, nyugdíjkorhatár váltás, újbóli adatkiírás Legnagyobb fizetésű alkalmazott kiírása Alkalmazottak.java System.out.println(i+". alkalmazott fizetése: "); s2 = sc.nextline(); fizetes = Integer.parseInt(s2); A[i] = new Alkalmazott(nev, kor, fizetes); for (int i=0; i<n; i++) System.out.println(A[i].Adatok()); Alkalmazott.SetNyugdij(80); for (int i=0; i<n; i++) System.out.println(A[i].Adatok()); int MaxFizIndex=0; for(int i=0; i<n; i++) if (Alkalmazott.NagyobbFizetes(A[i], A[MaxFizIndex])) MaxFizIndex=i; System.out.println("Legnagyobb fizetésű: "); System.out.println(A[MaxFizIndex].Adatok()); 21/6 B IT MAN

Alkalmazottak futtatható osztály: beolvas N alkalmazottat egy tömbbe Adatok kiírása, nyugdíjkorhatár váltás, újbóli adatkiírás Legnagyobb fizetésű alkalmazott kiírása Konzol Alkalmazottak száma: 3 0. alkalmazott neve: aaaa 0. alkalmazott kora: 51 0. alkalmazott fizetése: 210 1. alkalmazott neve: bbb 1. alkalmazott kora: 25 1. alkalmazott fizetése: 160 2. alkalmazott neve: ccc 2. alkalmazott kora: 37 2. alkalmazott fizetése: 340 Konzol Név: aaaa Kor: 51Fizetes: 210 Nyugdijig még 14 év van hátra Név: bbb Kor: 25Fizetes: 160 Nyugdijig még 40 év van hátra Név: ccc Kor: 37Fizetes: 340 Nyugdijig még 28 év van hátra Név: aaaa Kor: 51Fizetes: 210 Nyugdijig még 29 év van hátra Név: bbb Kor: 25Fizetes: 160 Nyugdijig még 55 év van hátra Név: ccc Kor: 37Fizetes: 340 Nyugdijig még 43 év van hátra Legnagyobb fizetésű: Név: ccc Kor: 37Fizetes: 340 Nyugdijig még 43 év van hátra 21/7 B IT MAN

Feladatok 2. Készítsen egy Szam nevű osztályt a sajat.elso nevű csomagba - legyen egy osztályszintű konstans adattagja egy 0.001 értékkel egy tűrés tárolására - legyen egy adattagja egy valós szám tárolására - legyen konstruktora, amely paraméterként kapott értékekkel inicializálja az adattagot. - legyen egy "egyezike" metódusa, amely igazat ad ha egy paraméterként kapott valós szám eltérése a tűrésen belül van. - legyen getter, setter metódusa a szám adattagra. Készítsen egy SzamProba nevű futtatható osztályt a "masik" nevű csomagba, amelyben létrehoz egy Szam-ot egy 0-1 közötti értéket megadva és eltárolja egy final lokális változóban. Generáljon ciklusban egészen addig 0-1 közötti valós számokat és írja ki, amig egyezőt nem talál a létrehozott Szam-al (tűrésen belülit). Írja ki hanyadik generált szám volt ez. Próbálja ki megtudja-e változtatni a Szam adattagjának értékét. Próbálja ki megtudja-e változtatni a referenciájának értékét. 21/8 B IT MAN

Szam osztály, sajat.elso csomagba, adattagok: Ertek Osztályszintű konstans adattag Tures 0.001 értékkel Alap konstruktor, Metódus: EgyezikE, setertek, getertek Szam.java package sajat.elso; public class Szam { private double Ertek; private static double Tures= 0.001; public Szam(double Ertek) { this.ertek = Ertek; public boolean EgyezikE(double S){ return Ertek < S+Tures && Ertek > S-Tures; public void SetErtek(double Ertek){ this.ertek = Ertek; public double getertek(){ return Ertek; 21/9 B IT MAN

SzamProba futtatható osztály a masik nevű csomagba, Létrehozni egy 0-1 közötti Szam-ot final változóba. Generálni 0-1 közötti számokat, míg tűrésen belüli egyezőt találunk. Hányadik? SzamProba.java package masik; public class Szamproba { public static void main(string[] args) { final sajat.elso.szam FS = new sajat.elso.szam(0.55); int N=0; double RndNum; do { RndNum = Math.random(); System.out.println(RndNum); N++; while (!FS.EgyezikE(RndNum)); System.out.println("Lépésszám: "+N); 21/10 B IT MAN

SzamProba futtatható osztály a masik nevű csomagba, Létrehozni egy 0-1 közötti Szam-ot final változóba. Generálni 0-1 közötti számokat, míg tűrésen belüli egyezőt találunk. Hányadik? Konzol 0.25435953310163084 0.49700661842458393 0.2195481714694223 0.9646464893642208 0.6921162469325784 0.44939819156750616 0.3912471734747871 0.4745622285079234 0.15628421552241034 0.7151303455305675 0.9653425473688079 0.4406471403971898 0.5503804666093234 Lépésszám: 145 21/11 B IT MAN

SzamProba futtatható osztály a masik nevű csomagba, Változtatni Szam adattag értékén. Változtatni Szam referencia értékén. SzamProba.java package masik; public class Szamproba { public static void main(string[] args) { final sajat.elso.szam FS = new sajat.elso.szam(0.55); System.out.println("Szam= "+FS.getErtek()); FS.SetErtek(0.23); System.out.println("Szam= "+FS.getErtek()); FS = new sajat.elso.szam(0.44); Hibás utasítás! sajat.elso.szam SE = new sajat.elso.szam(0.74); FS = SE; Hibás utasítás! 21/12 B IT MAN

Feladatok 3. Készítsen egy konyves.alap.konyv osztályt - legyen adattagja iro, cím, oldalszám és ár adatok tárolására - legyen konstruktora, amely paraméterként kapott értékekkel inicializálja az adattagokat. - legyen metódusa, amely String-ben összefüzve adja vissza a könyv adatait - legyen metódusa, amely igazat ad ha a könyv oldalankénti ára nagyobb, mint egy paraméterként kapott könyvvé. - legyen metódusa, amely két paraméterként kapott könyv közül a hosszabbat adja vissza. (!) Készítsen egy konyves.konyvproba futtatható osztályt, amelyben beolvas n darab könyvet egy tömbbe és meghatározza a legkisebb oldalárút, valamint a leghosszabbat. 21/13 B IT MAN

Konyv osztály, konyves.alap csomagba, adattagok: író, cím, oldalszám, ár Alap konstruktor Metódus: tostring könyv adatok Konyv.java package konyves.alap; public class Konyv { private String iro; private String cim; private int oldal; private int ar; public Konyv(String iro, String cim, int oldal, int ar) { this.iro = iro; this.cim = cim; this.oldal = oldal; this.ar = ar; @Override public String tostring() { return "Konyv [iro="+iro+", cim="+cim+", oldal="+ oldal+", ar="+ar+"]"; 21/14 B IT MAN

Metódus: dragabbe Metódus: oldalar Metódus: hosszabb Konyv.java public boolean dragabb(konyv masik) { return this.oldalar() > masik.oldalar(); private double oldalar() { return (double)this.ar/this.oldal; public static Konyv hosszabb(konyv a, Konyv b) { if (a.oldal > b.oldal) return a; return b; 21/15 B IT MAN

KonyvProba futtatható osztály a konyves nevű csomagba, Beolvasni N darab könyvet egy tömbbe, Kiírni legkisebb oldalárút, és a leghosszabbat KonyvProba.java package konyves; import java.util.scanner; public class KonyvProba { public static void main(string[] args) { Scanner sc = new Scanner(System.in); System.out.println("Könyvek száma: "); String s1 = sc.nextline(); int N = Integer.parseInt(s1); konyves.alap.konyv[] K = new konyves.alap.konyv[n]; 21/16 B IT MAN

KonyvProba futtatható osztály a konyves nevű csomagba, Beolvasni N darab könyvet egy tömbbe, Kiírni legkisebb oldalárút, és a leghosszabbat KonyvProba.java String iro, cim, s2; int oldal, ar; for (int i=0; i<n; i++) { System.out.println(i+". könyv írójának neve: "); iro = sc.nextline(); System.out.println(i+". könyv címe: "); cim = sc.nextline(); System.out.println(i+". könyv oldalszáma: "); s1 = sc.nextline(); oldal = Integer.parseInt(s1); System.out.println(i+". könyv ára: "); s2 = sc.nextline(); ar = Integer.parseInt(s2); K[i] = new konyves.alap.konyv(iro, cim, oldal, ar); 21/17 B IT MAN

KonyvProba futtatható osztály a konyves nevű csomagba, Beolvasni N darab könyvet egy tömbbe, Kiírni legkisebb oldalárút, és a leghosszabbat KonyvProba.java int MinOldalarIndex=0; for(int i=0; i<n; i++) if (!K[i].dragabb(K[MinOldalarIndex])) MinOldalarIndex=i; System.out.println("Legkisebb oldalárú könyv: "+ K[MinOldalarIndex].toString()); konyves.alap.konyv LeghosszabbKonyv = K[0]; for(int i=0; i<n; i++) LeghosszabbKonyv = konyves.alap.konyv.hosszabb(k[i], LeghosszabbKonyv); System.out.println("Leghosszabb könyv: "+LeghosszabbKonyv); 21/18 B IT MAN

KonyvProba futtatható osztály a konyves nevű csomagba, Beolvasni N darab könyvet egy tömbbe, Kiírni legkisebb oldalárút, és a leghosszabbat Konzol Konzol Könyvek száma: 3 0. könyv írójának neve: aaa 0. könyv címe: sdfdg 0. könyv oldalszáma: 230 0. könyv ára: 1500 1. könyv írójának neve: bbb 1. könyv címe: tzjtjtjutj 1. könyv oldalszáma: 342 1. könyv ára: 2835 2. könyv írójának neve: ccc 2. könyv címe: tgrgrgre 2. könyv oldalszáma: 76 2. könyv ára: 900 Legkisebb oldalárú könyv: Konyv [iro=aaa, cim=sdfdg, oldal=230, ar=1500] Leghosszabb könyv: Konyv [iro=bbb, cim=tzjtjtjutj, oldal=342, ar=2835] 21/19 B IT MAN

Feladatok Jövő héten órai egyéni feladat! (T: kb. 30 perc) Készítsen egy osztályt (Termek), melyben termékek nevét és árát tudja tárolni. Legyen konstruktora, legyenek az adattagokat kezelő metódusai. Definiálja felül a tostring() metódusát, mely így a termék nevét és árát adja vissza. Készítsen egy metódust (Elorebb), mely két Termek-et kap paraméterül, és visszaadja az ABC sorrendben előrébb lévő nevű Termek-et. Készítsen egy metódust (Nagyobb), mely kap két árat (számadatot), és ha az első nagyobb, igaz értéket ad vissza, egyébként hamisat. Készítsen egy futtatható osztályt (Termekek), melyben beolvassa N darab termék nevét és árát. - Írja ki a legdrágább termék nevét és árát. - Rendezze név szerint sorba a termékek adatait, és írja ki a sorba rendezett adatokat. 21/20 B IT MAN

VÉGE VÉGE 21/21 B IT MAN