У чому відмінність void від return на прикладі
Ось приклад коду, який з void виводить значення main() і надає змінно "c" значення. Поясніть на відміну від return тоді. Тільки просто аля 2 + 2, щоб такі приклади не збивали з пантелику. Дякую.
ти своїм void методом просто записуєш значення змінної "c", а потім просто виводиш її на екран. Якби метод був би такого виду:
то можна було б отримати змінну "c" з цього методу, тобто звертаючись System.out.println(nn.getJazz(12,12); Якби змінна "c" мала модифікатор доступу private, то ти не зміг би звернутися до неї так, як у твоєму прикладі. Спробую пояснити на пальцях.Візьмемо твій приклад.
Яке значення із void? Ти ж викликаєш просто: nn.GetJazz(12,12); і тільки потім уже, наступним оператором друкуєш поле nn.c Перший рядок просто викликає метод (в даному випадку - процедуру), який нічого не повертає (тобто "повертає" void) А другий Рядком ти дивишся вміст поля c у свого класу. ЦЕ РІЗНІ рядки; між собою ніяк не пов'язані!
Забери в себе c=a+b і залиш просто a+b - і все, виведеться лише сума зсередини методу.
Так само ти можеш написати і sin(c=a+b) Це означатиме, що спочатку обчислиться сума a+b, її значення буде присвоєно c і одночасно повернуто як значення виразу с=a+b. Від значення цього виразу буде взято синус. Але він нікуди не буде присвоєно; просто займе проц обчисленнями, а результат буде викинутий. У результаті ти також отримаєш значення c. Однак значення синуса – ні :).