|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Nov 2011
Messaggi: 5
|
java get/set
ragazzi è importante (domani è la verifica e non li ho capiti) fin'ora non ho mai avuto problemi in programmazzione.. fino agli oggetti in java li so fare, una class con il main e una (o più) con i metodi.. mi potete spiegare come si usano/dove si mettono/come si scrivono i metodi set e jet? spero nel vostro aiuto
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Un semplice esempio dovrebbe bastare. Se non ti è chiaro qualcosa domanda.
Codice:
public class Main {
public static void main(String[] args) {
Persona p1 = new Persona("tizio", 15);
System.out.println(p1);
System.out.println("anni: " + p1.getAnni());
p1.setAnni(20);
System.out.println(p1);
System.out.println("anni: " + p1.getAnni());
}
}
Codice:
public class Persona {
private String nome;
private int anni;
public Persona(String nome, int anni) {
this.nome = nome;
this.anni = anni;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return this.nome;
}
public void setAnni(int anni) {
this.anni = anni;
}
public int getAnni() {
return this.anni;
}
public String toString() {
return this.nome + "|" + this.anni;
}
}
Codice:
tizio|15 anni: 15 tizio|20 anni: 20 Ultima modifica di ndakota : 11-12-2011 alle 14:45. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2788
|
I metodi get e set servono al tempo stesso a nascondere l'implementazione interna e a preservare uno stato di consistenza dei dati.
Nei casi più semplici il primo punto non è evidente e ci si concentra di più sul secondo. Ti faccio un esempio classico e semplice: Codice:
class NumeroRazionale{
private int numeratore;
private int denominatore;
public NumeroRazionale(){
numeratore = 1;
denominatore = 1;
}
public void setNumeratore(int numeratore){
this.numeratore = numeratore;
}
public void setDenominatore(int denominatore){
if(denominatore == 0) throw new IllegalArgumentException("denominatore deve essere diverso da 0");
this.denominatore = denominatore;
}
public int getNumeratore(){ return numeratore; }
public int getDenominatore(){ return denominatore; }
...
}
Sul nascondere l'implementazione interna ti faccio un altro esempio, un rettangolo in un piano cartesiano: Codice:
class Rectangle{
float left;
float bottom;
float width;
float height;
public Rectangle(float width, float height){
if(height <= 0 || width <= 0)
throw new IllegalArgumentException("height and width must be positive");
this.left = this.bottom = 0;
this.width = width;
this.height = height;
}
public void setCenter(int x, int y){
this.left = x - this.width / 2;
this.bottom = y - this.height / 2;
}
...
}
Codice:
public Point getCenter(){
return new Point(this.left + this.width / 2, this.bottom + this.height / 2);
}
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Nov 2011
Messaggi: 5
|
ok ragazzi molto più chiaro.. in poche parole già li facevo sti passaggi inventanto un nome io al metodo invece che usare set e get.. grazie mille per la spiegazione a tutti a due
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:05.



















