A private field is available to all objects of that class.

A further restrictive feature is available using the private[this] qualifier.
With this in place objects can only access their own private methods. This is a common feature in OO language, sometimes known as object private

When you build a class with this designation neither getters or setters are generated for the object.

class Car {
  private[this] var internal_model = "XX99"

If you have two car objects you will not be able to call internal_model on the car objects from inside another car object (seems obvious). But since private fields behave this way exist a more restrictive methodoloy is needed.