It's hard to say without knowing what you are trying to do (as distinct from how you are trying to do it).
a) The instance of Langkawi which has the variable
x of interest could be given a reference to the instance of SA that should know about changes of value. Have all changes to
x occur through a "mutator" method (setX()) which calls some method of SA to notify it of the change.
a2) Make
x a
bound property of Langkawi.
b) The instance of SA that is to use the value of the variable
x could have a reference to the instance of Langkawi which has the value. The SA instance should use an "accessor" method (getX()) whenever it wants the value.
c) The design could be changed so that SA no longer depends so strongly on Langkawi. Whatever behaviour it is that SA wants could be expressed as an interface that Langkawi implements. As in (b) the SA instance is given a reference to the Langkawi instance of interest (now as an instance of the interface). Whenever the SA instance wants the behaviour to occur it
doesn't ask the Langkawi instance what its x value is, but tells it to perform the desired behaviour.