Pytania w komentarzach. Czy sugestię Netbeans zawsze są słuszne i mają sens ?
package figury;
public class Kwadrat extends FiguraPlaska{
private double bokA;
public Kwadrat(double bokA){
setBokA(bokA);
/*NB podkreśla na żółto i podpowiada
* Make the class Kwadrat final
* Make the metod setBokA final
* Make the metod setBokA static
* Make the metod setBokA private
*/
//Wyjaśni mi ktoś sugestię Netbeansa dlaczego ?
/* class Kwadrat final - czyli nie będzie można dzieczyć, po tej klasie
* i rozszerzać zmieniać jak dobrze rozumiem.
*/
//setBokA final - czyli nie będziemy mogli przesłonić tej metody po
//w klasach dziedziczących po Kwadrat tak ?
//metod setBokA static - nie będziemy potrzebowali tworzyć obiektów, aby
//użyć tej metody, ale po co tak ?
//skoro i tak zawsze będziemy tworzyć obiekt i metoda zadziała
/*
*Kwadrat kw = new Kwadrat(2);
* kw.setBokA(4);
* kw.pokazInformacje();
*/
//sugestia z private hmm chyba mija się z celem z tej metody
}
public double getBokA(){
return bokA;
}
public final void setBokA(double bokA){
if(bokA > 0){
this.bokA = bokA;
}
else{
this.bokA = 1; //No właśnie na jaką wartość przeciwnym razie ustawić pole ?
System.out.println("Długość boku powinna być większa od zera. "); //Czy ten komunikat powinnien być tutaj?
//czy może gdzieś indziej program ma się tym zająć
}
}
@Override
public double obliczPole(){
return bokA * bokA;
}
@Override
public double obliczObwod(){
return 4 * bokA;
}
@Override
public void pokazInformacje(){
System.out.println("Kwadrat o boku: " + bokA +
", pole: " + obliczPole() + " obwód: " + obliczObwod() + ".");
}
}