Spiegazione Sorgente Rettangolo

di il
3 risposte

Spiegazione Sorgente Rettangolo

Buongiorno a tutti, sono uno studente di ingegneria dell'informazione al secondo anno di università, sto seguendo il corso di principi di progettazione del software. Il docente ha cominciato a fare qualche esempio di java, ma io non ci ho capito un tubo . Quindi ho trovato sulla rete diversi manuali che ho stampato e divorato, ho ancora delle incomprensioni ma almeno ora se leggo del codice un buon 40% riesco a capirlo.
Ho trovato un PDF con degli esercizi già svolti e siccome per imparare il C apparte studiarlo sui libri ho dovuto leggere tantissimo codice, che fortunatamente era ben commentato, ho pensato bene di stampare anche quello, solo che questo PDF non ha il codice documentato, o per lo meno non è abbastanza documentato da far capire ad un neofita cosa si sta eseguendo dichiarando un metodo.
Adesso vi chiedo di spiegarmi i metodi get... all'interno del codice.

public class Rettangolo {
	private int b, h, X, Y ;
	public Rettangolo(){
		b = 1;
		h = 5;
		X = 0;
		Y = 0;
	}
	public Rettangolo(int base, int altezza, int ascissa, int ordinate){
		b = base;
		h = altezza;
		X = ascissa;
		Y = ordinate;
	}
	public int getBase(){
		return b;
	}
	public int getAltezza(){
		return h;
	}
	public int getAscissa(){
		return X;
	}
	public int getOrdinate(){
		return Y;
	}
	public void setBase(int nuovabase){
		b = nuovabase;
	}
	public void setAltezza(int nuovaltezza){
		h = nuovaltezza;
	}
	public void setAscissa(int nuovascissa){
		X = nuovascissa;
	}
	public void setOrdinata(int nuovordinata){
		Y = nuovordinata;
	}
	public void traslazione(int trX , int trY){
		X = X + trX;
		Y = Y + trY;
	}
	public int getPerimetro(){
		return (b + h) * 2;
	}
	public int getArea(){
		return b * h;
	}
}
Spero di non chiedere tantissimo e mi scuso per il disturbo anticipatamente sia per questo post che anche per i prossimi perchè come linguaggio, non essendo ancora abituato a ragionare in OO, è abbastanza ostico da me che vengo dal C lineare e senza oggetti ma solo con piccole funzioni.

3 Risposte

  • Re: Spiegazione Sorgente Rettangolo

    I metodi get e set servono per migliorare la sicurezza con la visibilita' di attributi del programma al mondo. Come vedi nel tuo esempio gli attributi di classe sono privati quindi visibile(utilizzabili) solo dall'oggetto stesso e non da altri. In java non e' definito come in c# dove proprio nella teoria c'e la differenza tra attributi(variabili) e proprieta'(get set) che hanno strutture del codice appositamente dedicati. Non ricordo bene la teoria ma le proprieta' a differenza degli attributi sono i valori di attributi dopo apposite elaborazioni, per esempio il calcolo della velocita' puo essere una proprieta' mentre il tempo e lo spazio sono degli attributi. Nel mondo java invece i get e set sono per lo piu' dedicati all'accesso di variabili privati, e anche se non l'ho capito a pieno(per questo non riesco a spiegartelo meglio ) mi piace di piu' il modo di pensare in c# che e' piu' coerente, anche perche se metto dei metodi get e set pubblici a una variabile privata, non ha piu senso che quest'ultima rimanga privata.
  • Re: Spiegazione Sorgente Rettangolo

    Ciao Marco, anche io sono un neofita di java però ho le conoscenze essenziali per spiegarti i metodi set e get. Lo si può capire dalle parole stesse in quanto get significa "ottenere" e set lo si può tradurre con "settare",questi due metodi rispettivamente ottengono dei dati immessi in un determinato metodo e settano i dati immessi (dopo ti commento il codice e di faccio un esempio di settaggio) quindi se tu scrivessi :
    
    int c = 0
    public void getnumero(){
    
    return c}
    farai capire alla virtual machine che deve ritornare il valore di c(ovviamente al posto di "getnumero" puoi scrivere qualunque altra cosa).Mentre se si trattasse di un metodo set come ad esempio
     public void set(int base){
    c=base
    }
    adesso qui tu hai "settato" la base tramite la variabile c ottenuta dal metodo getnumero.

    Spero di essere stato chiaro se hai qualche dubbio chiedi pure

    Commento il tuo codice
    public class Rettangolo {
       private int b, h, X, Y ;
       public Rettangolo(){
          b = 1;
          h = 5;
          X = 0;
          Y = 0;
       }
       public Rettangolo(int base, int altezza, int ascissa, int ordinate)//Inserisci il valore di base,altezza,ascissa,ordinate i quali vengono presi dai metodi get e settati dai metodi set{
          b = base;
          h = altezza;
          X = ascissa;
          Y = ordinate;
       }
       public int getBase()//Ottieni il valore la Base{
          return b;
       }
       public int getAltezza()//Ottieni il valore del'altezza{
          return h;
       }
       public int getAscissa()//Ottieni il valore delle ascisse{
          return X;
       }
       public int getOrdinate()//Ottieni il valore delle ordinate{
          return Y;
       }
       public void setBase(int nuovabase)//Setti le ascisse con la variabile ottenuta da getBase{
          b = nuovabase;
       }
       public void setAltezza(int nuovaltezza)//Setti le ascisse con la variabile ottenuta da getAltezza{
          h = nuovaltezza;
       }
       public void setAscissa(int nuovascissa)//Setti le ascisse con la variabile ottenuta da getAscissa{
          X = nuovascissa;
       }
       public void setOrdinata(int nuovordinata)//Setti le ordinate con la variabile ottenuta da getAscissa {
          Y = nuovordinata;
       }
       public void traslazione(int trX , int trY)//Effettui la traslazione {
          X = X + trX;
          Y = Y + trY;
       }
       public int getPerimetro())//ottieni il valore dell' area{
          return (b + h) * 2;
       }
       public int getArea()//ottieni il valore dell' area{
          return b * h;
       }
    }
  • Re: Spiegazione Sorgente Rettangolo

    Grazie a tutti Ora ho chiaro
Devi accedere o registrarti per scrivere nel forum
3 risposte