Зачем нужны методы доступа?
В Java принято писать геттеры и сеттеры к переменным, а сами переменные делать приватными.
Причины 3:
1) После того, как код написан и пару лет поработал, будет легко добавить функциональность в геттер или сеттер не изменяя кода, которых их использует.
2) Инкапсуляция. Например так можно разрешить читать значение переменно, но запретить изменять его.
3) Соглашение JavaBeans требует этого + есть стандарт на имена геттеров и сеттеров.
С# клон Java, поэтому 2 первый причины тут так-же действуют
Но Microsoft всегда все усложняет, поэтому в язык были добавлены свойства.
Они те же геттеры\сеттеры, только с вырви глазным синтаксисом и кучей новых ключевых слов.
@PokimonFromGamedev ты не совсем прав.
Да, первые две причины действительно действуют именно так. Но в первом случаем мы объявляем просто метод, а вот втором проперти.
Это не играет роли ровно до того момента, когда нужно производить связывание данных, а вот там это различие становится важным.