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

Hasonló dokumentumok
4. Gy: JAVA osztályok

OOP: Java 4.Gy: Java osztályok

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

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

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

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

OOP: Java 8.Gy: Gyakorlás

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

Osztályok. 4. gyakorlat

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

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

Programozás I. Első ZH segédlet

Java II. I A Java programozási nyelv alapelemei

JAVA PROGRAMOZÁS 2.ELŐADÁS

Java II. I A Java programozási nyelv alapelemei

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

OOP #14 (referencia-elv)

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

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

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

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Programozási nyelvek Java

és az instanceof operátor

OOP: Java 1.Gy: Java alapok

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

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

7. K: JAVA alapok Konzultáció

Programozási technológia

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

3. Osztályok II. Programozás II

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

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

Szoftvertechnolo gia gyakorlat

BME MOGI Gépészeti informatika 8.

A C# programozási nyelv alapjai

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

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés)

Segédanyag: Java alkalmazások gyakorlat

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

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

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

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

C#, OOP. Osztályok tervezése C#-ban

Programozási nyelvek II.: JAVA

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

Objektumorientált programozás C# nyelven

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

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

Öröklés és Polimorfizmus

Java és web programozás

Szoftvertechnológia alapjai Java előadások

Programozási nyelvek II.: JAVA

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

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

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

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok

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

Java IX. telkezelés a Java-ban

Web-technológia PHP-vel

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

Java IX. telkezelés a Java-ban

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

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

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

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

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

Programozási nyelvek Java

GYAKORLATIAS JAVA MINTA

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?

C++ programozási nyelv Konstruktorok-destruktorok

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

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

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

Objektumok inicializálása

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Készítette: Nagy Tibor István

Kalapácsvetés 2016 szöveges

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

Java és web programozás

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

BME MOGI Gépészeti informatika 7.

Informatika terméktervezőknek

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás II. labor

Programozási nyelvek Java

Bevezetés a Python programozási nyelvbe

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

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

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.

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

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

Bánsághi Anna

Programozási nyelvek JAVA EA+GY 1. gyakolat

BME MOGI Gépészeti informatika 6.

5. Gyakorlat. struct diak {

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Átírás:

OOP: Java 5.Gy: Osztály, referencia, konstruktor 36/1 B ITv: MAN 2019.03.10

Osztály fogalma A Circle osztály definíciója: public class Circle { private int cx; private int cy; private int rad; public Circle(int cx, int cy, int rad){ this.cx = cx; this.cy = cy; this.rad = rad; public String tostring(){ return "C=["+cx+","+cy+": "+rad+"]"; Egységbezárás: Az osztály az adatait és a metódusait egy egységként 36/2 kezeli, és elzárja őket a külvilágtól. Tulajdonságok: adattagok Kezelők: metódusok Adattagok Metódusok Osztály

Java típusok A Java nyelv típusai: Elemi (primitív) típusok: (csak 8 féle van!) byte, short, int, long, float, double, boolean, char Egy értéket tárolnak, a változó neve maga az érték Referencia (hivatkozás) típusok: az összes többi típus ilyen: Az érték nem közvetlenül a változóban tárolódik el, (összetett adatszerkezet, több érték) hanem egy objektumban, amit egy hivatkozás kapcsol össze a változóval. int[] t = new int[5]; Circle c = new Circle(2,5,6); Circle c 2 5 6 36/3 Az így létrejövő változókat referencia változónak nevezzük.

Referencia változók használata Deklaráció: Circle c; Circle c Ilyenkor létrejön egy referencia változó, de nem jön létre objektum. A változó értéke null lesz, vagyis a hivatkozása (referenciája) nem mutat objektumra. Példányosítás: c = new Circle(2,5,6); Circle c 2 5 6 A new operátor hatására létrejön egy új objektum (egy osztály új példánya), és a változó hivatkozása (referenciája) beállítódik az objektumra. Példányosításkor lefut az osztály konstruktora, és inicializálja az objektumot (beállítja a kezdőértékét). 36/4

Konstruktor A konstruktor: speciális metódus, amelyet nem lehet meghívni normál módon, hanem automatikusan hívódik meg az osztály példányosításakor. Szerepe az objektum induló állapotának beállítása (pl. adattagok inicializálása). A konstruktor szintaktikája: 36/5 módosítók azonosító (paraméterlista) { utasítások Metódushoz hasonló szintaktika, de Az azonosító kötelezően az osztály neve kell legyen Nincs visszatérési érték típus megadás (semmilyen) Lehetnek paraméterei, amelyeknek a példányosításkor adhatunk meg értékeket. A példányosítás során (new operátor) automatikusan, pontosan egyszer hajtódik végre, többször nem használható.

Konstruktor public class Circle { private int cx; private int cy; private int rad; Több konstruktor is lehet egy osztályban public Circle(int cx, int cy, int rad){ this.cx = cx; this.cy = cy; this.rad = rad; public Circle(){ this(0,0,1); Ha ugyanaz a paraméter neve, mint az adattag neve, a paraméter elfedi az adattag értékét. Ekkor a this minősítővel lehet az adattagot kijelölni. A this minősítő használható arra is, hogy osztályon belül egy ugyanolyan típusú másik metódusra hivatkozzunk. A this itt egy másik konstruktorra utal. Circle c1 = new Circle(); 36/6

Konstruktor súlyos hiba! public class Circle { private int cx; private int cy; private int rad; public Circle(int cx, int cy, int rad){ cx = cx; cy = cy; rad = rad; public String tostring(){ return "C=["+cx+","+cy+": "+rad+"]"; Ha nem alkalmazzuk a this minősítőt, a fordító nem jelez hibát, lefordítja a kódot, de az adattagok nem kapnak értéket! Figyelni kell a színeket az Eclipse-ben! Circle c1 = new Circle(3,4,8); System.out.println(c1); C=[0,0: 0] 36/7

tostring() public class Circle { private int cx; private int cy; private int rad; Minden osztály közös ősosztálya az Object osztály, ezért minden osztály örökli az ebben definiált tostring() metódust A tostring() metódus az osztályt szövegesen reprezentálja Ha nincs felüldefiniálva, osztálynév@egyedipéldányazonosító alakban jeleníti meg az információt: Circle c1 = new Circle(3,4,8); System.out.println(c1); Circle@4aa8f0b4 36/8

tostring() public class Circle { private int cx; private int cy; private int rad; @Override public String tostring(){ return "C=["+cx+","+cy+": "+rad+"]"; Felüldefiniáláskor jelezhető a @Override, de nem kötelező! Fontos: a metódusnak mindig tostring a neve, sosincs bemenő paramétere, mindig public, és mindig String típusú! Circle c1 = new Circle(3,4,8); System.out.println(c1); C=[3,4: 8] 36/9

36/10

Feladat Készítsen egy Téglalap osztályt két adattaggal az oldalak tárolásához (egészek). Írjon konstruktort, amely két paraméterként kapott értékkel inicializál. Írjon konstruktort, amely, amely egy paraméterként kapott értékkel inicializálja mindkét adattagot (négyzet). Írjon metódust, amely visszaadja a területet. Írjon metódust, amely egy String-be összefűzve adja vissza a téglalap adatait a következő alakban: "a_oldal, b_oldal: terület". Írjon setter metódust, amely beállítja a téglalap oldalait a paraméterként kapott két értékkel. Írjon setter metódust, amely beállítja a téglalap oldalait a paraméterként kapott egyetlen értéket adva mindkét oldalnak. Írjon metódust, amely igazat ad, ha a téglalap nagyobb területű, mint a paraméterként kapott téglalap, hamisat ad ha nem. Írjon metódust, amely igazat ad, ha a téglalap oldalai megegyeznek a paraméterként kapott téglalap oldalaival, hamisat ha nem. 36/11

A Rectangle osztály kódja public class Rectangle { int a; //private int b; //private public Rectangle(int a, int b) { this.a = a; this.b = b; public Rectangle(int side) { this.a = side; this.b = side; public int getarea() { return a*b; @Override Rectangle [a=1, b=2, Area=2] public String tostring() { return "Rectangle [a=" + a + ", b=" + b + ", Area=" + getarea() + "]"; 36/12

A Rectangle osztály kódja public void setsides(int a, int b) { this.a = a ; this.b = b; public void setsides(int side) { this.a = side; this.b = side; public boolean hasbiggerarea(rectangle rectangle) { if(this.getarea()>rectangle.getarea()) { return true; else return false; public boolean hasbiggerarea(rectangle r) { return getarea() > r.getarea(); 36/13

A Rectangle osztály kódja public boolean isequal(rectangle rectangle) { if( (this.geta() == rectangle.geta()) && (this.getb() == rectangle.getb()) ) { return true; else return false; public int geta() { return a; public int getb() { return b; public boolean isequal(rectangle r) { return a == r.a && b == r.b; 36/14

Feladat Készítsen egy futtatható osztályt, amely a Téglalap osztályt használja. Hozzon létre két téglalap objektumot ("a" és "b"), és deklaráljon egy harmadik referencia változót ("c"), amely értékül "a"-t veszi fel. Írja ki mindhárom referencia változó esetén a String-be összefűzött adatokat. Változtassa meg "a" oldalait és írja ki újra mindhárom referencia adatait. Változtassa meg "a" oldalait úgy, hogy az megegyezzen "b" oldalaival. Írja ki az (a == b) és az (a == c) kifejezések értékét. Ezután "a" és "b" összehasonlítására használja az utoljára definiált metódust - amely igazat ad, ha a téglalap oldalai megegyeznek a paraméterként kapott téglalap oldalaival, hamisat ha nem. 36/15

A RectangleTest osztály kódja public class RectangleTest { public static void main(string[] args) { Rectangle a = new Rectangle(1,2); Rectangle b = new Rectangle(3); Rectangle c = a; System.out.println(a+ "\n"+ b + "\n"+ c); a.setsides(4); System.out.println(a+ "\n"+ b + "\n"+ c); a.setsides(3); System.out.println("a==b : "+(a==b)); System.out.println("a==c : "+(a==c)); System.out.println( "\na.isequal(b) : "+ a.isequal(b)); Rectangle [a=1, b=2, Area=2] Rectangle [a=3, b=3, Area=9] 36/16 Rectangle [a=1, b=2, Area=2] Rectangle [a=4, b=4, Area=16] Rectangle [a=3, b=3, Area=9] Rectangle [a=4, b=4, Area=16] a==b : false a==c : true a.isequal(b) : true

Feladat Készítsen egy futtatható osztályt, amelyben létrehoz 10 darab Téglalap típusú objektumot és eltárolja a referenciájukat egy tömbben, véletlenszerűen generálva az oldalaikat a 2-10 tartományban. Írja ki az összes téglalap adatait String-be összefűzve. Írja ki a legkisebb területű téglalap adatait. Hozzon létre egy új téglalapot, amelynek az adatait beolvassa. Számolja meg az ettől nagyobb területű téglalapokat. Írja ki az első olyan téglalapnak az indexét, amelynek az oldalai megegyeznek a beolvasott téglalapéval, vagy ha nincs ilyen, akkor azt hogy "nincs egyező". 36/17

A RectangleTest osztály kódja import java.util.scanner; import java.util.random; public class RectangleTest { public static void main(string[] args) { Rectangle[] rectanglearray = new Rectangle[10]; for(int i=0; i<rectanglearray.length; i++) { rectanglearray[i]= new Rectangle( (int)((math.random()*9)+2), (int)((math.random()*9)+2) ); for (Rectangle rectangle : rectanglearray) { System.out.println(rectangle); System.out.println("Smallest rectangle: " + rectanglearray[getminrectangle(rectanglearray)]); 36/18

A RectangleTest osztály kódja //new rectangle Scanner input = new Scanner(System.in); System.out.println("New rectangle : "); System.out.println("a = "); int a = input.nextint(); System.out.println("b = "); int b = input.nextint(); Rectangle newrectangle = new Rectangle(a,b); System.out.println("Number of bigger rectangles: " + countsmallerrectangles(rectanglearray, newrectangle)); if (searchequalrectangle(rectanglearray, newrectangle)<0) System.out.println("There's no rectangle with equal sides"); else System.out.println("Rectangle with equal sides: " + (searchequalrectangle(rectanglearray, newrectangle)+1) + "."); //== main vége 36/19

A RectangleTest osztály kódja public static int getminrectangle(rectangle[] rectanglearray) { int minindex = 0; for (int i = 1; i < rectanglearray.length; i++) { if (rectanglearray[i].getarea() < rectanglearray[minindex].getarea()) { minindex = i; return minindex; public static int countsmallerrectangles(rectangle[] rectanglearray, Rectangle ref) { int counter = 0; for (int i = 0; i < rectanglearray.length; i++) { if (rectanglearray[i].getarea() > ref.getarea()) counter++; return counter; 36/20

A RectangleTest osztály kódja public static int searchequalrectangle(rectangle[] rectanglearray, Rectangle ref) { int index = -1; for (int i = 1; i < rectanglearray.length; i++) { if (ref.isequal(rectanglearray[i])) { index = i; break; return index; //== osztály vége 36/21

A RectangleTest osztály kódja Rectangle [a=8, b=3, Area=24] Rectangle [a=8, b=6, Area=48] Rectangle [a=8, b=6, Area=48] Rectangle [a=7, b=5, Area=35] Rectangle [a=7, b=4, Area=28] Rectangle [a=2, b=8, Area=16] Rectangle [a=8, b=9, Area=72] Rectangle [a=5, b=3, Area=15] Rectangle [a=2, b=7, Area=14] Rectangle [a=8, b=5, Area=40] Smallest rectangle: Rectangle [a=2, b=7, Area=14] New rectangle : a = 4 b = 6 Number of bigger rectangles: 6 There's no rectangle with equal sides 36/22

36/23

Feladat Készítsen egy Hanglemez osztályt, melynek adattagjai az előadó, a cím és a hossz (egész). Írjon konstruktort, amely a paraméterként kapott értékekkel inicializálja az adattagokat. Írjon metódust, amely egy String-ben összefűzve adja vissza a lemez adatait a következő alakban "Elődó: Cim, hossz perc". Írjon metódust, amely 1-t ad vissza, ha a lemez hosszabb, mint a paraméterként kapott lemez, -1-et ad vissza, ha a paraméterként kapott a hosszabb és 0-t ad, ha egyforma hosszúak. Írjon metódust, amely paraméterként egy előadót kap (String) és igazat ad, ha a lemeznek ő az előadója. (A String-ek tartalmi egyezőségének vizsgálatára használja a String osztály equals() vagy equalsignorecase() metódusát.) Az adattagok értékének lekérdezésére írjon getter metódusokat. Készítsen egy futtatható osztályt, amelyben létrehoz és tömbben tárol beolvasott számú beolvasott adatú hanglemezt. Írja ki a leghosszabb lemez 36/24 adatait. Írja ki egy beolvasott nevű előadó lemezeit.

A Record osztály kódja public class Record { private String artist; private String title; private int lenght; public Record(String artist, String title, int lenght) { super(); this.artist = artist; this.title = title; this.lenght = lenght; public String tostring() { return artist + ": " + title + ", lenght= " + lenght + " minutes"; public int comparelength(record record) { if (lenght == record.lenght) return 0; else if (lenght > record.lenght) return 1; else return -1; 36/25

A Record osztály kódja public boolean checkartist(string artist) { return this.artist.equals(artist); public String getartist() { return artist; public void setartist(string artist) { this.artist = artist; public String gettitle() { return title; public void settitle(string title) { this.title = title; public int getlenght() { return lenght; public void setlenght(int lenght) { this.lenght = lenght; 36/26

A RecordTest osztály kódja import java.util.scanner; public class RecordTest { public static void main(string[] args) { Scanner input = new Scanner(System.in); System.out.println("Number of records: "); int numberofrecords= input.nextint(); input.nextline(); 36/27 Record[] recordarray= new Record[numberOfRecords]; for (int i = 0; i < recordarray.length; i++) { System.out.println( (i+1) + ". record: "); System.out.println("Artist: "); String artist = input.nextline(); System.out.println("Title: "); String title = input.nextline(); System.out.println("Length: "); int lenght = input.nextint(); input.nextline(); recordarray[i] = new Record(artist, title, lenght);

A RecordTest osztály kódja System.out.println("Longest record: " + recordarray[findmaxlength(recordarray)]); System.out.println("Longest record: " + recordarray[findmaxlengthwithcomparator(recordarray)]); System.out.println("Please enter an artist name: "); String artist = input.nextline(); System.out.println("Records of " + artist); for (Record record : recordarray) { if (record.checkartist(artist)) { System.out.println(record.getTitle()); //== End of main 36/28

A RecordTest osztály kódja public static int findmaxlength(record[] recordarray) { int maxindex = 0; for (int i = 1; i < recordarray.length; i++) { if(recordarray[i].getlenght() > recordarray[maxindex].getlenght()) { maxindex = i; return maxindex; public static int findmaxlengthwithcomparator(record[] recordarray) { int maxindex = 0; for (int i = 0; i < recordarray.length-1; i++) { switch (recordarray[i].comparelength(recordarray[i+1])) { case 1 : maxindex = i; break; case -1: maxindex = i+1; return maxindex; 36/29

A RecordTest osztály kódja 36/30 Number of records: 3 1. record: Artist: Jenőke Title: Zene Length: 58 2. record: Artist: Rózsi Title: Gyertyák Length: 75 3. record: Artist: Dizsike Title: Dizsike Length: 112 Longest record: Dizsike: Dizsike, lenght= 112 minutes Longest record: Dizsike: Dizsike, lenght= 112 minutes Please enter an artist name: Rózsi Records of Rózsi Gyertyák

36/31

Házi feladat 1. Egészítse ki az előző héten definiált Alkalmazott osztályt 2 konstruktorral: 36/32 Az egyik konstruktornak az alkalmazott nevét és fizetését kell megadni, a másik konstruktornak az alkalmazott nevét, a fizetése 250000 Ft. A második konstruktor használja fel az elsőt! Definiálja felül a tostring metódust. Módosítsa az Alkalmazottat használó osztályt ennek megfelelően. 2. Egészítse ki az előző héten definiált Könyv osztályt 2 konstruktorral: Az egyik konstruktornak a könyv minden adatát meg kell adni, a másiknak csak a szerzőt és a címet, az ár 2500 Ft, a megjelenés éve pedig az aktuális év. Definiálja felül a tostring metódust. Módosítsa a Könyv osztályt használó osztályt ennek megfelelően.

Egy kis segítség Dátumok kezelése (ez volt kezdetekben): inport java.util.calendar; Calendar cal = Calendar.getInstance(); int year = cal.get(calendar.year); System.out.println(year); 2019 Calendar: Félrevezető nevű osztály. Egy időpillanatot ábrázol, ezredmásodperc pontossággal. Az egyes időpont részek kiolvashatók, beállíthatók. Calendar.getInstance(): Aktuális időpont lekérdezése. Calendar.get(xxx): Az időpont egy meghatározott részének lekérdezése. Minden rész lekérdezhető (pl. month, day_of_year, hour_of_day, minute ) Calendar.set(xxx): Az egyes részek beállítása. java.util.gregoriancalendar[time=1552203106263,arefieldsset=true,areallfieldsset=true,lenient=true,zone=sun.util.cal endar.zoneinfo[id="europe/prague",offset=3600000,dstsavings=3600000,usedaylight=true,transitions=143,lastrule=ja va.util.simpletimezone[id=europe/prague,offset=3600000,dstsavings=3600000,usedaylight=true,startyear=0,startmo de=2,startmonth=2,startday=- 1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=- 1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEA R=2019,MONTH=2,WEEK_OF_YEAR=10,WEEK_OF_MONTH=1,DAY_OF_MONTH=10,DAY_OF_YEAR=69,DAY_OF _WEEK=1,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=31,SECOND=46,MILLI 36/33 SECOND=263,ZONE_OFFSET=3600000,DST_OFFSET=0]

Egy kis segítség Dátumok kezelése (ez van ma): inport java.time.localdate; LocalDate today = LocalDate.now(); System.out.println(today); int year = today.getyear(); System.out.println(year); 2019-03-10 2019 LocalDate: A 8-as Java verzióban bevezetett logikus nevű, szabványos dátumés idő kezelő osztály. 36/34

36/35

VÉGE VÉGE 36/36