Last active
May 24, 2017 21:18
-
-
Save cipster/f455b0acdfea821046c54ff5b25c274d to your computer and use it in GitHub Desktop.
Andu nu este electronist. Este programator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Radio { | |
private String power; | |
private int volum, volumMax; | |
/** Se construieste un aparat de radio fara parametri */ | |
public Radio() { | |
log("A fost creat un aparat de radio."); | |
> * In constructorul gol ar trebui sa setezi tu un power si volumMax default * | |
} | |
/** Se construieste un aparat de radio cu parametri */ | |
public Radio(String power, int volumMax) { | |
this.power = power; | |
this.volumMax = volumMax; | |
log("A fost creat un aparat de radio, care este " + ANSI_RED_BACKGROUND + power + ANSI_RESET + " si are volumul maxim "+ volumMax +".") | |
> scoate mizeria asta. consola e alb-negru :P | |
} | |
/** Validare valori */ | |
public String getPower() { | |
return power; | |
} | |
public void setPower(String power) { | |
if (power == "OPRIT") | |
> * Numai primitivele pot fi evaluate cu ==. String-ul este un obiect si pentru a evalua corect valoarea trebuie sa folosesti: ex "power.equals("OPRIT")" * | |
> * mai mult, asta e un caz perfect pentru a folosi un enum(tip de date in java special pt constante)* | |
if (power == "PORNIT") //n-am o alta idee ref. la cum as putea sa fac. Nu stiu daca merge in forma asta | |
> * desi nu e incorect, este greu de citit si descurajat sa nu pui acolade if(conditie){} * | |
this.power = power; | |
else | |
log("Aparatul de radio poate fi doar OPRIT sau PORNIT. Incearca din nou cu una dintre aceste valori."); | |
} | |
public int getVolum() { | |
return volum; | |
} | |
public void setVolum(int volum) { | |
if (0<=volum) | |
if (volum <= volumMax) //aici am incercat cu if (0<=volum)&&(volum <= volumMax) si alte variante | |
this.volum = volum; //dar nu m-a lasat cu alta. Nu stiu daca chiar functioneaza in forma actuala :-) | |
else | |
> * In cazul asta as face verificare si daca nu e in intervalul meu as arunca IllegalArgumentException(putem sa vorbim mai pe larg despre exceptii) *</span> | |
log("Volumul poate avea valori doar intre 0 si " + volumMax +". Incearca din nou."); | |
} | |
public int getVolumMax() { | |
return volumMax; | |
} | |
public void setVolumMax(int volumMax) { | |
if (volumMax >= 0) | |
this.volumMax = volumMax; | |
else | |
log("Eroare! Volumul maxim poate avea doar valori mai mari ca zero." + volumMax + "este negativ."); | |
} | |
/** Metode stare aparat */ | |
public void porneste() { | |
power = "PORNIT"; | |
log("Aparatul de radio a fost pornit."); | |
} | |
public void opreste() { | |
power = "OPRIT"; | |
log("Aparatul de radio a fost oprit."); | |
} | |
public void stare() { | |
log("Aparatul de radio este "+ power +"."); | |
} | |
/** Metode reglaj volum */ | |
public void daMaiTare() { | |
volum++; | |
log("Ai crescut volumul cu 1 si acum este la "+ volum +"."); | |
} | |
public void daMaiTare(int cuCat) { //cum plm faci validare pentru parametri? :-))))) | |
> * if(cuCat < 1){throw new IllegalArgumentException("volumul trebuie sa fie pozitiv");}* | |
> * if(volum + cuCat > volumMax){throw new IllegalArgumentException("Volumul ar fi dat peste cap. valoare maxima cu care poate fi incrementat este:" + (volumMax - volum));}* | |
volum+=cuCat; | |
log("Ai crescut volumul cu "+cuCat+" si acum este la "+ volum +"."); | |
} | |
public void daMaiIncet() { | |
<span style="color:red">* Acelasi tipde validari *</span> | |
volum--; | |
log("Ai scazut volumul cu 1 si acum este la "+ volum +"."); | |
} | |
public void daMaiIncet(int cuCat) { | |
volum-=cuCat; | |
log("Ai scazut volumul cu "+cuCat+" si acum este la "+ volum +"."); | |
} | |
private static void log(String mesaj) { | |
System.out.println(mesaj); | |
} | |
/** Culoare text butoane :-) */ | |
public static final String ANSI_RED_BACKGROUND = "\u001B[41m"; | |
public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m"; | |
public static final String ANSI_RESET = "\u001B[0m"; | |
> * Exces de zel * | |
public static void main(String[] args){ | |
Radio r = new Radio(); | |
Radio rr = new Radio("OPRIT", 10); | |
r.porneste(); | |
r.stare(); | |
r.daMaiIncet(3); | |
r.daMaiTare(15); | |
r.daMaiTare(); | |
r.daMaiIncet(); | |
r.opreste(); | |
r.stare(); | |
rr.porneste(); | |
rr.stare(); | |
rr.daMaiIncet(8); | |
rr.daMaiTare(3); | |
rr.daMaiTare(20); | |
rr.daMaiTare(); | |
rr.daMaiIncet(); | |
rr.opreste(); | |
rr.stare(); | |
} | |
} |
Trebuie ca mi-a scapat ceva pe undeva
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nu merge, bosicule. Validarea nu isi face treaba. Abia astept sa ne vedem si sa discutam :-)