Forum » Programiranje » [Java] System.out.print = null
[Java] System.out.print = null

shadeX ::
pozdrav.
Imam sledeč problem. No bom kar prilepil kodo tukaj prvo.
Razred z imenom RegularWatch:
To je pa main razred:
Output vedno dobim:
Zakaj je tam null? kako bi dobil rezultat da recimo ura prikazuje 24urni čas ter Ni/je vodoodporta.
To je pač nek primer k sm si ga sam izmislil vendar mi dela probleme.
Imam sledeč problem. No bom kar prilepil kodo tukaj prvo.
Razred z imenom RegularWatch:
public class RegularWatch {
private double time = 24;
private boolean isWaterProof = false;
public String waterP;
public RegularWatch(double t, boolean wP) {
this.time = t;
this.isWaterProof = wP;
}
public double getTime() {
return time;
}
public boolean wpBool() {
return isWaterProof;
}
public String getWaterProofInfo() {
if(isWaterProof == false) {
waterP = " is not waterproof";
} else {
waterP = " is waterproof";
}
return waterP;
}
public void writeOut() {
System.out.println("This watch shows time "+ time + " and "+ waterP);
}
}
To je pa main razred:
public class Main {
public static void main(String[] args) {
RegularWatch w1 = new RegularWatch(24, false);
w1.writeOut();
}
}Output vedno dobim:
This watch shows time 24.0 and null
Zakaj je tam null? kako bi dobil rezultat da recimo ura prikazuje 24urni čas ter Ni/je vodoodporta.
To je pač nek primer k sm si ga sam izmislil vendar mi dela probleme.
Wrop ::
waterP je null zato ker ga nikjer ne spreminjaš oz ne kaže na noben String objekt. Takoj po konstruktorju naredi npr. w1.waterP = "poljuben string".
usoban ::
To kar je Wrop rekel.
V getWaterProofInfo() sicer nastavljas waterP, vendar te metode nikjer ne klices. Ali jo poklici rocno na objektu preden izpisujes, ali pa v konstruktorju.
V getWaterProofInfo() sicer nastavljas waterP, vendar te metode nikjer ne klices. Ali jo poklici rocno na objektu preden izpisujes, ali pa v konstruktorju.
Zgodovina sprememb…
- spremenil: usoban ()

shadeX ::
ola ola :D sem poklical takoj po ustvarjenm objektu in sedaj dela. kako bi pa lahko še na drug način naredil? recimo kot si rekel usoban:
ali pa v konstruktorju.
Zgodovina sprememb…
- spremenil: shadeX ()
usoban ::
public RegularWatch(double t, boolean wP) {
this.time = t;
this.isWaterProof = wP;
this.getWaterProofInfo();
}bi delalo.
Sicer metoda vraca String, ampak znotraj nje nastavljas lastnost objekta tako da zadeva prav tako dela.
Zgodovina sprememb…
- spremenil: usoban ()
Spura ::
Bedarija je to v konstruktorju klicat.
Spremeni writeOut.
Iz:
v
Ideja, da naredis lazy inicializacijo v getterju, potem pa uporabljas spremenljivko namesto getterja v izrazih, in si potem prisiljen getter klicat v konstruktorju, je zelo slaba praksa.
V osnovi bi jst ukinil spremenljivko waterP, ker nima nobene vsebine in je v celoti dolocena s spremenljivko isWaterProof.
Torej zbrises spremenljivko waterP in spremenis getWaterProofInfo v
Spremeni writeOut.
Iz:
public void writeOut() {
System.out.println("This watch shows time "+ time + " and "+ waterP);
}
v
public void writeOut() {
System.out.println("This watch shows time "+ time + " and "+ getWaterProofInfo());
}
Ideja, da naredis lazy inicializacijo v getterju, potem pa uporabljas spremenljivko namesto getterja v izrazih, in si potem prisiljen getter klicat v konstruktorju, je zelo slaba praksa.
V osnovi bi jst ukinil spremenljivko waterP, ker nima nobene vsebine in je v celoti dolocena s spremenljivko isWaterProof.
Torej zbrises spremenljivko waterP in spremenis getWaterProofInfo v
if(isWaterProof) { // primerjava z booleanom ne nepotrebna, ker if uporablja boolean izraze
return " is waterproof";
} else {
return " is not waterproof";
}
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | problemi z javoOddelek: Programiranje | 1261 (866) | MrStein |
| » | [Java] Objekt poslan k metodi v kakšnem stanju?Oddelek: Programiranje | 1700 (1147) | shadeX |
| » | [Java] CastanjeOddelek: Programiranje | 1678 (1533) | fiction |
| » | [JAVA] zaustavitev niti (threadov)Oddelek: Programiranje | 3380 (3380) | morbo |
| » | [Naloga][Java] UlomkiOddelek: Programiranje | 2856 (2704) | SkIDiver |