Hirdetés
- Kétezer eurós csomag lehet a Vivo X300 Ultra
- Xiaomi 17 Ultra - jó az optikája
- Honor 200 Pro - mobilportré
- Xiaomi 15T Pro - a téma nincs lezárva
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Samsung Galaxy S25 - végre van kicsi!
- Meglepően lassú az iOS 26 terjedése
- Android alkalmazások - szoftver kibeszélő topik
- Amazfit Active 2 NFC - jó kör
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
szcsaba1994
#7030
üzenetére
Ilyesmire gondolsz?
public class Main {
static abstract class A {
private final int f1;
private int f2;
A() {
this.f1 = 100;
}
A(int f1) {
this.f1 = f1;
}
void setF2(int f2) { this.f2 = f2; }
int getF1() { return this.f1; }
int getF2() { return this.f2; }
}
static abstract class B extends A {
private final int f3;
private int f4;
B(int f3) {
super();
this.f3 = f3;
}
B(int f1, int f3) {
super(f1);
this.f3 = f3;
}
void setF4(int f4) { this.f4 = f4; }
int getF3() { return this.f3; }
int getF4() { return this.f4; }
}
static final class C extends B {
C() {
super(300);
}
C(int f1) {
super(f1, 3000);
}
C(int f1, int f3) {
super(f1, f3);
}
C(int f1, int f2, int f3) {
super(f1, f3);
setF2(f2);
}
}
public static void main(String[] args) {
A a = new C(1, 3);
a.setF2(2);
System.out.println(a.getF1() + ", " + a.getF2());
B b = new C(10, 30);
b.setF2(20);
b.setF4(40);
System.out.println(b.getF1() + ", " + b.getF2() + ", " + b.getF3() + ", " + b.getF4());
C c = new C();
c.setF2(200);
c.setF4(400);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(1000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(10000, 30000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
c = new C(100000, 200000, 300000);
System.out.println(c.getF1() + ", " + c.getF2() + ", " + c.getF3() + ", " + c.getF4());
}
}A super kulcsszó a barátod. Ezzel hívhatod meg az ős konstruktorát, itt adhatod át a konstruktor argumentumokat is. Ezeket vagy kívülről kapja a konstruktor, vagy akár egy konstanst is átadhatsz, attól függ, mi a cél. A fieldeket beállíthatja konstruktor, vagy ha példányosításkor még nem tudod, akkor setter. Most vegyesen vannak.
Lehet több konstruktor is egy osztályon belül, természetesen eltérő paraméterezéssel. Lehet default konstruktor. Ha default konstruktort hívsz, a super(); lényegében elhagyható, mivel a compiler mindig belefordítja. Mindig az első sorba... tehát az ős mindig készen fog állni arra, hogy az adattagjait piszkálhasd.
Ha nem tetszik a konstruktoron belüli setter hívogatás, a fieldeket teheted protecteddé, így közvetlenül is értéket adhatsz nekik. De ilyenkor a csomagon belül minden más osztály is írhatja ezeket az adattagokat.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- új, bontatlan, iPhone 17E gyárilag kártya-független, apple világgaranciával
- Új, bontatlan - Apple MacBook Neo 13" A18 Pro 6CPU/5GPU/ 8GB/256GB Touch ID - Indigo/Silver
- Microsoft Surface Laptop 7 13,8" 2340x1560 touchscreen, Snapdragon X Elite, 32GB/1TB
- Biostar A55MLV Ver. 6.0 AMD FM1 alaplap
- Gyári dobozos Sapphire Radeon HD5450 PCI-E videokártya, szinte új!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 5060 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Apple iMac 21,5" 2015 Late / 8GB DDR3 / 1TB HDD / Bill+Egér 6 hó garancia, számlával!
- HP ProBook 445 G10 14" Ryzen 5 7530U, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- GYÖNYÖRŰ iPhone 13 128GB Red-1 ÉV GARANCIA - Kártyafüggetlen, MS4373, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

