Уроки по Java от JavaMan'а
|
| |
|
MrIncrof |
Дата: Понедельник, 07.11.2011, 14:37 | Сообщение # 1 |
( Приченить добро! )
Сообщений: [1553]
|
Здесь я буду выкладывать свои уроки по языку Java. Содержание: Урок первый. Выводим строку на экран Здравствуйте, как гласит вики, Java это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Дата официального выпуска — 23 мая 1995 года. Язык Джава очень простой язык программирования, его не стоит путать с JavaScript, который предназначен для улучшения страниц на сайтах (и не только). По мне, Джава легче чем ДжаваСкрипт. Итак, приступим. Для начала мы создадим программу, которая будет писать Hello World! Что для этого нужно, нам надо скачатb Java SDK или JDK, всё это можно скачать с официального сайта. После установки, нам необходимо задать путь до JDK, для этого: Windows xp: мой комп. - свойства - дополнительно - переменные среды Windows 7: мой комп. - свойства - дополнительные параметры - дополнительно - переменные среды И ищем в таблице Системные переменные, переменную PATH, добавляем точку с запятой и прописываем путь до папки Bin нашего JDK. Всё готово. Теперь открываем блокнот, и пишем: Code public class newclass { public static void main(String[] args) { System.out.println("Hello World!"); } } Сейчас я вам всё объясню, команда public class создаёт новый класс с именем, команда public static void main(String[] args) публикует то, что мы сделали на экран и создаёт массив строк, команда System.out.println("Hello World!"); записывает строку "Hello World!" на экран, давайте проверим, сохраняем файл с расширением *.java , * должно равняться названию класса, в данном случае, это newclass.java. Теперь нам надо откомпилировать программу в командной строке, для этого пишем путь до newclass.java и далее javac newclass.java всё, теперь запустим нашу программу, для этого пишем путь до newclass.class java newclass. См. следующие уроки. Урок второй. Операции с числами Это мой второй урок, в этом уроке, мы будем проходить различные операции с числами. Для начала откроем блокнот, публикуем класс командой public class, назовём его Addition. Теперь делаем вывод сообщений, командой public static void main (String [] args) и ставим скобки {} в них пишем: Code int fn = 6, sn = 3; //Запоминаем два числа int op1, op2, op3, op4; //Запоминаем операции
op1 = fn+sn; //Складываем два числа op2 = fn-sn; //вычитаем op3 = fn*sn; //умножаем op4 = fn/sn; //делим System.out.println("Результат сложения: "+op1+" | Результат вычитания: "+op2+" | Результат умножения: "+op3+" | Результат деления: "+op4);//Выводим строку с результатами Сохраняем как Addition.java, компилируем в командной строке через javac Addition.java и запускаем через java Addition. См. следующие уроки Урок третий. Создаём точки. Знакомство с IDE Здравствуйте, сегодня я вас научу как создать плавающую точку в нашей программе, чтобы это сделать, необходимо скачать специальную IDE машину, самые лучшие это: NetBeans IDE и Eclipse IDE, Я вам расскажу о каждой. Начнём с NetBeans IDE. NetBeans IDE — свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C++ и ряде других. Но мы остановимся на Java, то что он поддерживает много языков-это плюс, но он много занимает места на винчестере, людям со слабым интернетом это будет долго. За то в NetBeans IDE легко подключить дополнительные библиотеки (Libraries) я вам советую LWJGL. Создание приложений в NetBeans IDE не составит труда, вы просто добавляете новый проект, добавляете класс и там всё пишете. Скачать его можно с http://netbeans.org/downloads/index.html .Теперь поговорим о Eclipse IDE. Это хорошая интегрированная среда разработки приложений, такая же как и NetBeans IDE. Он очень мало весит (50 мб) скачать его можно с: http://www.eclipse.org/downloads/ Мы остановимся на выборе NetBeans IDE, так как он лучше и удобнее. После того как мы установили программу, откроем её, создадим новый проект: File>new>Java Project, вводим желаемое имя проекта, например, PointExample, вот мы увидели рабочее место, для начала, удалим класс Main и создадим новый, под названием Point, удаляем всё кроме Это нужно для совместимости с проектом. Далее пишем: Code class Point { int x,y; //Создаём две точки Point(int x,int y){ //Функция Point this.x=x; this.y=y;//x=x, y=y } Point(){ this(99,77);//Координата точки } } class My11{ //Создаём новый класс public static void main(String args[]){ //Наша "Любимая" функция Point p1=new Point();//Первая точка Point p2=new Point(77,88);//Вторая точка Point p3=new Point();//Третья точка p1.x=131;//Координата х первой точки p1.y=232;//Координата у первой точки
System.out.println("p1.x="+p1.x+" p1.y="+p1.y);//Выводим координату первой точки System.out.println("p2.x="+p2.x+" p2.y="+p2.y);//Выводим координату второй точки System.out.println("p3.x="+p3.x+" p3.y="+p3.y);//Выводим координату третьей точки } Мы всё сделали, теперь жмём F11, программа откомпилировалась и теперь жмём F6, мы запустили проект. См. след. уроки. Урок четвёртый. Просмотр кода интернет страницы Привет всем. Открываем наш NetBeans (или Eclipse) создаём новый проект, называем ReadHTML, создаём класс SimpleURL. Теперь приступим к коду, пишем (удаляя всё кроме package ReadHTML;):
Code import java.net.*; //Импортируем две библиотеки, 1-ая import java.io.*; //2-ая
class SimpleURL{ //Создаём класс public static void main(String[] args){ //Массив строк try{ // Смотрим ниже... URL bhv = new URL(" http://www.bhv.ru/ "); //Открываем сайт http://www.bhv.ru/ BufferedReader br = new BufferedReader(new InputStreamReader(bhv.openStream()));//Читаем страницу String line;//Создаём строковое значение while ((line = br.readLine()) != null)//повторяем много раз, если есть ещё строка, тогда записываем её... System.out.println(line); //...выводим на экран... br.close(); //...и закрываем буффер } catch(MalformedURLException me){ //Если же такого хоста, сайта, не существует System.err.println("Unknown host: " + me); //Пишем ошибку System.exit(0); //И выходим } catch(IOException ioe){//Если невозможно присоединиться к хосту System.err.println("Input error: " + ioe); //и пишем ошибку } } } Теперь поговорим о try и catch. Есть условие if/else, но они не могут обробатывать ошибки и будут пытаться работать в любом случае. На помощь приходит try и catch. Если ошибок не будет, тогда будут выполняться действия в блоке try, иначе в catch. Надеюсь вам помог мой урок Урок пятый. Фрейм и метка Привет всем! Сейчас мы создадим фрейм и метку. Для начала необходимо открыть NetBeans IDE (Eclipse IDE) и создать новый проект, назовём его MyGUI (Graphical User Interface) и в нашем главном классе пишем код: Code package mygui; //Наш пакет import java.awt.event.*; //ОБЯЗАТЕЛЬНО нужно съимпортировать эту библиотеку public class Main { //Класс public static void main(String[] args) { //Массив строк MyFrame m = new MyFrame("Test",300,100); //Потом пройдём m.addWindowListener(new WindowAdapter(){ //Добавляем слушателя событий public void windowClosing(WindowEvent e){ //Если мы закрываем окно System.exit(0); //Выходим из программы } }); } } Далее мы создадим новый класс MyFrame, в нашем коде он обозначен как Code MyFrame m = new MyFrame("Test",300,100); То есть как m. Пишем в новый класс: Code package tests; public class MyFrame extends javax.swing.JFrame{ public MyFrame() { } } Если мы запустим, ничего не произоёдйт, потому что окно невидимое. Чтобы это исправить в паблик пишем: Code setSize(width,height); setVisible(true); setSize(w,h); w - ширина, h - высота задаёт размер окну setVisible(bool); bool - true\false. - задаёт видимость окна на экране Будет ошибка, потому что мы не указали аргументы в объявлении, пишем между скобками () Code int width, int height Но когда мы создавали фрэйм мы писали ещё текстувую строчку. Перед только что записанным кодом мы пишем: А в самом паблике перед всем пишем: setTitle(string); string - текстовая переменная - задаёт назване окну Уже почти всё готово, почти. Для того чтобы создать метку мы должны сделать контейнер, в котором всё будет храниться. Создаётся контейнер командой Container. В паблике, после команды setTitle пишем код: Code Container c = getContentPane(); Мы, в этот раз, не пользовались конструктором, а нашли контейнер в самом фрейме. Для работы контейнера нам необходимо импортировать библиотеку awt: Далее нам нужно создать саму метку. Она создаётся командой Label и имеет только один аргумент - сам текст. После создания контейнера пишем: Code Label label = new Label("TEXT"); Вот и всё. Осталось только добавить непосредственно саму метку в контейнер. Для этого пишем после создания метки: Включаем, проверяем. Всё работает. Также мы можем, режиме реального времени, изменять находящийся в метке текст. Делается это командой setText(str); - str - текстовая строка Мы можем изменить метку как нам угодно. Для этого существует огромное множество команд. Всем пока! Урок шестой. Кнопки и события Привет! Сейчас я расскажу как сделать кнопку и если нажать на неё выводилось сначала окошко ввода имени, потом фамилии, потом возраста, а потом в сообщении всё это выводилось на экран. Начнём. В паблик нашего класса MyFrame мы пишем: Code JButton button = new JButton("Press me!"); У кнопки, также как и у метки, аргументом является строка и она задаёт текст на самой кнопке. Далее мы должны импортировать библиотеку swing: Code import javax.swing.*; Потом, после создания кнопки, мы добавляем её в наш контейнер: Если мы запустим исходник всё будет работать, но если нажимать на кнопочку ничего происходить не будет. Для исправления этого недоразумения создадим класс Handler в самом фрейме(не в паблике) пишем: Code public class Handler implements ActionListener{ public void actionPerformed(ActionEvent e){ if (e.getSource()==button){ String firstname = JOptionPane.showInputDialog("Введи имя"); String lastname = JOptionPane.showInputDialog("Введи фамилию"); String age = JOptionPane.showInputDialog("Введи возраст"); JOptionPane.showMessageDialog(null, "Имя: "+firstname+" | Фамилия: "+lastname+" | Возраст:"+age); } } } Осталось только добавить само событие для кнопки. Для этого, после добавления кнопки в контейнер, пишем следующее: Code Handler handler = new Handler(); Мы создали событие для кнопки. Далее: Code button.addActionListener(handler); Добавляем слушателю событий само событие. Компилируем, запускаем, всё работает. Урок седьмой. Знакомство с движком JGame Привет всем! Я решил добавить новый урок и на этот раз о джава движке - JGame. Он лёгкий, быстрый, функциональный и кросс платформенный. Вся информация как и откуда скачать движок, как поставить вы можете почитать на официальном сайте движка. Также там есть туториалы, но на английском. Ставим JGame на Netbeans: Идём в Tools->Libraries; Создаём новую библиотеку: "New Library"; Введите, к примеру, имя "Jgame", выберите "Class Library" из drop-down меню, если меню не появилось попробуйте проделать операцию заново; Нажмите "Ok"; Выберите "Classpath"; Нажмите на кнопку "Add Jar/Folder"; Перейдите в папку, куда вы установили JGame и выберите Jar файл: jgame-all.jar; Нажмите на "Sources"; Нажмите "Add Jar/Folder"; Перейдите в папку, куда вы установили JGame и выберите папку: src-base and нажмите "Add Jar/Folder" Повторите шаги 9-10 для добавления нужных файлов JGame: src-jogl и src-midp Нажмите Javadoc; Перейдите в папку, куда вы установили JGame и выберите папку: javadoc и кликните "Add Jar/Folder" Теперь нажмите "Okay" и Library Manager выключится сам. Далее нужно поставить саму библиотеку, для этого на проекте жмём ПКМ => Properties => Libraries. Жмём кнопочку "Add Library" и ищем в списке JGame. Создаём класс, назовём его, например, Example1. Пишем код (весь код в комментариях): Code package Lessons; // Наш пакет
import jgame.*; // Импортируем пакет jgame import jgame.platform.*; // Импортируем под-пакет jgame.platform
public class Example1 extends JGEngine { // Создаём класс с использованием движка
public static void main(String [] args) { // Массив строк new Example1(new JGPoint(640,480)); // Создаём точку с координатами 640-х и 480-у (это необходимо для создания окна) } public Example1() { // Публикуем создание апплета initEngineApplet(); // Инициализируем апплет } public Example1(JGPoint size) { // Так мы создаём окно initEngine(size.x,size.y); // Инициализируем движок с координатами точек } public void initCanvas() { // Создаём "холст" setCanvasSettings( 20, // высота холста в тайлах 15, // ширина холста в тайлах 16, // высота одного тайла 16, // ширина одного тайла // (на заметку: полный размер = 20*16=320 x 15*16=240) null,// цвет переднего плана -> используем белый null,// цвет заднего плана -> используем чёрный null // стандартный шрифт -> используем обычный Arial шрифт ); } public void initGame() // Инициализируем игру setFrameRate(// Задаём частоту смены кадров 35,// 35 = частота кадров, 35 кадров в секунду 2 // 2 = пропускаем кадры, пропустить не более 2 кадров перед отображением // кадра снова ); }
double texttimer=0; // Таймер (значение) положения текста public void doFrame() { // Выполняем texttimer += 0.05; // Прибавляем к таймеру 0.05 } public void paintFrame() {// Рисуем текст setColor(JGColor.yellow); // Цвет текста drawString("Hello world", viewWidth()/2 + 50*Math.sin(texttimer), // x положение viewHeight()/2 + 50*Math.cos(texttimer), // y положение 0 // положение текста // (-1 слева, 0 по середине, 1 справа) ); } } В итоге мы получили текст, который движется по кругу. Урок окончен. Пока только 7 уроков, но я может продолжу их писать. Плюс ко всему я изучаю движок JGame, поэтому я могу писать уроки по созданию игр на джава.
Сообщение отредактировал: JavaMan - Пятница, 25.11.2011, 14:27 |
|
| |
MrIncrof |
Дата: Понедельник, 07.11.2011, 19:25 | Сообщение # 2 |
( Приченить добро! )
Сообщений: [1553]
|
Добавил ещё один урок
|
|
| |
NIK-name |
Дата: Понедельник, 07.11.2011, 22:41 | Сообщение # 3 |
Сообщений: [229]
|
Читабельность кода в уроках просто ужасна. Новиче, мало того, что в языке не ориентируется, так еще и не строчки не поймет. Ты слышал о таких клавишах, как Tab или пробел? Если да, тогда изучи самую начльную часть теории "хорошего стиля программирования", и оформи код нормально. Поверь, будет гораздо лучше! Добавлено (07.11.2011, 22:41) --------------------------------------------- Четвертый урок Quote (JavaMan) try{ //Не знаю как объяснить, но команда важная
Я под столом . Как можно писать уроки, если ты сам не понимаешь, что там написано? Код, наверное, с книжки содрал? Ладно
Если что, эта команда означает обработку исключений. Ключевые слова try и catch служат обработчиками ошибок. Если твой сайт существует, то выполняется действие в блоке try, если же нет, тогда выскакивает ошибка, которую ты прописал в блоке catch. Учи язык, для начала
|
|
| |
MrIncrof |
Дата: Вторник, 08.11.2011, 12:07 | Сообщение # 4 |
( Приченить добро! )
Сообщений: [1553]
|
NIK-name, это давний урок, а создать тему захотел из-за 2-х новых (и в будущем ещё больше) уроков. Quote (NIK-name) Ключевые слова try и catch служат обработчиками ошибок Я это знаю, но как объяснить...
|
|
| |
NIK-name |
Дата: Среда, 09.11.2011, 20:08 | Сообщение # 5 |
Сообщений: [229]
|
Ну вот, теперь гораздо лучше! А на счет
Quote (JavaMan) как объяснить...
Как вариант, скажи чтло есть такая логическая функция, типа if/else. Но она обрабатывает условие вызова ошбки. Т.е. если ошибки в работе программы нет (в нашем случае сайт найден), тогда выполняется код, прописанный в блоке try. Иначе, если ошибка всет-таки найдена, тогда выполняется код в блоке catch. Что-то типа такого
|
|
| |
MrIncrof |
Дата: Пятница, 25.11.2011, 14:29 | Сообщение # 6 |
( Приченить добро! )
Сообщений: [1553]
|
Добавил новый урок и изменил оформление
|
|
| |
|