Суббота, 04.01.2025
Приветствую Вас Гость

Шенденков С.В.
(Zmey)

Если Вы хотите вернуться на предыдущий язык, то нажмите кнопку Назад в Вашем браузере
Выбрать язык / Choose language:
Ukranian
English
French
German
Japanese
Italian
Portuguese
Spanish
Danish
Chinese
Korean
Arabic
Czech
Estonian
Belarusian
Latvian
Greek
Finnish
Serbian
Bulgarian
Turkish
Главная | Регистрация | Вход | RSS

Простой калькулятор на Java

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

Первое, что нам необходимо сделать, это создать новый проект консольного приложения и назвать его, например MyCalculator. После создания нового проекта мы конечно же увидим основной класс приложения, в котором можно описать всю логику калькулятора. Но чтобы научиться чему-то новому и чтобы просто было интересно давайте дополнительно в нашем проекте задействуем интерфейс Java. Интерфейс в Java - это специальная конструкция, которая описывает обязательную структуру использующего её класса. Более простым языком это означает, что если мы хотим создать объект, то для этого нам необходимо определить класс этого объекта. А если нам необходимо задать правила построения этого класса, то нам необходим интерфейс. Это очень важная вещь при наследовании классов. Про наследование классов мы поговорим попозже, а сейчас мы научимся работать с интерфейсом.

Если мы посмотрим в левой части NetBeans'a на структуру проекта, то увидим что наш основной класс лежит в определённо папке. Эта папка и является его пакетом. Теперь нажмём на этот пакет правой кнопкой мыши и выберем раздел Создать. Здесь мы увидим много различных элементов, которые мы может создать прямо сейчас. Давайте создадим новый Интерфейс Java и назовём его PrimitiveCalculator. Как мы видим внешне его структура абсолютно такая же как и у класса, но вместо ключевого слова class здесь имеется ключевое слово interface.

Главное отличие интерфейса от класса в том, что здесь не описывается объект, а только объявляется какими обязательными элементами он должен обладать объект, если его класс будет использовать данный интерфейс. Приведём наш интерфейс к такому виду:

package zmey_console_calculator_example;

/**
 * Интерфейс примитивного калькулятора
 *
 * @author Zmey
 * @author http://shendenkov.at.ua
 */
public interface PrimitiveCalculator {

    public double add(double a, double b);
    public double sub(double a, double b);
    public double mul(double a, double b);
    public double div(double a, double b);
}

Как видите интерфейс довольно простой и лаконичный. Здесь объявляются 4 метода, которые обязательно должны быть описаны в классе который будет использовать этот интерфейс.
Теперь давайте вернёмся к нашему основному классу и приведём его к следующему виду:

package zmey_console_calculator_example;

/**
 * Простой калькулятор
 *
 * @author Zmey
 * @author http://shendenkov.at.ua
 */
public class MyCalculator implements PrimitiveCalculator {

    public MyCalculator(double a, String o, double b) {
        if (o.equals("+")) {
            System.out.println(a + " + " + b + " = " + add(a,b));
            return;
        }
        if (o.equals("-")) {
            System.out.println(a + " + " + b + " = " + sub(a,b));
            return;
        }
        if (o.equals("*")) {
            System.out.println(a + " + " + b + " = " + mul(a,b));
            return;
        }
        if (o.equals("/")) {
            System.out.println(a + " + " + b + " = " + div(a,b));
            return;
        }
        System.out.println("Unknown operation");
    }

    public double add(double a, double b) {
        return a + b;
    }

    public double sub(double a, double b) {
        return a - b;
    }

    public double mul(double a, double b) {
        return a * b;
    }

    public double div(double a, double b) {
        return a / b;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length >= 3) {
            new MyCalculator(Double.valueOf(args[0]), args[1], 
                    Double.valueOf(args[2]));
        } else {
            System.out.println("Enter parameters like this: 1 + 1");
            return;
        }
    }
}

Давайте разберёмся, что здесь описано. Добавилось ключевое слово implements, которое как бы подключает используемый интерфейс PrimitiveCalculator. В конструктор принимаются параметры типа double и String, описывается вся логика работы калькулятора с помощью методов add, sub, mul и div. Эти метода как раз и являются теми методами, которые обязательно должны присутствовать в нашем классе, потому что мы используем созданный ранее интерфейс. Также мы используем ключевое слово return, после которого идёт возвращаемое значение этого метода если он что-то возвращает. Это ключевое слово сразу же прекращает выполнение метода, в котором оно вызвано. Оно обязательно должно присутствовать в методе. Для методов, которые ничего не возвращают его можно не указывать - NetBeans автоматически его подставляет неявным образом.

Обратите внимание, что в методе main мы создаём новый объект типа MyCalculator, но не помещаем его ни в одну переменную и он сразу же исчезает. Что, естественно, не имеет никакого смысла, если бы нам необходимо было его использовать дальше и поэтому NetBeans пометит это как предупреждение. Но тем не менее объект на мгновение создаётся и в процессе создания выполняет все необходимые нам операции.

Для выполнения программы ей необходимы 3 параметра, а именно число, операция и число. Прямо как в математике. Чтобы их передать программе необходимо её запускать в командной строке и через пробел после названия программы писать параметры. Но эти параметры можно задать и в NetBeans для проверки работы программы. Для этого нажмём правой кнопкой мыши на текущий проект, выберем Свойства, перейдём в категорию Выполнить, в поле Аргументы укажем необходимые нам аргументы и нажмём OK. Теперь как только мы будем запускать этот проект в NetBeans, он автоматически будет подставлять эти параметры в метод main. Всё как пользователь будет делать вручную в командной строке.


Нравится


Гость
Сообщения:

Гость, мы рады Вас видеть.
Пожалуйста зарегистрируйтесь или войдите под своим логином.
Поиск
«  Январь 2025  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Содержание
Наш опрос
Какой операционной системой Вы пользуетесь?

Результаты Архив опросов


Всего голосовало: 73
Обсудить опрос на форуме
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
free counters



Каталог сайтов Нашли.com - тематический каталог сайтов, поиск Каталог сайтов - Первый в WWW