Class Вох {
douЫe width;
douЫe height;
douЫe depth;
douЫe volume
(
) {
return width * height * depth;
}
void setDim
(douЫe w, douЫe h, douЫe d) {
width = w;
height = h;
depth = d;
Java
Разве так можно связывать внешние переменные с переменными метода?
Конечно можно, обычная практика.
И вы их не связываете, те переменные которые вы передали с внешней стороны они существуют сами по себе, а в классе у вас своя копия значений. Т. е. изменив внешние переменные вы не поменяете таким образом значения в классе.
Я вам даже больше скажу. Вот так любят все писать да и сам тоже так пишу.
void setDim(double width, double height, double depth) {
this.width = width;
this.height = height;
this.depth = depth;
}
т. е. передавать такие же имена в параметрах метода как и внутри класса объявлены. Чтобы при вызове метода, чётко понимать какие параметры нужно передавать. По одной букве не всегда это понятно. Вы ведь не один пишите код, в компании много программистом и всегда нужно поддерживать чужой код.
Исключение состовляют кастомные объекты.
Например:
в классе Box у вас есть переменная Box2 box2 и метод
setBox2(Box2 box2) {
this.box2 = box2);
}
Вот так делать нельзя и именно в этом случаи вы связываете внешнюю переменные с переменной класса.
Присвоив их в такой манере, вы сможете изменить значения внутри Box2 извне класса Box, что очень плохо, поэтому нужно создавать клон объекта либо передавать значения, а из него уже создавать новый Box2 внутри Box. Чтобы объекты были развязаны между внутренним представлением и внешним.
И вы их не связываете, те переменные которые вы передали с внешней стороны они существуют сами по себе, а в классе у вас своя копия значений. Т. е. изменив внешние переменные вы не поменяете таким образом значения в классе.
Я вам даже больше скажу. Вот так любят все писать да и сам тоже так пишу.
void setDim(double width, double height, double depth) {
this.width = width;
this.height = height;
this.depth = depth;
}
т. е. передавать такие же имена в параметрах метода как и внутри класса объявлены. Чтобы при вызове метода, чётко понимать какие параметры нужно передавать. По одной букве не всегда это понятно. Вы ведь не один пишите код, в компании много программистом и всегда нужно поддерживать чужой код.
Исключение состовляют кастомные объекты.
Например:
в классе Box у вас есть переменная Box2 box2 и метод
setBox2(Box2 box2) {
this.box2 = box2);
}
Вот так делать нельзя и именно в этом случаи вы связываете внешнюю переменные с переменной класса.
Присвоив их в такой манере, вы сможете изменить значения внутри Box2 извне класса Box, что очень плохо, поэтому нужно создавать клон объекта либо передавать значения, а из него уже создавать новый Box2 внутри Box. Чтобы объекты были развязаны между внутренним представлением и внешним.
Да, иначе зачем они нужны.
Они отличаются лишь тем, что глобальные видны во всех методах, а локальные - только в одном.
Похожие вопросы
- Зачем создают приватные переменные, а затем делают их общедоступными через публичные методы?
- почему одни переменные могут объявлять буквы другие цифры?
- Как сравнить элементы массива с другой переменной?
- Переменная в for loop
- Как влияет использование модификатора final на локальные и глобальные переменные в Java
- почему выгодно переменные обявлять до цикла а не в цикле
- Сравнение двух переменных на java
- Помогите пожалуйста написать методы,java, Кто даст ответ дам 100 балов подарком ОТВЕТ ДАЙТЕ СЕГОДНЯ ЭТО СРОЧНО!!!!!!!!!!
- Где лучше обрабатывать исключения, напрямую в методе который их может создать или пробрасывать дальше через throws
- Почему в Java метод main является static? Почему в Java метод main является static?