Сейчас постараюсь объяснить своими словами, а ниже прикреплю более полную и точную информацию.
0.
age - приватная переменная, которая доступна только в пределах этого класса.
1.
GetAge() - публичная (открытая для всех классов) функция, которая
возвращает значение приватной (скрытой от других классов) переменной. Часто называют геттер, от слова Get.
2.
SetAge() - публичная функция, которая
устанавливает значение приватной переменной. Называется сеттер, от слова Set.
Для чего это нужно?
В первую очередь, для
безопасности, а также:
- соблюдение одного из основных принципов ООП (на котором и построен C#) -
инкапсуляция.
- для того, чтобы нельзя было напрямую изменять переменную из других классов.
- для того, чтобы задавать дополнительные условия.
Например, в SetAge() можно написать условие, при котором возраст можно указать только в пределах от 0 до 100, это позволит избежать множества ошибок.
Также в C# существует более удобный синтаксис:
public int Age { get; set; }
Это если нужно просто принимать или устанавливать значение, также set или get можно вообще не писать, если он не нужен. А для более сложной логики можно написать так:
private int _age;
public int Age
{
get
{
return _age;
{
set
{
if(value > 0) _age = value;
}
}
Статья на docs.microsoft:
https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...
Статья про инкапсуляцию и для чего нужны get/set:
https://metanit.com/sharp/tutorial/3.4.php