Быстрое изучение Java для начинающих

View more categories:

1- Введение

Для начала, что нужно для обучения Java, смотрите по ссылке:

2- Создать новый Project

Сначала мы создаем новый Project, он будет использоваться в данной инструкции.
Введите название project:
  • BasicJavaTutorial
Это изображение созданного Project:
Примечание: Чтобы можно было писать другими языками помимо английского в Project, вам нужно поменять кодирование на UTF8.
Нажмите на правую кнопку мыши в Project выберите Properties:

3- Виды примитивных данных (Primitive Data Types)

Имеется 8 видов примитвных данных (primitive data) в JAVA:
  • Для целого числа есть 4 вида:   byte, short, int, long
  • Вид настоящих данных есть : float, double
  • Вид символа: char
  • Логический вид: возвращает значение true или false (правильно или неправильно)
Type Description bit Min value Max value
byte 8 bit integer number 8  -128 (-2^7) 127 (2^7-1)
short 16 bit integer number 16 -32,768 (-2^15) 32,767 (2^15 -1)
int 32 bit integer number 32 - 2,147,483,648
(-2^31)
2,147,483,647
(2^31 -1)
long 64 bit integer number 64 -9,223,372,036,854,775,808
(-2^63)
9,223,372,036,854,775,807
(2^63 -1)
float 32 bit real number 32 -3.4028235 x 10^38 3.4028235 x 10^38
double 64 bit real number 64 -1.7976931348623157 x 10^308 1.7976931348623157 x 10^308
boolean Logic type   false true
char Character type 16 '\u0000' (0) '\uffff' (65,535).
See more details:

4- Переменная (Variable)

Нажмите на правую кнопку мыши в src выберите "New/Package":
Назовите package:
  • org.o7planning.tutorial.javabasic.variable
Введите название класса:
  • VariableExample1
Класс  VariableExample1 создан:
Изменить код класса VariableExample1:
VariableExample1.java
package org.o7planning.tutorial.javabasic.variable;

public class VariableExample1 {

	public static void main(String[] args) {

		// Объявить переменную, с целым числом 32 bit. (RU)
		int firstNumber;

		// Прикрепить значение для firstNumber
		firstNumber = 10;

		System.out.println("First Number =" + firstNumber);

		// Объявить действительное число 32 bit (float)
		// Этому числу прикреплено значение 10.2
		// Буква f в конце помогает java понять это вид float.
		float secondNumber = 10.2f;

		System.out.println("Second Number =" + secondNumber);

		// Объявить действительное число 64 bit
		// Этому числу прикреплено значение 10.2
		// Буква d в конце помогает java понять это вид double. Отличается от вида
		// float.
		double thirdNumber = 10.2d;

		System.out.println("Third Number =" + thirdNumber);

		// Объявить вид символа
		char ch = 'a';

		System.out.println("Char ch= " + ch);

	}

}
Запустить класс  VariableExample1:
Нажать на правую кнопку мыши на класс VariableExample1 выбрать "Run As/Java Application":
Результаты запуска класса для просмотра на Console:
Вы так же можете объявить несколько переменные одновременно, следующий пример иллюстрирует это:
Создать новый класс VariableExample2
VariableExample2.java
package org.o7planning.tutorial.javabasic.variable;

public class VariableExample2 {

	public static void main(String[] args) {

		// Объявить 3 числа вида long (Целое число 64 bit).
		long firstNumber, secondNumber, thirdNumber;

		// Прикрепить значение для firstNumber
		// Символ 'L' в конце, чтобы сказать java это вид long,
		// отличается от вида int.
		firstNumber = 100L;

		// Прикрепить значение для secondNumber
		secondNumber = 200L;

		// Прикрепить значение для thirdNumber.
		thirdNumber = firstNumber + secondNumber;

		System.out.println("First Number = " + firstNumber);
		System.out.println("Second Number = " + secondNumber);
		System.out.println("Third Number = " + thirdNumber);
	}

}
Результаты запуска класса  VariableExample2:

5- Управление потоком программы (Control flow)

5.1- Команда if - else

Структура команды if - else является:
if(condition 1)  {
   // Сделать что-то здесь 
}else if(condition 2) {
   // Сделать что-то здесь 
}else if(condition 3) {
   // Сделать что-то здесь 
}
// Наоборот
// ​​​​​​​
else  { 
   // Сделать что-то здесь 
}
Создать class ElseIfExample1:
ElseIfExample1.java
package org.o7planning.tutorial.javabasic.controlflow;

public class ElseIfExample1 {

	public static void main(String[] args) {

		// Объявить число вида int (Целое число 32 bit)
		// Представляющее вашу тестовую оценку (score) 
		int score = 20;

		System.out.println("Your score =" + score);

		// Если оценка меньше 50
		if (score < 50) {
			System.out.println("You are not pass");
		}
		// Наоборот если score больше или равна 50 и меньше 80.
		else if (score >= 50 && score < 80) {
			System.out.println("You are pass");
		}
		// В остальных случаях (То есть больше или равна 80)
		else {
			System.out.println("You are pass, good student!");
		}

	}
}
Результаты запуска класса ElseIfExample1:
Изменить значение переменной  "score" в примере выше и перезапустать класс ElseIfExample1:
int score = 20;

5.2- Обычные операторы

  • > Больше
  • < Меньше
  • >= Больше или равно
  • <= Меньше или равно
  • && и
  • || или
  • == Сравнить с
  • != Сравнить разницу
  • ! Отрицание
Создать класс ElseIfExample2
ElseIfExample2.java
package org.o7planning.tutorial.javabasic.controlflow;

public class ElseIfExample2 {

	public static void main(String[] args) {

		// Объявить переменную вида int, представляющую ваш возраст.
		int age = 20;

		// Проверить возраст менее или равен 17
		if (age <= 17) {
			System.out.println("You are 17 or younger");
		}

		// Проверить возраст равен 18
		else if (age == 18) {
			System.out.println("You are 18 year old");
		}
		// Проверить возраст старше 18 и менее 40
		else if (age > 18 && age < 40) {
			System.out.println("You are between 19 and 39");
		}
		// В остальных случаях (Старше или равен 40)
		else {
			// Команда 'if' вплетена внутри.
			// Проверяет возраст неравный 50.
			if (age != 50) {
				System.out.println("You are not 50 year old");
			}

			// Команда отрицает возраст равен 50, значит неравен 50.
			if (!(age == 50)) {
				System.out.println("You are not 50 year old");
			}

			// Если возраст является 60 или 70
			if (age == 60 || age == 70) {
				System.out.println("You are 60 or 70 year old");
			}

		}

	}
}
Вы можете изменить значение "age" и запустить класс ElseIfExample2 и посмотреть результаты

5.3- Значение boolean

boolean это вид данных, имеющий только 2 значения true или  false (Правильно или неправильно).
Create class BooleanExample:
BooleanExample.java
package org.o7planning.tutorial.javabasic.controlflow;

public class BooleanExample {

	public static void main(String[] args) {

		// Объявить переменную вида boolean
		boolean value = true;

		// Если value является true
		if (value == true) {
			System.out.println("It's true");
		}
		// Наоборо 
		else {
			System.out.println("It's false");
		}

		// С видом boolean, вы так же можете написать
		// With boolean type, you can also write
		if (value) {
			System.out.println("It's true");
		}
		// Наоборот
		else {
			System.out.println("It's false");
		}
	}
}

5.4- Команда switch- case -default

Это так же является команда из ветки схожей с if-else представленной выше.
// variable_to_test: Переменная для проверки.
switch ( variable_to_test ) {
  case value1:
   // Сделать что-то здесь ...
   break;
  case value2:
   // Сделать что-то здесь ...
   break;
  default:
   // Сделать что-то здесь ...
}
SwitchExample1.java
package org.o7planning.tutorial.javabasic.controlflow;

public class SwitchExample1 {

	public static void main(String[] args) {

		// Объявить переменную age (возраст)
		int age = 20;

		// Проверить значение age
		switch (age) {
		// Если возраст равен 18
		case 18:
			System.out.println("You are 18 year old");
			break;
		// Если возраст равен 20
		case 20:
			System.out.println("You are 20 year old");
			break;
		// Остальные случаи
		default:
			System.out.println("You are not 18 or 20 year old");
		}

	}

}
Результаты запуска класса  SwitchExample1:
Заметьте, что с командой  case должно быть определенное значение вы не можете сделать следующее:
// Это не позволено!!
case (age < 18) :

// case только принимает опредленное значение, например:
case 18:
  // Сделать что-то здесь ...
  break;
Смотрите другой пример:
SwitchExample2.java
package org.o7planning.tutorial.javabasic.controlflow;

public class SwitchExample2 {

	public static void main(String[] args) {

		// Объявить переменную age (возраст)
		int age = 30;

		// Проверить значение age.
		switch (age) {
		// Если возраст равен 18
		case 18:
			System.out.println("You are 18 year old");
			break;
		// В случаяъ 20, 30, 40 лет.
		case 20:
		case 30:
		case 40:
			System.out.println("You are " + age);
			break;
		// Остальные случаи
		default:
			System.out.println("Other age");
		}

	}

}
Результаты запуска примера:

5.5- Цикл for

Это структура цикла:
// start_value: Начинающее значение
// end_value: Завершающее значение
// increment_number: Значение увеличивается после каждого повторения.
for ( start_value; end_value; increment_number ) {
   // Сделать что-то здесь ...
}
Рассмотрим изображенный пример:
ForLoopExample1.java
package org.o7planning.tutorial.javabasic.loop;

public class ForLoopExample1 {

	public static void main(String[] args) {

		// Объявляет переменную 'step', описывающую шаг цикла (Какой цикл)
		int step = 1;

		// Объявляет переменную 'value' с начинающим значением 0
		// После каждого повторения 'value' прибавляет 3
		// И цикл завершится когда 'value' больше или равен 10
		for (int value = 0; value < 10; value = value + 3) {

			System.out.println("Step =" + step + "  value = " + value);

			// Увеличить значение 'step' на 1, после повторения
			step = step + 1;

		}

	}

}
Результаты запуска класса ForLoopExample1:
Смотрите другой пример, посчитать сумму чисел от 1 до 100:
ForLoopExample2.java
package org.o7planning.tutorial.javabasic.loop;

public class ForLoopExample2 {

	// Это пример подсчета суммы от 1 до 100,
	// и распечатать результат на экране.
	public static void main(String[] args) {

		// Объявить переменную
		int total = 0;

		// Объявить переменную 'value'
		// Прикрепить начинающее значение 1
		// После каждого повторения значение увеличивается на 1.
		// Примечание: value++ индентично команде: value = value + 1;
		// value-- индентично команде: value = value - 1;
		for (int value = 1; value <= 100; value++) {

			// Прикрепить значение 'total' старым значением добавляя 'value'.
			total = total + value;
		}

		System.out.println("Total = " + total);

	}

}
Результаты:

5.6- Цикл while

Это структура цикла  while:
// Когда condition (условие) правильное, то сделать что-то.
while ( condition ) {
   // Сделать что-то здесь...
}
Смотрите изображенный пример:
WhileExample1.java
package org.o7planning.tutorial.javabasic.loop;

public class WhileExampe1 {

	public static void main(String[] args) {

		int value = 3;

		// Когда 'value' еще меньше 10, то цикл продолжает работать.
		while (value < 10) {

			System.out.println("Value = " + value);

			// Увеличить значение value на 2 единицы
			value = value + 2;
		}
	}
	
}

5.7- Цикл do-while

Это структура цикла  do-while:
// Цикл do-while делает минимум 1 повтор (iteration)
// и когда условие остается верным, то он работает дальше.
do {
   // Сделать что-то здесь.
}
while (condition);
Изображенный пример:
DoWhileExample1.java
package org.o7planning.tutorial.javabasic.loop;

public class DoWhileExample1 {

	public static void main(String[] args) {

		int value = 3;

		// Цикл do-while всегда выполняется минимум 1 раз.
		// ​​​​​​​
		do {

			System.out.println("Value = " + value);

			// Увеличить значение 'value' на 3
			value = value + 3;

		} while (value < 10);

	}
}
Результат:

6- Массив в Java (Array)

6.1- Что такое массив?

An array is a list of the elements are arranged adjacent to each other in memory.
Let's see, a array with 5 elements, int type.

6.2- Работа с массивом

Как объявить массив в Java.
// Объявить массив, не определяя количество элементов.
int[] array1;

// Объявить массив с 100 элементами
// Элементам еще не прикреплено определенное значение
array1 = new int[100];

// Объявить массив, определяя точное количество элементов.
// Элементам еще не прикреплено определенное значение
double[] array2 = new double[10];

// Объявить массив с элементами, к которым прикреплены определенные значения.
// Массив имеет 4 элемента
long[] array3= {10L, 23L, 30L, 11L};
Посмотрим пример:
ArrayExample1.java
package org.o7planning.tutorial.javabasic.array;

public class ArrayExample1 {

	public static void main(String[] args) {

		// Объявить массив с 5 элементами
		int[] myArray = new int[5];

		// Примечание: первый элемент массива имеет индекс 0:
		// Прикрепить значение первому элементу (Индекс 0)
		myArray[0] = 10;

		// Прикрепить значение второму элементу (Индекс 1)
		myArray[1] = 14;

		myArray[2] = 36;
		myArray[3] = 27;

		// Прикрепить значение 5-му элементу (Последний элемент в массиве)
		myArray[4] = 18;

		// Распечатать на экране Console количество элементов массива.
		System.out.println("Array Length=" + myArray.length);

		// Распечатать элемент индекса 3 (4-ый элемент в массиве)
		System.out.println("myArray[3]=" + myArray[3]);

		// Использовать цикл for, чтобы распечатать элементы в массиве.
		for (int index = 0; index < myArray.length; index++) {
			System.out.println("Element " + index + " = " + myArray[index]);
		}
	}

}
Результат:
Пример изображает использоватние цикла для прикрепления значений элементам:
ArrayExample2.java
package org.o7planning.tutorial.javabasic.array;

public class ArrayExample2 {

	public static void main(String[] args) {

		// Объявить массив с 5-ю элементами
		int[] myArray = new int[5];

		// Распечатать на экране Console количество элементов массива.
		System.out.println("Array Length=" + myArray.length);

		// Использовать цикл for чтобы прикрепить значение для элементов массива.
		for (int index = 0; index < myArray.length; index++) {
			myArray[index] = 100 * index * index + 3;
		}

		// Распечатать на экране Console элемент индекса 3
		System.out.println("myArray[3] = " + myArray[3]);
	}

}
Результат:

7- Class, объект и конструктор (Class, Instance, Constructor)

Вам нужно различать 3 понятия
  • Класс
  • Конструктор (Constructor)
  • Объект (Instance)
Когда мы говорим про Дерево, то это что-то абстрактное, является классом (class). Но когда мы указываем на определенное дерево то это точно объект (object) (Такж е называется экземпляром (instance) )
Или когда мы говорим о человеке (Person) это так же асбтракто, является классом. Но когда указывается на вас или меня, то это 2 разных объекта, в одном классе Люди
Person.java
package org.o7planning.tutorial.javabasic.javastructure;

public class Person {

	// Это поле (Field).
	// Хранит имя человека.
	public String name;

	// Это Constructor (Конструктор)
	// Использовать его для инициализации объекта.
	// Этот Constructor имеет один параметр.
	// Constructor всегда имеет название одинаковое с названием класса.
	public Person(String persionName) {
		// Прикрепить значение из параметра в поле name.
		this.name = persionName;
	}

	// Это метод, возвращающий вид String.
	public String getName() {
		return this.name;
	}

}
Person class has no main method. TestPerson class is initialized instance of the Person object via the constructor
PersonTest.java
package org.o7planning.tutorial.javabasic.javastructure;

public class PersonTest {

	public static void main(String[] args) {

		// Создать объект из класса Person
		// Инициализировать этот объект из Constructor класса Person
		Person edison = new Person("Edison");

		// Класс Person имеет метод getName()
		// Использует объект для вызова метода getName():
		String name = edison.getName();
		System.out.println("Person 1: " + name);

		// Создать объект из класса Person.
		// Инициализировать данный объект из структуры класса Person
		Person billGate = new Person("Bill Gates");

		// Класс Person имеет поле name, которое является публичным (public)
		// Использует объект для ссылки на него.
		String name2 = billGate.name;
		System.out.println("Person 2: " + name2);

	}

}
Results of running the example:

8- Поле (Field)

In this section we will discuss some of the concepts:
Field
  • Normal field
  • static Field
  • final Field
  • static final Field
See an example with the field and static fields.
FieldSample.java
package org.o7planning.tutorial.javabasic.javastructure;

public class FieldSample {

	// Это статическое поле (static field).
	public static int MY_STATIC_FIELD = 100;

	// Это обычное поле.
	public String myValue;

	// Constructor для инициализации объекта FieldSample.
	public FieldSample(String myValue) {
		this.myValue = myValue;
	}

}
FieldSampleTest.java
package org.o7planning.tutorial.javabasic.javastructure;

public class FieldSampleTest {

	public static void main(String[] args) {

		// Создать первый объект.
		FieldSample obj1 = new FieldSample("Value1");

		System.out.println("obj1.myValue= " + obj1.myValue);

		// Распечатать значение статического поля MY_STATIC_FIELD.
		// Ссылка через объект (Не рекомендуется).
		System.out.println("obj1.MY_STATIC_FIELD= " + obj1.MY_STATIC_FIELD);

		// Распечатать значение статического поля  - MY_STATIC_FIELD.
		// Со статическими полями, можно получить доступ к нему через класс.
		// (Не рекомендуется этот способ).
		System.out.println("FieldSample.MY_STATIC_FIELD= " + FieldSample.MY_STATIC_FIELD);

		// Создать 2-ой объект:
		FieldSample obj2 = new FieldSample("Value2");

		System.out.println("obj2.myValue= " + obj2.myValue);

		System.out.println("obj2.MY_STATIC_FIELD= " + obj2.MY_STATIC_FIELD);

		System.out.println(" ------------- ");

		// Статическое поле используется для всех объектов одного класса.
		// Прикрепить новое значение статическому полю MY_STATIC_FIELD.
		// (Можно использовать способ: FieldSample.MY_STATIC_FIELD = 200)
		obj1.MY_STATIC_FIELD = 200;

		// Здесь распечатается значение 200.
		System.out.println("obj2.MY_STATIC_FIELD= " + obj2.MY_STATIC_FIELD);
	}
	
}
Results of running the example:
The final field is the field that can not assign a new value to it, it's like a constant.
FinalFieldExample.java
package org.o7planning.tutorial.javabasic.javastructure;

public class FinalFieldExample {

	// Поле final (Финальное).
	// Поле final не позволяет прикреплять новое значение.
	public final int myValue = 100;

	// Статическое поле и final.
	// Поле final не позволяет прикреплять новое значение.
	public static final long MY_LONG_VALUE = 1234L;

}

9- Метод (Method)

Method
  • Method.
  • static Method
  • final Method. (Will be mentioned in the inheritance of the class).
MethodSample.java
package org.o7planning.tutorial.javabasic.javastructure;

public class MethodSample {

	public String text = "Some text";

	// Constructor по умолчанию.
	public MethodSample() {

	}

	// Это метод, возвращающий вид String.
	// Данный метод не имеет параметра
	public String getText() {
		return this.text;
	}

	// Это метод с 1 параметром String.
	// Этот метод возвращает вид  void (Или называется ничего не возвращает)
	public void setText(String text) {
		// this.text ссылается к полю text.
		// отличается от параметра text.
		this.text = text;
	}

	// Это статический метод.
	// Возвращает вид int, имеет 3 параметра.
	public static int sum(int a, int b, int c) {
		int d = a + b + c;
		return d;
	}
}
MethodSampleTest.java
package org.o7planning.tutorial.javabasic.javastructure;

public class MethodSampleTest {

	public static void main(String[] args) {

		// Создать объект MethodSample
		MethodSample obj = new MethodSample();

		// Вызвать метод getText()
		String text = obj.getText();

		System.out.println("Text = " + text);

		// Вызвать метод setText(String)
		obj.setText("New Text");

		System.out.println("Text = " + obj.getText());

		// Статический метод может быть вызван через класс.
		// Этот способ рекомендуется для использования. (**)
		int sum = MethodSample.sum(10, 20, 30);

		System.out.println("Sum  10,20,30= " + sum);

		// Или вызывается через объект.
		// Этот способ не рекомендуется . (**)
		int sum2 = obj.sum(20, 30, 40);

		System.out.println("Sum  20,30,40= " + sum2);
	}

}

10- Наследственность в Java

Java allows classes which extend from other class. Class extends another class called subclasses. Subclasses have the ability to inherit the fields and methods from the parent class.
Animal.java
package org.o7planning.tutorial.javabasic.inheritance;

public class Animal {

	public Animal() {

	}

	public void move() {
		System.out.println("Move ...!");
	}

	// Звук данного животного.
	public void say() {
		System.out.println("<nothing>");
	}

}
Cat.java
package org.o7planning.tutorial.javabasic.inheritance;

public class Cat extends Animal {

	// Переопределить (override) метод класса Animal.
	public void say() {
		System.out.println("Meo");
	}

}
Dog.java
package org.o7planning.tutorial.javabasic.inheritance;

public class Dog extends Animal {

	// Переопределить (override) метод класса Animal.
	public void say() {
		System.out.println("Go");
	}

}
Ant.java
package org.o7planning.tutorial.javabasic.inheritance;

// Муравей
public class Ant extends Animal {

}
AnimalTest.java
package org.o7planning.tutorial.javabasic.inheritance;

public class AnimalTest {

	public static void main(String[] args) {

		// Объявить объект Cat.
		Cat cat = new Cat();

		// Проверить является ли 'cat' объектом Animal или нет.
		// Результат точно true.
		boolean isAnimal = cat instanceof Animal;
		System.out.println("cat instanceof Animal?" + isAnimal);

		// ==> Meo
		// Вызывается метод say() Cat.
		cat.say();

		// Объявить объект Animal.
		// Инициализировать объект через Constructor у Cat.
		Animal cat2 = new Cat();

		// ==> Meo
		// Метод say() Cat вызывается(а не у Animal).
		cat2.say();

		// Создать объект Animal.
		// Через constructor подкласса, Ant.
		Animal ant = new Ant();

		// Ant не имеет методsay()
		// ==> Вызывается метод say(), унаследованный от родительского класса (Animal).
		ant.say();
	}
}
Results of running the example:

11- Инструкция запроса используя Javadoc

Javadoc is the reference document for Java API. You can download Jdk9 Javadoc in CHM format at:

View more categories: