Kingston_Pendrive/Suli/13.b/Frontend/Javascript/2024. 11. 05/OOPFeladat3.js
2024-11-19 19:04:02 +01:00

87 lines
2.2 KiB
JavaScript

class Termek {
constructor(nev, ar, mennyiseg, azonosito) {
this.nev = nev
this.ar = ar
this.mennyiseg = mennyiseg
this.azonosito = azonosito
}
adatok() {
return `A termék neve ${this.nev}, a termék ára ${this.ar}, a termék mennyisége ${this.mennyiseg} és azonosítója ${this.azonosito}`
}
}
class Elelmiszer extends Termek {
static elelmiszerSzam = 0
constructor(nev, ar, mennyiseg, azonosito, szavatossagiIdo) {
super(nev, ar, mennyiseg, azonosito)
this.szavatossagiIdo = szavatossagiIdo
Elelmiszer.elelmiszerSzam++
}
adatok() {
return `${super.adatok()}, valamint a szavatossági idő ${this.szavatossagiIdo}`
}
osszesElelmiszer() {
return Elelmiszer.elelmiszerSzam
}
}
class ElektronikaiTermek extends Termek {
static elektronikaSzam = 0
constructor(nev, ar, mennyiseg, azonosito, garancia) {
super(nev, ar, mennyiseg, azonosito)
this.garancia = garancia
ElektronikaiTermek.elektronikaSzam++
}
adatok() {
return `${super.adatok()}, valamint a garancia időtartama ${this.garancia}.`
}
osszesElektronikaiTermek() {
return ElektronikaiTermek.elektronikaSzam
}
}
class Raktar {
constructor(termekek) {
this.termekek = termekek
}
hozzaadTermek(termek) {
this.termekek.push(termek)
}
eltavolitTermek(azonosito) {
this.termekek.forEach(element => {
if (element.azonosito == azonosito) {
this.termekek.splice(element)
}
});
}
keszletKimutatas() {
this.termekek.forEach(element => {
console.log(element.adatok());
})
console.log(this.termekek.length);
}
keresettTermek(nev) {
this.termekek.forEach(element => {
if (element.nev == nev) {
element.
}
})
}
}
const raktar1 = new Raktar([])
const elektronikaiTermek1 = new ElektronikaiTermek("Monitor", "85.000 Ft", 2, 1, "2 év")
raktar1.hozzaadTermek(elektronikaiTermek1)
console.log(raktar1.termekek);
raktar1.keszletKimutatas()