11 августа 2011 11.08.11 22 5095

Туториал по java №1

+19

<< >>

Типа начало

Пара строк о том, как все будет проходить:

Будет МНОГАБУКАФ. Не надо рассказывать об этом в своих комментариях. Я знаю.
Видео не будет. Не хочу травмировать уши зрителей своим микрофоном. (Если кто захочет озвучить и снять видео – милости прошу :-) )
В комментариях пишите свои неработающие куски кода, помогу, чем смогу. Большая просьба свой код вставлять через этот сервис (или получше, если знаете...).

Вначале хотел делать туториалы по C++, но потом появился rlokc со своими LP по MC, и понеслось… Дошел до серийного программирования плагинов и теперь знаю java лучше, чем c++. Сейчас появилось время и, не дождавшись открытия “просветительского портала на базе сг” начинаю писать серию туториалов в блогах.
Планирую сначала написать серию туториалов по java в общем, а потом по программированию под bukkit server mod(если будет отклик, конечно).

ГО!

Скачивание среды разработки.

Среда разработки – текстовый редактор с поддержкой синтаксиса java и компилятор – программа, переводящая код java в машинный код для исполнения его процессором.

Компилятор java переводит код в другой код, для исполнения на Java Virtual Machine, так и достигается кросс-платформенность

Есть много сред разработки, но я пользуюсь eclipse, чего и вам советую. Скачать eclipse можно с офф. Сайта

Распаковываем архив и запускаем eclipse.exe. Соглашаемся, некст, некст, некст…
Дальше настроим внешний вид среды, на скрине осталось только то, что нам потребуется…

Первая программа.

Кликаем ПКМ в окне Package Explorer(далее PE) -> New -> Java project, вводим имя проекта, кликаем Finish.
В PE открываем наш проект, кликаем ПКМ по папке src -> New -> Class, называем класс (можно так-же, как и проект), ставим галочку в поле public static void main (String[] args).
В редакторе кода удаляем автоматические комментарии (нафиг их пихать???), теперь все должно выглядеть примерно так:

  1. public class Tutorial {
  2.        
  3.         public static void main(String[] args) {
  4.  
  5.         }
  6.        
  7. }

Наша первая программа будет стандартной, жизнеутверждающей и крайне важной. Программа будет выводить на экран фразу “Hello world!” (можно почитать вики по этому поводу).

Устанавливаем курсор между фигурными скобками({}) и печатаем
System.out.println(“Hello world!”);

Получаем:

  1. public class Tutorial {
  2.        
  3.         public static void main(String[] args) {
  4.                 System.out.println(«Hello, world!»);
  5.         }
  6.        
  7. }

Обратите внимание, среда после установки точки выводит список доступных продолжений.

Первая программа написана, запускаем ее нажатием на зеленую кнопку «Play». Результат работы программы отобразиться внизу экрана.

Все, что писали не мы (авто-сгенерированное) пока нам не интересно, разберемся со строчкой
System.out.println(“Hello world!”);

Это – вызов функции вывода на экран, в скобках указывается то, что будем выводить. В отличии от System.out.print, эта функция в конце вывода переводит курсор на следующую строку (как-бы “нажимает” на enter).

import, переменные, сканнер, азы работы со строками

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

  1. import java.util.Scanner;
  2.  
  3. public class Tutorial {
  4.        
  5.         public static void main(String[] args) {
  6.                 int num_1, num_2, Sum;
  7.                 Scanner scanner = new Scanner(System.in);
  8.                 System.out.print(«Введите первое число: „);
  9.                 num_1 = scanner.nextInt();
  10.                 System.out.print(“Введите второе число: „);
  11.                 num_2 = scanner.nextInt();
  12.                 System.out.println(“Результат:»);
  13.                 Sum = num_1 + num_2;
  14.                 System.out.print(Sum);
  15.  
  16.  
  17.         }
  18.        
  19. }

Разбираемся в этой программе…
Строка №1 – подключаем средство ввода данных с клавиатуры, сканнер.
Строка №6 – объявляем 3 переменные типа int (integer – цельночисленная переменная)
Переменные могут содержать данные (только того типа, который указан при объявлении), имена у переменных произвольные (Хорошим тоном является давать понятные имена переменным, например как у меня. Вам же легче!)
Строка №7 – объявляем переменную типа Scanner с именем scanner и присваиваем ей значение сканера системного потока ввода делаем так.
Строка №8 – выводим БЕЗ перевода строки
Строка №9 – присваиваем переменной num_1 значение, вводимое с клавиатуры
Строка №12 – выводим С переводом строки
Строка №13 – присваиваем переменной Sum сумму переменных num_1 и num_2

Эта программа несколько усложнена:
1) Так как мы не используем переменную Sum нигде более, то не стоит ее объявлять.(Это уменьшит объем, занимаемый нашей прогой всего 4 байта, но если бы Notch делал так, то Minecraft шел на телефонах...)
2) Строки № 12 и 14 можно объединить.

Итого:

  1. import java.util.Scanner;
  2.  
  3. public class Tutorial {
  4.        
  5.         public static void main(String[] args) {
  6.                 int num_1, num_2;
  7.                 Scanner scanner = new Scanner(System.in);
  8.                 System.out.print(«Введите первое число: „);
  9.                 num_1 = scanner.nextInt();
  10.                 System.out.print(“Введите второе число: „);
  11.                 num_2 = scanner.nextInt();
  12.                 System.out.println(“Результат:\n» + (num_1 + num_2));
  13.  
  14.         }
  15.        
  16. }

Строка №12: символ \n преобразуется в перевод строки; первый + присоединяет к строке ”Результат:\n” результат выполнения num_1 + num_2 (в программировании скобки действуют как и в математике, изменяя приоритет выполнения операций)


Лучшие комментарии

Сделал все по примеру, испытываю щенячий восторг! Буду ждать продолжения=)
О, классно, спасибо. Теперь пойду прочитаю^^
Можно в 2х словах про generics в java?

private static void p (String s){
                System.out.print(s);Syhi-подсветка кода


собственно, ради этого момента. Или о чём то, аналогичном .ToString() в C#
Слушай большое тебе спасибо друже, я уже как месяц хочу изучить java и все никак не мог добротного «тутора» или книжки найти а тут такой пост на блогах случайно попался прям «ВИНИНГ!» какой то;)
Пока не много не понятно но думаю изучение мое с таким «тутором» пойдет по маслу;)
Спасибо тебе еще раз огромное, и да пиши еще!:3
;)
System.out.print(

1. Вывод всегда такой громоздкий, или можно заранее объявить, что это системный поток вывода на экран и покороче писать?
2. Про System подробнее можно (в теории)?
Заранее спасибо)
ОК, все понятно. Вопросов куча еще, но думаю ты потом про это напишешь… Ждем-с
Так я же тебя не критикую ни в коей мере, о чем ты? :]
Запили по XHTML и CSS, и будет тебе счастье! :3
Буду рад увидеть гайды про моды для баккита.
Плюсую, тутор отличный, хорошо обьясняешь =)
1. Можно, вот:
  1. import java.util.Scanner;
  2.  
  3. public class Tutorial {
  4.        
  5.         public static void main(String[] args) {
  6.                 int num_1, num_2;
  7.                 Scanner scanner = new Scanner(System.in);
  8.                 p("Введите первое число: ");
  9.                 num_1 = scanner.nextInt();
  10.                 p("Введите второе число: ");
  11.                 num_2 = scanner.nextInt();
  12.                 p("Результат:\n" + (num_1 + num_2));
  13.  
  14.         }
  15.         private static void p (String s){
  16.                 System.out.print(s);
  17.         }
  18.        
  19. }


Тут создан метод p в который приходит строка (внутри метода эта строка — переменная s).
Метод тупо выводит строку и возвращается к выполнению осн. части проги.
Про все это — попозже…

2. В теории — «сборник» системных функций, через него мы получаем доступ к вводу/выводу, перенаправлению потоков(например System.out.print будет выводить не на консоль, а в файл), системному времени, копированию массивов(тупо функция, которую можно написать самому, но лень), выходу из программы…

Короче всякая разная системная фигня… Подобных «сборников» функций много, подключаются они через import.
Посмотрим… Хотя… там не сложно, запилю, но после основной серии(тк эти-же функции и используются в модах под ведро)
агашеньки. из начала поста следует, что я занимаюсь тем, что мне нужно в конкретный момент… дойду до просторов веба — запилю тутор
Если тебе нужно преобразование в строку — оно всегда проходит автоматом при присоединении (в мой метод можно кинуть «привет» или ""+num_1)

Хочешь гегериков — подожди )))
Читай также