Question: What is the "purist" or "correct" way to access an object's properties from within an object method that is not a getter/setter method?

```
String property = this.property;

```

or would you do:

```
String property = this.getProperty();

```

Answer: 
There is no correct way. It all depends on the circumstances:

* The main reason for using `this.property` is that it removes the need for getter and setter methods. This reduces code size, which is beneficial by itself since it reduces the overall costs of debugging and maintenance.
* The main reason for using `getProperty()` is that it lets you hide data structure refactoring from the rest of the code. For example, assume that you for some reason decide to move the `property` field to an embedded object `foo`. Then you can easily redefine `getProperty()` without affecting any other code:

`Object getProperty() { return foo.property; }`

If you are using frameworks like JPA you can also get performance benefits from using getters and setters, since the JPA framework can perform optimizations on these that are not possible otherwise.
It depends on the use-case:

If you want the method to see/get the class' (instance's)

* *internal* representation of the its property then use the former.
* *external* representation of the property **along with the class' (instance's) behaviour when the property is being fetched** then use the latter.