Объекты в методы передаются по ссылке, поэтому если в методе изменить значение поля объекта, то это изменение коснется исходного объекта.
Вызов одних методов класса из других методов этого же класса возможен без имени объекта или класса. Кроме того, в методе meth() ссылка p указывает на тот же самый объект, что и ссылка point в методе main(). Чтобы избежать подобных ситуаций, следует создавать в методе локальную копию объекта.
При описании класса могут быть использованы логические блоки. Логическим блоком называется код, заключенный в фигурные скобки и не принадлежащий ни одному методу текущего класса.
{ /* код */ }
Логические блоки чаще всего используются в качестве инициализаторов полей, но могут содержать вызовы методов как текущего класса, так и не принадлежащих ему. При создании объекта класса они вызываются последовательно, в порядке размещения, вместе с инициализацией полей как простая последовательность операторов, и только после выполнения последнего блока будет вызван конструктор класса. Операции с полями класса внутри логического блока до явного объявления этого поля возможны только при использовании ссылки this, которая, как и в С++, представляет собой ссылку на текущий объект.
Логический блок может быть объявлен со спецификатором static. В этом случае он вызывается всегда перед вызовом статического метода данного класса.