February 18, 2020

Программирование в Java 3

Настало время знакомится с библиотеками в Java.

Библиотека - это готовый набор методов(функций) для решения каких-либо задач.

Они бывают

Внутренние - уже встроенные в Java.
Внешние (подключаемые) - сторонние, подключенные в ручную.

Библиотеки хранят множество готовых решений для каких-либо задач, их очень много и вы сможете их использовать для своих приложений, честно говоря иногда встречаются такие, в которых разобраться сложнее чем написать такую-же, по этому перед использованием библиотеки стоит задуматься, не будут ли они излишними?

Очень часто в программирование (в статьях, книгах..) можно встретить такую фразу "не изобретайте велосипед", то есть некоторые вещи совсем не обязательно разрабатывать самостоятельно с нуля, можно просто использовать нужную библиотеку в которой это все уже реализовано.

P.S. Фраза "не изобретайте велосипед" одна из моих любимых, я часто спорю на эту тему. Дело в том, что не понятно в каком случае ты из изобретаешь велосипед и возможно твоя задача действительно используется во многих проектах и стоило бы использовать уже готовые решения, но большое НО все зависит от случая, как я уже говорил есть такие библиотеки в которых разобраться сложнее чем написать свою, почему бы в этом случае не написать свой "велосипед", если вы создатель этого чуда, вы должны понимать как она устроенна и какие в нем недостатки и в любой момент можете все починить.

Так, мне кажется на тему "Велосипедов" можно писать целую статью, мне есть что высказать. По этому я остановлю свою мысль и продолжу ее в другой статье. Как она выйдет здесь появится ссылка.

Позже вы сможете использовать сторонние библиотеки в своих проектах, а еще позже научитесь писать свои, а пока разберемся с одной из встроенных.

// Библиотека Math

В прошлой статье было очень много про вычисления, думаю стоит продолжить эту тему и прийти к какому-то завершению, по этому мы разберем библиотеку Math в которой есть множество методов(функций) для решения множества алгебраических действий (возведение в степень, синус, косинус...)

Давайте сходу напишем программу и будем разбираться на практике

Программа будет считывать два числа и выводи результат возведение в степень второго числа первое.

Также вы можете поработать с кодом в онлайн редакторе.

Для считывания данных нам нужен сканер, по этому импортируем его (1 строчка)
Внутри main (опять же для считывания данных) создаем объект сканера (5 строчка)
Просим ввести два числа, считываем их и записываем в переменные (7 - 10 строчку)
Далее выводим слово "Ответ:" и через пробел результат вычисления возведения в степень b, число a.

Как вы уже наверное догадались для использования библиотеки Math, нужно прописать Math и через точку имя метода, в скобках через запятую указываются параметры.

Метод pow возвращает (смысл слова возвращает - значение, которое вернется при вычислении) возведение в степень первого числа, во второе. Эти числа можно передавать в параметры (числа в скобках) через запятую.

Как мы можем с этим работать

Выводить в консоль

System.out.println(Math.pow(2, 4)); // Выведется число 2 в степени 4, 16

Записывать в переменную
не забывайте, что int работает только с целыми числами, если вам нужны дробные используйте double

int a = Math.pow(2, 4); // В переменную запишется число 16

Остальные методы в библиотеке Math
разберем основные, остальные прикреплю в удобном формате ниже (png, pdf, txt)

Нахождение максимального и минимального числа из двух значений

Math.max(1, 2); // 2
Math.min(1, 2); // 1

Квадратный корень

Math.sqrt(16); // 4.0 (типа double)


// Операции присваивания

Вы уже использовали один оператор присваивания, для присваивания значения переменной, это =

Суть оператора - присваивание значение, если до присваивания какой-то значение уже было установлено, оно перезапишется на новое.
Тут все просто.

Помните оператор инкрементации (++)? Можно обойтись и без него вот такой записью

int a = 0;
a = a + 1;

Берем изначальное значение переменной, прибавляем ему 1 и записываем в переменную.

В Java есть более легких способ работы с присваиванием, когда нам нужно вычислить какие-то действия с изначальным значением.

Пример

int a = 0;
a = a + 1; // Было так
a += 1;    // Стало так

По такому принципу можно использовать любой бинарный оператор.

int a = 1;

a += 1;    // 2
a -= 1;     // 1
a *= 2;    // 2
a /= 2;    // 1
a %= 1;   // 1

Также будет работать и со строками

String str = "Первая строка";
str += " ";                         // Добавим пробел
str += "Вторая строка";   // Добавим вторую строку 

Теперь переменная str ровна - Первая строка Вторая строка

// BigDecimal

// Резюме