Let me remind you that the initial idea behind Page Objects was to encapsulate (read: hide) logic of working with page elements. Tests should not operate with page elements / locators / XPaths. Tests should use methods of Page Object instead. So, if you even declare fields for page page elements, please, make them private!

Let methods of Page Object be public and fields private.

Otherwise OOP is just nonsense.

Let me remind you that the initial idea behind Page Objects was to encapsulate (read: hide) logic of working with page elements. Tests should not operate with page elements / locators / XPaths. Tests should use methods of Page Object instead. So, if you even declare fields for page page elements, please, make them private!

Let methods of Page Object be public and fields private.

Otherwise OOP is just nonsense.