Java

Автоматизация тестов!

Автоматизация тестов вам позволит сэкономить массу времени на проверку вашей программу и даст вам уверенность в том, что все что вы написали работает именно так, как задумано. Ну при условии, что вы написали все нужные проверки. 

Автоматизированные тесты, или коротко просто тесты, это специальные программы, которые будут проверять правильность работы ваших классов и методов, запуская их и проверяю их результат. 

Все современные среды для программирования как Intellij IDEA, PyCharm позволяют в удобном виде отображать результаты тестов. 

И так, напишем свой первый тест. 

Читать дальше →
488 22 Alisher Alikulov
Анимация и двойная буферизация при рисовании

В этой статье я создам простое приложение с анимацией. Если кто-то уже пробовал делать анимацию, наверное столкнулись с проблемой моргания при перерисовке. Я также покажу как избавиться от этого моргания используя двойную буфферизацию. Это значит что программа будет рисовать сначала не на экране, а в памяти, только потом будет перерисовывать на экране, и только те пиксели, которые изменились. Таким образом мы избавимся от морганию и сделаем анимацию гладкой и красивой. 

Итак, приступим. 

Создадим основной класс AnimationApp

Читать дальше →
706 10 Alisher Alikulov
Работа с формами и рисование(график)

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

Как пример возьмем функцию sin(x). В приложение добавим возможность указывать цвет графика и название графика, чтобы было немного прикольно. 

И так приступим...

Читать дальше →
2109 9 Alisher Alikulov
Как я решил задачу "Покер"

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

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

Начало
Первая задача это генерация наборов карт. В стандартной колоде всего 52 карты, 4 масти(suit) и 13 достоинств(rank). У каждой карты есть ее достоинство и масть. Сначала я решил создать класс, который будет представлять одну карту и у которого будут два свойства: Достоинство и Масть. 

Читать дальше →
656 18 Alisher Alikulov
Рекурсия

Рекурсия - это когда что-то находится внутри себя или является частью самого себя. 

Например вот:

Рекурсия в Java

В программировании рекурсией называется когда какая-либо функция вызывает саму себя. 

 

Читать дальше →
522 12 Alisher Alikulov
Как писать в стиле ООП?

В этой статье кратко расскажу как нужно писать в стиле ООП, зачем он нужен и в чем его особенность. 

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

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

Читать дальше →
1419 10 Alisher Alikulov
Ввод и вывод данных с Консоли

В Java есть понятия "Стандартный ввод" (Systen.in) и "Стандартный вывод" (Systen.out). По умолчанию стандартный ввод и вывод связаны с Консолью, откуда запускается программа. Поэтому если мы хотим вывести данные в консоль, мы пишем в стандартный вывод(System.out) :

System.out.println("Я пишу в стандартный вывод");

Также чтобы чтобы считать данные с консоли нужно считать данные из стандартного ввода (System.in). Но, объект System.in сам по себе позволяет считывать данные только по байтам и это очень неудобно.

System.out.read();

Но, мы можем использовать другие классы, которые будут нам помогать считывать из стандартного ввода полноценные строковые данные. 

Читать дальше →
1186 9 Alisher Alikulov
Каты на каждый день

Что такое Каты? 

Это короткие упражнения, которые нужно повторять регулярно, чтобы держать себя в форме. С каждым разом у человека эти упражнения будут получаться все лучше и лучше. 

 

Каты на каждый день

 

В программировании также можно использовать каты, чтобы держать себя всегда в форме. Для этого нужно определенные задачи решать каждый день (желательно утром). При этом с каждым разом можно решать по разному, улучшая скорость решения, выполнения или чистоту кода. Самое главное: каждый раз писать код с нуля. 

Читать дальше →
575 6 Alisher Alikulov
Классы: Холодильник и Еда

Задача: Написать класс Холодильник, в который можно класть Еду, проверять заполненность и т.п. 

Решение:
Создаем класс Food представляющий Еду

public class Food {
    public String name;
    public int size = 10;

    public Food(String name, int size){
        this.name = name;
        this.size = size;
    }
}

 

Читать дальше →
479 10 Alisher Alikulov