qual a diferença de usá-los na prática?
Hmmm.
Para entender a diferença na prática, precisamo praticar, praticar, praticar.
Sem partir para discussões de crenças, há quem acredite que:
a consulta e alteração do estado de objetos devem ser feitos através de métodos.
Trecho de texto copiado de Class:
The behavior of class or its instances is defined using methods. Methods are subroutines with the ability to operate on objects or classes. These operations may alter the state of an object or simply provide ways of accessing it.[6] Many kinds of methods exist, but support for them varies across languages. Some types of methods are created and called by programmer code, while other special methods—such as constructors, destructors, and conversion operators—are created and called by compiler-generated code. A language may also allow the programmer to define and call these special methods.