Y sirve para obtener o setear un valor. Las propiedades no se puede auto setear o auto obtener por que tendrias un problema de "overflow" por eso se utiliza una variable extra que sirve para almacenar el valor.
Las propiedades pueden tener un SET y GET de forma independiente, por ejemplo si queres tener una variable publica que no se pueda modificar entonces podes usar una propiedad que solo implemente GET.
Si queres controlar de que manera se asigna el valor de una variable tendrias que implementar SET.
Eso es toodo no hay mas magia.
Las propiedades pueden tener un SET y GET de forma independiente, por ejemplo si queres tener una variable publica que no se pueda modificar entonces podes usar una propiedad que solo implemente GET.
Si queres controlar de que manera se asigna el valor de una variable tendrias que implementar SET.
Eso es toodo no hay mas magia.