Джава-1
Привет. Ну чтож джава, так джава. (для хейтеров тег изучениеджава)
Данная статья будет нудной и скучной, но в конце будет пряник.
Java был создан компанией Sun Microsystems в 1995 и развивался до 2008. В 2009 для компании чуть не наступил п****ц и её поглотила Oracle, в которой на Java было положено вплоть до 2011. На данный момент джава (по некоторым данным) занимает первое место в рейтинге языков.
Говорить что Java - язык программирования не совсем верно. Скорее Java - система, включающая бла, бла, бла. Так говорят в целом несколько источников.
Что же такое Java простым языком? Будем считать Java рукой. Взгляните на руку, которая у вас на мышке (тачпаде, экране, ..). Разделим её <s>бензопилой</s> мысленно на плечо, предплечье, ладонь и пальцы. Как и части в руке, так и части (компоненты) в Java взаимодействуют между собой. Наверно единственное отличие в том, что Java может обходиться без пары-тройки частей, а поковырять в носу без пальцев будет трудновато.
Вам наверно хочется спросить: "Что же это за компоненты и как они взаимодействуют?".
Основным компонентом в системе Java является библиотека, в которой написано где, когда, почему и как всё это обязано работать. Основываясь на этих правилах человек и пишет код, который будет делать то, что нужно человеку. Такой код называется исходным.
Компилятор преобразует исходный код в файл написанный по правилам из всё той же библиотеки - исполняемый файл. Перевод кода понятного человеку в код для машины (компьютер, планшет, терминал ...) называется компиляцией.
Теперь у нас есть код скомпилированный по правилам библиотеки. И вот тут появляется основное отличие от многих из других языков. Многие языки при компиляции создают программу, заточенную под конкретную операционную систему и/или разрядность. То есть программа, написанная в MacOS не будет работать в Windows, или программа, написанная на старой Windows XP возможно не будет работать в семёрке, и наоборот. Представьте, что вы умеете играть на гитаре, но вдруг вам в первый раз дают в руки фортепьяно. Что-нибудь лёгкое (в траве сидел кузнечик) вы конечно сыграете, не сомневайтесь. Более сложная композиция, увы, вряд ли у вас получится. То же самое происходит и при попытке запустить программу, созданную в другой операционной системе (в дальнейшем ОС).
Java обходит эту проблему следующим образом. Формат и содержание скомпилированного в файл кода не зависят от ОС. Более того этот самый код вообще не понятен никакой из ОС. А понятен он только для специальной программы - Java Virtual Machine (JVM - виртуальная машина Java), которая написана на конкретные ОС (). Именно JVM преобразует скомпилированный код в понятный для конкретной ОС: JVM читает из файла с кодом определённую часть, обращается к библиотеке чтобы узнать что должна делать эта часть и переводит эту часть в язык понятный конкретной ОС. Скомпилированный в данном и подобных случаях код называется байт-кодом.
Скорее всего на вашем компьютере установлена JVM, с помощью которой работают несколько приложений. Помните я говорил, что Java может работать без некоторых частей? Так вот этими частями являются средства для разработки программ. Сейчас мы с вами их установим. Для начала нам нужна та часть с помощью, которой мы и будем программировать, возможно она у вас есть. Чтобы проверить это откройте командную строку и наберите: Java -version
Если у есть Java, то будет выдана её версия, у меня, например, стоит 1.8.0.73. Если нет, то идём сюда и качаем JDK SE (средства разработки на Java - стандартная) последней версии.
При установке вам предложат установить в C:\Program Files\Java\jdk(тут версия), Program Files лучше убрать. Установили? прекрасно. Зайдите в папку в которую вы установили Java и посмотрите, что же там есть: в папке jre находится всё необходимое для работы приложений написанных на Java (то есть если мы не хотим программировать на Java остальные папки нам не к чему); папка db служит для развёртывания Apache'евской базы данных (нам до туда как до луны пешком); include (в ней находятся с++ и c скрипты) пока тоже не для нашего внимания; лицензионные соглашения, ридми, приветствие от разработчиков Java; в папке bin находятся компилятор и помощники в разработке на Java.
Чтобы легко работать со средствами из папки bin нужно выполнить следующие шаги:
* откройте меню панель управление, выберите пункт система (система и безопасность\система)
* дополнительные параметры системы (слева), вкладка дополнительно, переменные среды
* в системных переменных найдите Path
* добавьте в начале путь к папке jdk\bin поставив точку с запятой на конце (у меня C:\Java\jdk1.7.0_79\bin;) (если путь содержит пробел его необходимо заключить в кавычки "C:\Program Files\Java\jdk1.7.0_79\bin"; )
* ок, ок, ок, закрыть.
Всё сделали правильно? проверка: Java -version
Папка lib (посмотрите она почти похожа на ту что находится в папке jre, но чуть побольше), логично предположить что это стандартная библиотека для пользователей плюс немного для разработчиков. Так оно и есть это та самая библиотека
Исходный код этой библиотеки находится в src.zip. Рекомендуемая распаковка архива:
* создайте папку src и переместите туда архив.
* запустите командную строку
* выполните команду cd /d путь_до_папки_src (у меня cd /d C:\Java\jdk1.8.0_73\src )
* выполните команду jar xvf src.zip
Если вы следовали инструкции то, скорее всего в командной строке у вас помчится длинный список, а в папке src появятся 6 новых папок. Когда мы поймём язык джава, здесь можно будет посмотреть, как что работает.
Здесь можно посмотреть документацию по Java
Теперь можно писать программки в блокноте, после с помощью командной строки компилировать, а потом и запускать. Если ошибка то всё заново - долго, неудобно.
Гораздо удобнее будет работать в программе, в которой можно и программировать, и сразу посмотреть выполнение программы, и ошибки исправлять быстрее, и скомпилировать программу. Такими программами являются интегрированные среды разработки. Мы будем использовать eclipse, ибо мне это название нравиться больше, чем у остальных.
Качаем Eclipse IDE for Java EE Developers. При запуске у вас спросит папку куда по умолчанию будут сохраняться коды программы. Можете выбрать единожды и поставить галочку чтобы больше не спрашивало.
Всё что нужно мы установили. Теперь можно и попрограммировать. Но это только через понедельник. А пока пирожок как и обещал (исходник отсюда):
* запускаем eclipse
* file -> new -> project
* Java project -> Next
* в Project name - fractal
* use defult jre
* finish
* no
* в списке слева щёлкаем правой кнопкой мыши по fractal
* new -> class
* в поле naim вводим fractal
* открываем fractal.java и вводим следующий код
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class fractal {
private static final double SX = 0.005;
private static final double SY = 0.005;
private static final int WIDTH = 640;
private static final int HEIGHT = 480;
private static final double DX = -350;
private static final double DY = -235;
private static final int COUNT_ITER = 100;
private static final int BAIL_OUT = 16; //вот тут можно поиграть
private static final int STEP_X = 10; //и тут
private static final int STEP_Y = 10; //и тут
private static void drawClouds(Graphics g) {
for (int i = 0; i < WIDTH; i += STEP_X) {
for (int j = 0; j < HEIGHT; j += STEP_Y) {
double c = SX * (i + DX);
double d = SY * (j + DY);
double x = c;
double y = d;
double t;
int k = 0;
g.setColor(new Color((float)Math.random(),
(float)Math.random(), (float)Math.random()));
while (x * x + y * y < BAIL_OUT && k < COUNT_ITER) {
t = x * x - y * y + c;
y = 2 * x * y + d;
x = t;
g.drawOval((int) (x / SX - DX), (int) (y / SY - DY), 1, 1);
++k;
}
}
}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.addNotify();
frame.setSize(frame.getInsets().left +
frame.getInsets().right + WIDTH,
frame.getInsets().top +
frame.getInsets().bottom + HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JPanel() {
@Override public void paintComponent(Graphics g) {
super.paintComponent(g);
drawClouds(g);
}
});
frame.setVisible(true);
}
}
* запускаем
* ???
* profit
если доигрались то windows -> perspective -> open perspective -> debug там будет кнопка stop
лол, оказывается на пикабу есть юзер @override
А ты никак не успокоишься я смотрю?)))
Добрый вечер.
Начал с первого такого поста. И видимо дико туплю, где найти src.zip?
Всё маленькой буквы
Ну и исходники лучше картинкой, иначе эту лапшу без форматирования сложно понять.
А вот что начал сразу с какого-то адекватного графического примера - это правильная ставка. Уроков про теорию и элементарные конструкции здесь уйма, а программы уровня "чуть дальше, чем хелловорлд", которые можно собрать на коленке новичку
и возрадоваться Java- это то, что нужно. Чтобы учить публику, нужно сначала ее зинтересовать, замотивировать... Так что продолжай, интересно, что из этого цикла получится.ЗЫ Хейтарам: попробуйте понимать программу, читать ее, как текст. Java/Swing очень выразительны и лаконичны.