Creare le variabili come "private" e poi creare i metodi public get/set è abbastanza equivalente al creare le variabili direttamente "public". Dipende tutto dal contesto, come ti hanno già consigliato, se devi realizzare un applicativo per lavoro è abbastanza consigliato(ma non obbligatorio) creare i metodi get/set....se stai realizzando un'applicazione x i fatti tuoi allora puoi gestire la situazione nel modo in cui ti viene più comodo.
Ps obj.campo nella stessa classe va bene. AltraClasse.obj.campo è un po meno simpatica come cosa