Beh io creerei dei metodi di tipo public per fare una cosa del genere:
codice:
 
oggetto1.scambiaColore(oggetto2.getColore);
Certo si può fare anche come dici tu.
Non vedo dove sia il problema, basta definire metodi appositi, ad esempio, facendo come vuoi tu nella classe devi definire un metodo:
codice:
//All'interno della classe Oggetto
//....
private String colore
//.....

public String getColore(){return colore;}

public void scambiaColore(oggetto ogg){
 colore = ogg.getColore();

//.....
}
Beh, non so se sono stato chiaro.