Возможно ли, чтобы я программно менял переменную от public к private в вызове функции класса?
Нет, невозможно изменить переменную от публичной до частной.
Используйте модификаторы доступа (сеттеры, геттеры) и установите частную собственность в общедоступное свойство.
Вы не можете изменить видимость собственности.