Messa così la domanda chiama in gioco una varietà di questioni, penso che il tuo dubbio sia più specifico. Sparando nel mucchio potremmo dire che:
non prendi variabili da classi, perchè non sono "static". Le prendi da un'istanza. E' questo che ti costringe a dover dire sempre "d.x", "d.y" eccetera. Ti serve "d";
il fatto di prendere una variabile nel linguaggio corrisponde ad un'espressione e questa espressione può apparire nel corpo di una classe solo se è parte di un enuciato. E' da qui che discende l'inammissibilità di:
Codice:
class bingo {
Device d = new Device();
d.x = 10;
}
"d.x = 10" non è parte di un enunciato ma di un'espressione. A titolo di curiosità, potresti invece dire:
Codice:
class bingo {
Device d = new Device();
int pippo = (d.x = 10);
C'è la stessa espressione ma questa volta sta in un enunciato (l'inizializzazione contestuale alla dichiarazione di pippo).
Non so però se questo risolva il tuo dubbio.