ТРЕТЬЯ ПРОГРАММА

ТРЕТЬЯ ПРОГРАММА.
Продолжим знакомиться с методами и учиться работать с ними.
Вернемся к нашему прежнему проекту Box.
Теперь будем создавать коробки, сравнивать их объемы и выводить наибольший…
Условие поставленной задачи может звучать так: «…найдите самую большую коробку…»
Для решения такой задачи нам не понадобится выводить значение всех коробок, потому что нам нужна одна коробка – самая большая. Воспользуемся условным оператором и будем проверять объемы наших коробок…
Открываем наш проект Box и начинаем изменять код программы.
Заходим в класс Box.
Вспоминаем из чего состоит метод:
public
static
void
maim
(     )
{     }
тип доступа
принадлежит классу
тип возврата
имя метода
параметры
тело метода
Public – общедоступный, мы не указываем потому что наш метод находится в одном классе с объявленными переменными. Можно дописать – и ничего не изменится.
Static – не пишем, потому что метод и так объявлен внутри класса в котором и выполняется вычисление.
Void – тип возврата, который ничего не возвращает. А нам нужно чтобы возвращал, так как мы не знаем какая коробка самая большая. Поэтому убираем void, но появится ошибка! Потому что java язык строго типизированный. Значит нужно указать тип данных. Наши переменные имеют тип doubleàи метод будет иметь такой же тип.
Для тех, кто не понял: у кошечек рождаются котята, у уточек рождаются утята, у методов, которые вычисляют объем работая с переменными типа double результат тоже будет double

Переходим в класс Dispatcher:
Документируем строки
// myBox2.vol(); //вызов метода
//myBox1.vol();
И вместо них начинаем проверять с помощью условного оператора:
компилируем нашу именную программу.

 Третья программа*
Создадим еще две коробки и среди всех имеющихся у нас коробок найдем самую большую…
Прежде чем проверять объемы условным оператором, давайте вспомним как составляются логические выражения.
Оператор
Описание
&
Логическое AND (И)
&&
Сокращённое AND
|
Логическое OR (ИЛИ)
||
Сокращённое OR
^
Логическое XOR (исключающее OR (ИЛИ))
!
Логическое унарное NOT (НЕ)
&=
AND с присваиванием
|=
OR с присваиванием
^=
XOR с присваиванием
==
Равно
!=
Не равно
?:
Тернарный (троичный) условный оператор
Таблица истинности:
A
B
A | B
A & B
A ^ B
!A
false
false
false
false
false
true
true
false
true
false
true
false
false
true
true
false
true
true
true
true
true
true
false
false
Кроме стандартных операторов AND (&) и OR (|) существуют сокращённые операторы&&и||.

Если взглянуть на таблицу, то видно, что результат выполнения оператора OR равен true, когда значение операнда A равно true, независимо от значения операнда B. Аналогично, результат выполнения оператора AND равен false, когда значение операнда A равно false, независимо от значения операнда B. Получается, что нам не нужно вычислять значение второго операнда, если результат можно определить уже по первому операнду. Это становится удобным в тех случаях, когда значение правого операнда зависит от значения левого.
И теперь можно компилировать наш проект.
Учимся работать с методами, и составлять выражения внутри метода.
Откроем наш проект Box.
И так, мы знаем, что методы могут принимать параметры. Это означает что метод с параметрами может принимать самые разные значения и применяться в самых разных случаях. Посмотрим же как именно метод принимает значения и что он обрабатывает.
Важно понимать два определения:
Параметр- это определенная в методе переменная, которая принимает заданное значение при вызове метода.
Аргумент - - это значение, передаваемое методу при его вызове.
Наш проект очень громоздкий … И это при том что мы создали только 4 коробки. Представьте каким будет громоздким код если мы создадим в 10 раз больше коробок.
Сегодня мы выучили два правила – параметр и аргумент. Давайте попробуем разобраться с этими правилами и их понять.
Читая правило о параметре понимаем, что есть переменная, которая принимает значение… Смотрим в наш код программы и видим: действительно у нас в методе есть три переменные depht, height, width они принимают аргументы (значения), те что мы им присваиваем в классе Dispatcher. Если метод принимает значения, значит мы можем определить параметр внутри метода и попробовать упростить код программы.
Для этого в классе Box произведем некоторые изменения, а именно:
1.     Изменим название переменных
Depht на d, height на h, width на w
2.     И передадим эти переменные в метод как параметр.

Предварительно вспомни про тип, который возвращает метод! Будет ли этот метод что-то возвращать??? Раз наш метод ничего возвращать не будет а будет вычислять объем по переданным параметрам, то тип данных нужно поменять на void и введем еще одну переменную double volume.

3.     Переходим в класс Dispatcher.
Удаляем присваиваемые значения b1.depht, b1.height, b1.width
Документируем условный оператор или удаляем его тоже.
И вызываем наш метод, в который запишем параметры коробки. Я показываю вам на примере одной коробки, но вам по образцу будет не сложно выполнить это для всех остальных коробок. После чего можно компилировать.
Вы приятно удивитесь, тому как уменьшится код программы
теперь выберем самую большую коробку:

Немає коментарів:

Дописати коментар