ПРИМЕР
Человек
У каждого человека есть ИМЯ, ФАМИЛИЯ, ВОЗРАСТ и по сути это публичные данные и они не для кого не секретные и мы можем с ними спокойно работать. Тоже самое касается с методами. Человек может Ходить, Писать код, Рисовать, Говорить. И если на это посмотреть со стороны кода, разработчик, который писал КЛАСС, предусмотрел, что из любого места его приложения (когда человек будет использовать КЛАСС, то он всегда может обратится к этим свойствам и этим методам. И при этом логика работы программы не нарушится.
Но помимо всего есть и закрытая часть (то с чем мы не можем работать, то — на что мы не можем повлиять). Например как Сердце качает кровь, как организм переваривает пищу, как организм обрабатывает информацию. Это скрытая часть, которая находится внутри самого человека, которую из вне повлиять мы не можем.
Для того чтобы делать какие-то методы и свойства публичными или приватными существует модификаторы доступа private или protected.
Свойства и методы, которые помечены модификатором private можно использовать только внутри класса. Вызвать их из вне невозможно.
Если придумать более близкий к написанию кода пример то допустим у нас некоторый класс database. И у этого класса есть свойства url — для подключения к базе данных и port. При этом разработчик, который пишет этот класс понимает, что если каким-то образом кто-то решит изменить url, то подключение к базе данных отвалится и класс перестанет работать. Именно по этой причине он делает этот свойство приватным и единственным способом установить значение url и port — это конструктор класса. Т.е. мы единожды, при создании, создаём эти параметры и затем про них забываем.