Un esercizio che ho svolto chiede la costruzione della classe TestQuadrato contenente un metodo main() che istanzi un oggetto di tipo Quadrato con lato di valore 5. Successivamente bisogna stampare perimetro e area dell'oggetto appena creato.
La mia soluzione è la seguente:
codice:
public class TestQuadrato
{
    public static void main(String args[])
    {
        Quadrato oggetto = new Quadrato(5);
    }
}
codice:
public class Quadrato
{
    public int lato;

    public Quadrato(int lato)
    {
        int perimetro = lato * 4;
        int area = lato * lato;
        System.out.println("il perimetro è: " + perimetro);
        System.out.println("l'area è: " + area);        
    }    
}
mentre la soluzione proposta dal manuale è questa:
codice:
public class TestQuadrato {
    public static void main(String args[]) {
        Quadrato quadrato = new Quadrato();
        quadrato.lato = 5;
        int perimetro = quadrato.perimetro();
        System.out.println(perimetro);
        int area = quadrato.area();
        System.out.println(area);
    }
}
codice:
public class Quadrato {
    public int lato;
    public int perimetro() {
        int perimetro = lato * 4;
        return perimetro;
    }
    public int area() {
        int area = lato * lato;
        return area;
    }
}
La mia soluzione funziona però vorrei capire se concettualmente è più corretto fare le "operazioni" all'interno del metodo main (come fatto nella soluzione proposta dal manuale) oppure all'interno del costruttore (come fatto da me).