Я смотрю на изучение Java, и в настоящее время я изучаю настройки классов. Я вижу, что наиболее распространенным способом создания сеттера является нечто подобное.Переменные стека в Java (новичок)
class Apple{
private String _name;
//Setters
public void setName(String name){
_name = name;
}
}
Я привык к C, поэтому этот код вызывает у меня вопрос. Если я устанавливаю _name = name в функции, после того, как эта функция будет завершена, и его стек будет отброшен, почему переменная _name все еще сохраняет правильное значение? Это сбивает с толку, потому что в C, если я укажу указатель на другой указатель внутри такой функции, это, вероятно, вызовет ошибку сегментации (поскольку имя является временной переменной).
Вы назначаете ссылки на объекты. '_name' не ссылается (или указывает) на' name', поэтому не имеет значения, что 'name' будет удалено. – Tom
Java ориентирован на объекты, C нет. Java имеет экземпляры объектов, когда C не работает. – Chisko
использовать «this» для обращения к текущему объекту –