this
, konstruktor, túlterhelésArrays
, String
, StringBuilder
BufferedReader
, Scanner
, PrintWriter
)static
, alapértelmezett konstruktor, fájlfeldolgozás, felsorolási típusequals
és hashCode
, Comparable
, Set
, Map
, absztrakt osztály, kivételekA feladatsorban szereplő fájlokat ide kattintva lehet letölteni. Azokat a nyelvi elemeket (pl. osztályokat), amelyek nem szerepelnek a fájlban, önállóan kell elkészíteni.
Egy feladat akkor van megoldva, ha
HelloWorld.java
HelloWorld.java
forrásfájlt.HelloWorld.java
Increment.java
Increment.java
fájlban, és javítsd ki, hogy a forrás forduljon, és helyesen fusson le. Clock.java
Point.java
és Distance.java
hibás programokat.Point
osztály:
x
és egy y
koordinátájadouble
)Distance
osztály:
x
, utána az y
koordináta (ezek is szóközzel elválasztva)Point
osztály felhasználásával számítsa ki és adja össze az egymás mellett lévő pontok távolságát (pl. 3 pont esetén az 1. és a 2. pont távolságához hozzá kell adni a 2. és a 3. pont távolságát), majd az eredményt írja kiPéldák:
> java Distance
0.0
> java Distance 1 2
0.0
> java Distance 0 0 3 4
5.0
> java Distance 1 2 4 6
5.0
> java Distance 1 2 4 6 7 6
8.0
Person.java
Gender
nevű osztályt. Ebben szerepeljen két osztályszintű konstans, amelyek rendre Gender.MALE
(férfi) és Gender.FEMALE
(nő).Person
névvel egy olyan osztályt, amelyben nyilvántartjuk a személyi adatokat. A rögzíteni kívánt adatok: a személy vezeték- és keresztneve (mindkettő String
), foglalkozása (String
), neme (Gender
) és születési éve (int
).Person
osztálynak egy olyan statikus metódusa makePerson()
névvel, amely ezeket az adatokat paraméterként kapja és összeállít belőlük egy Person
típusú objektumot. A létrehozás előtt azonban ellenőrizzük, hogy a születési év 1900
és 2017
közé esik-e. Ha nem, akkor a metódus üres, vagyis null
referenciát ad vissza (azaz ilyenkor nem jön létre objektum). Person
bővítése: toString
, equals
, csomag
Person
osztályt egy toString()
metódussal, amely String
típusú értékké alakítja az adott objektum belső állapotát.equals()
nevű metódust a Person
osztályhoz, amely eldönti a paraméterként megadott másik Person
objektumról, hogy megegyezik-e az aktuális példánnyal. Vigyázz arra, hogy mivel referenciát adsz át paraméterként, az lehet (többnyire véletlenül) null
érték is. Ilyenkor értelemszerűen az eredménye hamis lesz.person
csomagba, és készíts hozzá egy főprogramot a main
csomagba. Ebbe hozz létre két Person
objektumot, vizsgáld meg, hogy ugyanarról a két személyről van-e szó, és az eredményt írd ki a sztenderd kimenetre. Tribonacci.java
)
Euclid.java
)
Quadratic.java
)
a
, b
és c
együtthatóit a billentyűzetről kérd be.
java.util.Scanner
osztályt. Calculator.java
Calculator
nevű osztályt, amely két parancssori paramétert vár.
java Calculator 2,3,4 10
).public String[] split(String regex):
a regex
reguláris kifejezés (jelenleg: a szövegrészeket elválasztó jel) mentén bontja fel a szöveget, majd a felbontott szöveget tömbként adja vissza.típus[] változónév = new típus[hossz];
int[] t = new int[5];
Calculator2.java
Calculator
osztályt a következőképpen: hozz létre két attribútumot, legyenek ezek public static int[] a;
és public static int b;
.public static void loadInputs(String[] args)
: nyers formában megkapja a parancssori paraméterek tömbjét, majd feltölti az argumentumokat,public static int[] add()
a függvény egy új tömbben tárolja el a megoldást, amelyet visszaad,public static void display(int[] result)
: a kiíratást végző metódus.this
, konstruktor, túlterhelésKangaroo.java
, KangarooDemo.java
Kangaroo
osztály egy kengurut reprezentál.display
metódusa egy szöveges típusú országnevet kap paraméterül, és kiírja a kenguru nevét, lakóhelyét (az országot), majd eggyel megnöveli az életkorát, és az új életkort is kiírja. Point.java
, Circle.java
, PointCircleTest.java
Point
és a Circle
osztályát az alábbi műveletekkel:
Point
osztályban definiáljunk egy metódust, amely megadja az objektum távolságát egy, a paramétereként átadott Point
objektumtól;Point
osztályban definiáljunk egy statikus metódust, amely két pont távolságát adja meg;Circle
osztályban is készítsük el a toString
metódust;Circle
osztályhoz írjunk egy műveletet, amely eldönti, hogy a paramétereként megadott Point
objektum illeszkedik–e a körvonalra – egy adott tűréshatáron belül;Circle
osztályhoz írjunk egy műveletet, amely eldönti, hogy a paramétereként megadott Point
objektum a Circle
belsejében van-e.Circle
osztály a geo
csomagba kerüljön,Point
osztály a utils.basics
csomagba kerüljön,main
csomagba kerüljön. IntTree.java
, IntTreeTest.java
utils.IntTree
osztályt.
utils.IntTree
osztály egész számokat rendezetten tároló bináris fa osztály.IntTree
objektumokra vonatkozó referenciákkal oldjuk meg, ezek az adott fabeli csomópont bal és jobb oldali részfáira fognak mutatni.int
értéket is eltárolunk. Ha nincs szülő, akkor a csomópont éppen a fa gyökere. IntTree
osztálynak a következő műveletei vannak:
insert()
: egy int értéket kap és beilleszti a fába.
contains()
: eldönti, hogy a paramétereként megadott elem megtalálható–e a fában? Igaz értéket ad vissza, ha megtalálható az elem, különben hamisat. (rekurzív metódus)konstruktor
: az int
értékek egy tömbjét beszúrja a fábakonstruktor
: egy elemből egy olyan fát hoz létre, amelyben csak egyetlen gyökérelem van (és nincsenek rákövetkezői). toArray()
: egy int
értékeket tartalmazó tömbben visszaadja azokat az értékeket, amelyeket a fában tárolunk. Ha szeretnénk kihasználni, hogy a beszúrást rendezetten végeztük, akkor érdemes ezt a tömböt úgy felépíteni, hogy először a bal részfa elemeit vesszük, aztán a gyökérben levő elemet, majd a jobb részfa elemeit. Az így összeállított tömb is rendezett lesz (inorder bejárás). (rekurzív metódus)toString()
: egy fa szöveges alakját adja meg.
equalsTo()
: eldönti az objektumról és a paraméterként megadott változóról, hogy a kettő megegyezik–e.
IntList.java
, IntListTest.java
utils.IntList
osztályt (egész értékek tömbösített, dinamikus tárolására alkalmas osztály).add()
: egy új elem hozzáadása a tömb végére,add()
: elem beszúrása az adott indexű helyre,concat()
: egy másik IntList tartalmának hozzáfűzése az aktuálishoz,get()
: az első elem lekérdezése,get()
: adott indexű elem lekérdezése,set()
: adott indexű elem beállítása, amennyiben van olyan indexű elem,remove()
: az első elem törlése,remove()
: adott indexű elem törlése, indexOf()
: elem indexének megkeresése, ha nem található, akkor -1
–et adjon vissza,size()
: a jelenleg tárolt elemek száma,clear()
: az összes elem törlése,toArray()
: az osztályban tárolt értékek egyetlen tömbként történő visszaadása,toString()
: szöveggé alakítás. fromString()
nevű osztályszintű metódus, amellyel szövegből tudjuk beolvasni a tárolni kívánt elemeket.
null
referenciát adj vissza.java.util.Scanner
osztályt.Arrays
, String
, StringBuilder
IntVector.java
, IntVectorDemo.java
util
csomagon belül egy IntVector
osztályt, amely egészek sorozatát ábrázolja.add()
metódust, mely a sorozat minden eleméhez hozzáad egy paraméterül kapott egész számot.toString()
metódust is, mely felsorolja a számokat szóközzel elválasztva. Például: [1 2 3]
RealVector.java
, RealVectorTest.java
utils.RealVector
osztályt (valós számokat tartalmazó tömb mint vektor segítségével).java.lang.StringBuilder
–t használj a szöveg előállításáhozjava.util.ArrayList
) segítségével is (VectorAL.java
, VectorTestAL.java
).java.util.LinkedList
) segítségével is (VectorLL.java
, VectorTestLL.java
). CalculatorVector.java
, CalculatorVectorAL.java
, CalculatorVectorLL.java
)
java CalculatorVector 2.0,3.0,4.0 3.4,5.6,1.2 2.0
.Vector.java
, Matrix.java
, MatrixTest.java
)
basics.Matrix
osztályt (valós számokat tartalmazó kétdimenziós tömb mint mátrix segítségével).java.lang.StringBuilder
–t használj a szöveg előállításáhozMatrixTest.java
a main
csomagban), amely teszteli a fenti műveleteket.IntegerMatrix
nevű osztályt a következő metódusokkal.int rowNum
A mátrix sorainak száma.int colNum
A mátrix oszlopainak száma.Integer[] linearData
Egy, a mátrix elemeit sorfolytonosan tároló tömb.toString
metódus, mely egyetlen karakterláncba felsorolja a mátrix elemeit. A karakterláncban az egy sorban szereplő elemeket a ,
karakterrel válaszd el! A sorokat a ;
karakterrel válaszd el!
Például linearData = {1,2,3,4,5,6}
esetén az IntegerMatrix(2,3,linearData)
konstruktorhívás hatására a következő mátrix készül:
1 2 3 |
4 5 6 |
toString
metódusa a következő karakterlánccal tér vissza: "1,2,3;4,5,6"
. toString
változatai
,
vagy ;
) az elemek közé kell, hogy kerüljön.
String
immutábilis. Konkatenáláskor (+
) a operandusok lemásolásával új String
készül, melynek hossza az operandusok hosszának összege. A ciklusban való konkatenálások költsége így O(n2). Két egymásba ágyazott ciklus esetén már O(n3).
java.lang.StringBuilder
osztályt! Ennek az append
metódusát a hatékony konkatenálásra vezették be.BufferedReader
, Scanner
, PrintWriter
)CopyWithoutDuplicates.java
BufferedReader
rel.String
osztályban olyan metódust, mely alkalmas rá, hogy egy speciális karakter (most a vessző) mentén feldarabolja a sorunkat.String
osztályban. Scanner
rel
Scanner
rel, az egész számokat közvetlenül beolvasva.
Scanner
osztály hasNextInt
, nextInt
és useDelimiter
metódusait.BufferedReader
rel és Scanner
rel is.static
, alapértelmezett konstruktor, fájlfeldolgozás, felsorolási típusMain.java
, Finder.java
Finder
osztály néhány fájlműveletet tartalmaz:
PrintWriter
objektumot melynek segítségével kiírja az eredményeitfindText
túlterhelt metódusok egy paraméterként adott szöveget keresnek rekurzívan, a szintén paraméterként kapot nevű fájlban
printFile
túlterhelt metódusok egy paraméterként adott File
tartalmát írja a PrintWriter
objektumba, szintén rekurzívan.Main.java
a következőket teszi.
Finder
osztályt.output.txt
fájlba.output.txt
fájlban. Color.java
Color
felsoroló típust auto.utils
csomagba, mely a következő értékeket tárolhatja: RED
, GREEN
, BLUE
. Auto.java
Auto
osztályt az auto
csomagba, mely a következő tagokat tárolja objektumonként:
String
)Color
)int
)AAA-000
, BLUE
és 120
értékekkel hoz létre objektumotMain.java
input.txt
fájlt, melyben autók adatai vannak soronként megadva, vesszővel elválasztva. Pl: ABC-123,RED,100
Main
osztályt (a csomagokon kívül), amely a tesztprogramot tartalmazza.
Main
osztály main metódusában olvasd be a bemeneti fájl sorait, a létrehozott objektumokat pedig tárold el egy ArrayList
be.java.util.Scanner
, illetve az Enum.valueOf(String)
metódusmarket.Fruit
osztályt, ami egy gyümölcsöt reprezentál.name
, amely a gyümölcs nevét tárolja és egy egész szám típusú price
, ami a gyümölcs árát tárolja.getPrice
, ami visszaadja a gyümölcs árát.cheaperThan
metódust, ami eldönti, hogy az aktuális gyümölcs olcsóbb-e, mint a paraméterben kapott gyümölcs. make
metódus, amely szintén egy nevet és egy árat kap. A metódusnak ellenőriznie kell a paramétereket, és amennyiben azok megfelelőek, akkor hozza létre, és adja vissza a paramétereknek megfelelő Fruit
objektumot. Ha a paraméterek nem jók, akkor a metódus null
-t adjon vissza. A nevet tartalmazó paraméter akkor megfelelő, ha csak betűt tartalmaz és legalább 2 karakter hosszú. Az árat tartalmazó paraméter pedig akkor helyes, ha pozitív, de legfeljebb 5000, továbbá és 0-ra vagy 5-re végződik. show
metódus, amely visszaadja az objektum szöveges reprezentációját. A formátum legyen a következő: \ név (ár-ezres-tagolással Ft)
\ (ha az ár 1000-nél nagyobb, akkor ezres tagolásként egy szóközt kell használni, pl. 3 065
). cheapestFruit
nevű osztályszintű adattagot, ami a legolcsóbb gyümölcsöt tartalmazza, amit valaha létrehoztak (ha több ilyen van, akkor ezek közül az elsőt). Ha még nem hoztak létre Fruit
objektumot, akkor az adattag értéke legyen null
. Figyelj rá, hogy a konstruktor mindig aktualizálja ezt az objektumot, amikor az összes eddiginél olcsóbb gyümölcsöt hoz létre.getCheapestFruit
metódus, ami visszaadja az előbbi Fruit
objektumot. market.Market
osztályt, ami egy egyszerűsített piacot reprezentál.Fruit
típusú objektumok). név,ár
formában.ár
nem konvertálható számmá, vagy a megadott adatokból a Fruit
objektum nem hozható létre, akkor a sort figyelmen kívül kell hagyni és a feldolgozást a következő sorral kell folytatni. numberOfFruits
metódus, amely visszaadja a piacon még kapható gyümölcsök számát. Kezdetben az összes gyümölcs kapható.show
metódus, ami szöveges típusban visszaadja a még kapható gyümölcsöket. A szöveg összeállításakor a gyümölcsök olyan sorrendben szerepeljenek, amilyen sorrendben a konstruktor beolvasta őket, és olyan formában, ahogy a Fruit
show
metódusa előállítja, a gyümölcsök között pedig legyen egy sortörés. Az utolsó gyümölcs után már ne legyen sortörés. cheaperThan
publikus metódus, ami egy Fruit
típusú objektumot vár, és ilyen objektumok láncolt listáját adja vissza. A metódus gyűjtse össze azokat a gyümölcsöket, amelyek olcsóbbak, mint a paraméterben kapott gyümölcs. A gyümölcsök a visszaadott listában olyan sorrendben szerepeljenek, ahogy a konstruktor beolvasta őket.average
publikus metódus, ami egy valós számot (double
) adjon vissza, azt, hogy mennyi a gyümölcsök átlagos ára.
-1
-et.buyCheapestFruit
publikus metódus, aminek nincs paramétere, és egy vásárlást szimulál.
null
-t adjon vissza. sale
publikus metódus, aminek nincs paramétere és egy kiárusítást szimulál. \ A kiárusítás addig tart, amíg el nem fogy az összes gyümölcs. A metódus egy gyümölcsöket tartalmazó láncolt listába gyűjtse össze, hogy a gyümölcsöket milyen sorrendben vásárolták meg. Ez a lista lesz a metódus visszatérési értéke. Main
osztályt, amelyben legyen egy főprogram.Market
objektumot.Market
objektum sale
metódusát és a visszakapott lista minden egyes elemét írja ki a képernyőre (a show
metódus segítségével). Ha a program paraméterének a fruit.txt
fájlban található bemenetet adjuk meg, akkor a következő kimenetet kell kapnunk:
barack (55 Ft)
korte (130 Ft)
szilva (130 Ft)
dinnye (2 015 Ft)
.class
fájl), melynek ismerjük a publikus metódusait (az interfészt).Greeter
)
String
) vár paraméterként, és egy üdvözlő szöveget ad vissza úgy, hogy a paraméter elé konkatenálja a "Hello, "
karakterláncot.null
, a metódus IllegalArgumentException
kivételt dob. A Greeter.class
osztály interfésze:
public class Greeter{
public static String greet(String name) {...}
}
null
Triangle
)
Egyenlő oldalú (EQUILATERAL
), egyenlő szárú (ISOSCELES
), egyéb (SCALENE
).
public enum TriangleType{
EQUILATERAL, ISOSCELES, SCALENE
}
IllegalArgumentException
kivételt. A Triangle.class
osztály interfésze:
public class Triangle{
public Triangle(int a, int b, int c){...}
public TriangleType classify(){...}
}
0
oldalhosszú háromszögTriangleType
-ra: az adott fajtába tartozó háromszögekAdder
)
String
). Az átadni kívánt számokat tehát előbb ilyen módon el kell kódolni, majd az eredményt megfelelően dekódolni kell.IllegalArgumentException
kivételt. Az Adder.class
osztály interfésze:
public class Adder {
public String add(String a, String b){...}
}
market.Fruit
osztály)
Fruit
osztályt.0
, 1
, 2
iterációra) name
, amely a gyümölcs nevét tároljaprice
, ami a gyümölcs árát tárolja.make
metódus, amely szintén egy nevet és egy árat kap.
2
karakter hosszú.5000
, továbbá és 0
-ra vagy 5
-re végződik.make
metódust terheld túl egy másik metódussal, mely szövegek egy listáját várja paraméterül, és Fruit
objektumok listájával tér vissza. Az érvényes szövegobjektumok mindegyike két darab, vesszővel elválasztott mezőt tartalmaz: a gyümölcs nevét, és az árát. Például: korte, 130
make
metódus másik túlterhelt példánya segítségével létrehozza a gyümölcs objektumokat, majd egy listában visszaadja azokat. Amennyiben a sor érvénytelen, az utóbbi metódus null referenciát ad vissza.A Fruit.make(List<String> lines)
metódus kódja:
public static List<Fruit> make(List<String> lines) {
ArrayList<Fruit> fruits = new ArrayList<>();
for (String line : lines) {
String[] parts = line.split(",");
if (parts.length == 2) {
Fruit f = make(parts[0], parts[1]);
if (f != null) {
fruits.add(f);
}
}
}
return fruits;
}
A Fruit.make(List<String> lines)
metódus vezérlésfolyam-gráfja
auction.Book
osztály)
Book
osztályt.0
, 1
, 2
iterációra) auction.Book.Genre
), mely a lehetséges műfajokat tartalmazza, (azonos írásmóddal): FANTASY, SATIRE, SCIFI, PHILOSOPHY, EDUCATIONAL
.hammerPrice
),Genre
típusú, a műfajt tároló példányváltozó. Genre
típusú), és beállítja a megfelelő adattagokat (a leütési ár legyen a kikiáltási ár). Az azonosító legyen mindig a legutolsóként használt azonosítónál egyel nagyob egész, 0-tól indulva. make
nevű metódust is.
make
metódus szintén az alkotó nevét, a könyv címét és a kikiáltási árát kapja meg paraméterként, valamint szöveges paraméterként a műfaj nevét.Book
típusú objektumot. Ha a paraméterek nem megfelelőek, akkor a metódus null
-t adjon vissza.make
metódust terheljük túl egy másik metódussal, mely szövegek egy listáját várja paraméterül, és Book
objektumok listájával tér vissza. Az érvényes szövegobjektumok mindegyike 4 db, pontosvesszővel elválasztott mezőt tartalmaz: az alkotó nevét, a könyv címét, a kikiáltási árat, valamint a műfajt. Például: Giles Andreae;GIRAFFES CAN'T DANCE;PHILOSOPHY;50000
make
metódus másik túlterhelt példánya segítségével létrehozza a könyv objektumokat, majd egy listában visszaadja azokat. Amennyiben a sor érvénytelen, az utóbbi metódus null referenciát ad vissza. A Book.make(List<String> lines)
metódus kódja
public static List<Book> make(List<String> lines) {
ArrayList<Book> books = new ArrayList<>();
for (String line : lines) {
String[] parts = line.split(";");
if (parts.length == 4) {
Book b = make(parts[0], parts[1], parts[2], parts[3]);
if (b != null) {
books.add(b);
}
}
}
return books;
}
A Book.make(List<String> lines)
metódus vezérlésfolyam-gráfja
GTNGame
osztály)
maxNum
számot vár a felhasználótól, ami a megoldás felső korlátját jelenti majd.java.util.Random
osztály nextInt
metódusa).GTNGame
osztályt.0
, 1
, 2
iterációra)ColouredPoint
, ColouredCircle
, ColouredShapeTest
utils.basics.coloured.ColouredPoint
osztályt a utils.basics.Point
leszármazottjaként.
geo.coloured.ColouredCircle
osztályt a geo.Circle
leszármazottjaként.
main.ColouredTest
főprogramot a fenti két osztály tesztelésére.MyStack<T>
MyStack<T>
generikus interfészt, amely egy verem műveleteit definiálja.
java.util.Stack<T>
osztály tartalmát csak azután nézd meg, hogy elkészítetted a saját implementációdat.ArrayStack<T>
, LinkedStack<T>
(ArrayStack.java
, LinkedStack.java
, StackTest.java
)
ArrayStack<T>
és a LinkedStack<T>
osztályt.
MyStack<T>
interfészt.ArrayStack<T>
osztály egy tömbbel, a LinkedStack<T>
osztály pedig egy láncolt listával ábrázolja a vermet.equals
és hashCode
, Comparable
, Set
, Map
, absztrakt osztály, kivételekMovie
hashCode
és equals
metódusokat. Az equals
ellenőrizze mindhárom adattagról, hogy egyenlőek-e a paraméterül kapott objektuméval, amennyiben az is egy Movie
.Comparable
interfészt. Elsőre cím szerint, másodjára a megjelenési év szerint, harmadjára pedig a rendező neve szerint rendezzen. Ebben a metódusban feltehetjük, hogy az aktuális objektum és a paraméter egyik adattagja sem null
.Main
osztályt (vagy JUnit-alapú tesztelőt), amely példányosítja az osztályt, és kipróbálja a működését.Circle
Circle
osztályt, mely tárolja egy kör középpontjának x és y koordinátáját és a sugarát (három lebegőpontos szám). A konstruktor fogadja ezeket a paramétereket, és tárolja le.hashCode
és equals
metódusát. Az equals
vizsgálja meg, hogy két kör egybevágó-e, azaz hogy a sugaruk egyenlő-e. A középpontot ne vegye figyelembe.
hashCode
sem szabad, hogy függjön a középpont koordinátáitól, mert akkor két egyenlő objektumra adhatna különböző értéket.Comparable
interfészt, két kör között a sugaruk alapján tegyen különbséget.CheckedSet
CheckedSet<T>
generikus osztályunk, mely egy halmazt valósít meg.Set<T>
adattagja, melyet a null
a paraméteres konstruktor megfelelően feltölt.add(T element)
metódusa, mely dobhat AlreadyContainedException
ellenőrzött kivételt (származzon az Exception
-ből). Ehhez hozzuk létre ezt a kivételosztályt, és dobjuk akkor, ha a halmaz már tartalmaz a megadottal egyenlő elemet. Különben tegyük bele a halmazba az új elemet.contains(T element)
metódusa, mely ellenőrzi, hogy a halmaz tartalmazza-e a megadott elemet.Bag
Bag<T>
generikus osztályunk, mely egy zsákot valósít meg. A zsák olyan halmaz, mely többször tartalmazhatja ugyanazt az elemet.Map<T, Integer>
adattagja, melyet a null
a paraméteres konstruktor megfelelően feltölt.add(T element)
metódusa. Ellenőrizze, hogy van-e már ilyen kulcs a zsákban, ha nincs, tegye bele 1 értékkel. Ha van, kérdezze le az aktuális értéket, és tegye bele az eggyel megnövelt értéket. (Azt tároljuk a map
-ben, hogy melyik objektum hányszor van a zsákban.)countOf(T element)
metódusa, mely megadja, hogy hányszor van az elem a zsákban. Ha nincs az elemhez mint kulcshoz rendelve semmilyen érték a map
-ben, adjon vissza 0
-t. remove
metódusa is egy elem kivételére.
0
-ra csökken a darabszám, vegye ki a megfelelő kulcs-érték párt a map
-ből, hogy ne tároljunk feleslegesen adatokat. (Ehhez keressünk megfelelő metódust a java.util.Map interfészben.)NotInBagException
nem ellenőrzött kivételt (származzon a RuntimeException
-ből).Fraction
Fraction
osztályt, mely törtszámokat ábrázol. Legyen két int
adattagja, a számláló és a nevező.equals
és a hashCode
metódusokat, valamint valósítsa meg a Comparable
interfészt, mely a matematikai kisebb és nagyobb relációnak megfelelően működjön a törtszámokra.BathRoom
, BathTub
és Main
osztályokat.BathRoom
osztály clone()
metódusában, azaz érd el, hogy a klónozás során a BathTub
objektum is lemásolásra kerüljön. Ember
és BeolvasEmber
osztályokból.
Collections.sort
metódust.Ember
osztály valósítsa meg a Comparable<Ember>
interfészt.Collections.sort
metódust használd, vagy a List interfész sort
metódusát; a megoldások az átadott Comparator
elkészítésében térnek el.
Comparator
t lambda-kifejezéses alakban add meg.Comparator
t névtelen osztállyal add meg.Comparator
interfészt, és ennek egy példányát add át. List
változót, és töltsd fel 10
tetszőleges számmal. Lambda-kifejezések segítségével végezd el a listán az alábbiakat.
list.forEach
segítségével
list.removeIf
segítségével távolítsd el a listából a 10
-nél nagyobb számokatlist.replaceAll
segítségével emeld négyzetre a számokat