10 главных конструкций языка Java
easy

10 главных конструкций языка Java

Простой и мощный язык.

Java — важный язык разработки во многих больших корпорациях. Мы уже рассказывали про то, как и где применяется Java, теперь настало время для практики.

Так как авторы языка Java при создании вдохновлялись языками C и C++, то в Java тоже появилось много похожих конструкций и команд. Если вы знаете C или C++, то освоить Java вам будет гораздо проще.

👉 В Java после каждой команды ставится точка с запятой.

Комментарии

Комментарии в Java точно такие же, как в C-подобных языках — есть однострочные, которые работают только для одной строки, и многострочные.

// Это однострочный комментарий
// Для каждой строки нужно добавлять его отдельно
/* А это — многострочный
его можно сделать любой длины,
если в начале и в конце поставить нужные символы */

Переменные и типы данных

Как и в C, в Java есть несколько типов данных с разным объёмом выделяемой памяти. Предполагается, что программист сам решит, какой тип использовать лучше всего в каждой ситуации и сам будет следить за тем, чтобы в переменную поместилось всё что нужно.

// целое, 1 байт
byte b;

// целое, 2 байта
short s;

// целое, 4 байта
int x = 420;

// целое, 8 байт
long l;

// дробное, 4 байта
float fl = 4.3;

// дробное, 8 байт
double d,q;

// логический тип, true или false
boolean bol;

Присваивание и сравнение

Всё как и везде:

// это присваивание
x = 10;
// а это — сравнение x и 10
// результат сравнения отправляется в переменную b
boolean bol;
b = (x == 10);

Ещё есть метод сравнения .equal — он работает более гибко и предсказуемо, чем ==, потому что двойное равно может сравнивать только числа и строки.

Структура программы

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

Но есть одно важное отличие: каждая java-программа — это как бы один большой класс со своими разделами, которые должны быть у каждого класса. Благодаря этому большие программы легко собираются из маленьких java-кирпичиков и работают друг с другом как с классами, используя все их возможности.

// программа — тоже класс
public class Program {
   	// публичная часть класса, доступная всем
   	// в ней сразу делают основную функцию программы main
    public static void main(String[] args) {
        // объявляем переменные
        String name = "Код";
        // выводим строку на экран
        System.out.printf("Привет, это журнал %s \n", name);
    // конец основной функции
    }
// конец описания класса
}

Ввод и вывод

Для ввода и вывода используют системный класс System и два его объекта — in и out. Но на практике чаще всего вместо in используют объект Scanner, чтобы можно было более гибко управлять вводом данных.

// подключаем класс Scanner 
import java.util.Scanner;

// класс с программой
public class Program {
   
  	// основная функция
    public static void main(String[] args) {
         
        // создаём новый объект ввода, через который будем дальше работать
        Scanner in = new Scanner(System.in);

        // выводим строку
        System.out.print("Введите имя: ");
        // создаём переменную name и помещаем в неё то, что пользователь введёт с клавиатуры
        String name = in.nextLine();

        // выводим ещё одну строку
        System.out.print("Возраст: ");
        // так же запоминаем возраст в другую переменную
        int age = in.nextInt();

        // просим ввести рост
        System.out.print("Введите рост: ");
        // запоминаем введённое значение
        float height = in.nextFloat();

        // выводим строку с результатом
        System.out.printf("Имя: %s  Возраст: %d  Рост: %.2f \n", name, age, height);

        // закрываем наш объект ввода, потому что пока он больше не нужен
        in.close();
    }
}

Условные операторы if и switch

Работают так же, как в C и в любых современных языках высокого уровня. Главное здесь — следить за фигурными скобками и не перепутать, что к чему относится. Проще всего это регулировать отступами:

// числа для сравнения
int num1 = 6;
int num2 = 8;

// если первое больше второго
if(num1>num2){
	// выводим результат
    System.out.println("Первое число больше второго");
}
// если первое условие не выполнилось — можем проверить второе
else if(num1<num2){
		// выводим другой результат
    	System.out.println("Первое число меньше второго");
	}
	// если и это условие не выполнилось
	else{
		// выводим финальное сообщение
	    System.out.println("Числа равны");
	}

У оператора множественного выбора есть особенность: ему не нужны фигурные скобки для действий в каждом случае. Компьютер по синтаксису понимает, что к чему относится, и выбирает нужный вариант.

// число для сравнения
int num = 8;

// сравниваем значение этого числа с нашими вариантами
switch(num){     
	// если число = 1
    case 1: 
    	// выводим сообщение
        System.out.println("число равно 1");
        // выходим из дальнейших проверок
        break;
    // если число = 8
    case 8: 
        System.out.println("число равно 8");
        // увеличиваем число на 1
        num++;
        break;
    // если число = 9
    case 9: 
        System.out.println("число равно 9");
        break;
    // если ни один из вариантов не подошёл
    default:
        System.out.println("число не равно 1, 8, 9");
}

Циклы

В Java есть три основных вида циклов:

  • for — с известным числом повторений и счётчиком;
  • do — с проверкой условия до цикла;
  • while — условие проверяется после первого выполнения цикла.

Ещё есть два полезных оператора:

  • break — прерывает цикл в любой момент;
  • continue — сразу переходит к следующему витку цикла без выполнения остальных команд.

// цикл со счётчиком
// задаётся начальное значение, условие и шаг цикла
for (int i = 1; i < 9; i++){
	// тело цикла
    System.out.printf("Квадрат числа %d равен %d \n", i, i * i);
}

// то же самое с циклом do
int j = 1;
// начинаем цикл
do{
	// выводим результат
    System.out.printf("Квадрат числа %d равен %d \n", i, i * i);
    // увеличиваем переменную цикла
    j++;
}
// проверяем условие цикла
while (j < 9);

// и то же самое с циклом while
int k = 1;
// начинаем цикл и сразу проверяем условие
while (k < 10){
	// выводим результат
    System.out.printf("Квадрат числа %d равен %d \n", k, k * k);
    // увеличиваем переменную цикла
    k++;
}

Функции (они же методы)

Так как каждая программа — это описание какого-то класса, то функции в Java — это и есть методы этого класса. Функций (или методов) может быть сколько угодно, главное — соблюдать правила описания классов. Покажем на примере:

// программа — класс
public class Program{

    // публичная часть, доступная всем
    // основная функция-метод main
    public static void main (String args[]){
    	// вызваем методы (функции) в любое время
    	hello();
    	welcome();
    }

    // метод hellо(), который не передаёт и не принимает никаких аргументов
    void hello(){
         
        System.out.println("Привет!");
    } 

    // метод welcome()
    void welcome(){

        System.out.println("Это журнал Код.");
    }
}

Классы

В Java всё построено на классах, от самой программы до реализаций различных функций. Конечно, можно не использовать классы и работать в чисто процедурном стиле, но в Java так не принято. Это ООП-язык с родной поддержкой классов на всех уровнях.

Сами классы объявляются и используются так же, как и в любом другом ООП-языке:

// объявляем новый класс с информацией о заказанном товаре
class Order{
     
   	// переменные класса
    String name;        // название 
    int cost;           // стоимость

    // метод класса
    void displayInfo(){
    	// выводим информацию о заказе
        System.out.printf("Заказ: %s \tСтоимость: %d\n", name, cost);
    }
}

Объекты

Объекты в Java работают по тому же принципу, что и все объекты в ООП: можно создавать сколько угодно объектов на основе классов и делать их любой сложности. 

Обычно используют классы, прописанные в том же файле, что и программа. Если нужно использовать класс из другой программы, её подключают отдельно. Вот самый простой способ сделать объект на основе предыдущего класса с заказом:

// программа — тоже класс
public class Program{

    // основная функция-метод main
    public static void main (String args[]){
    	// создаём новый объект на основе класса ниже
    	Order new_order;
    	// заполняем данные
    	new_order.name = "Айфон";
    	new_order.cost = 9999;

    	// вызываем метод класса
    	new_order.displayInfo();
    }

   
}

// объявляем новый класс с информацией о заказанном товаре
class Order{
     
   	// переменные класса
    String name;        // название 
    int cost;           // стоимость

    // метод класса
    void displayInfo(){
    	// выводим информацию о заказе
        System.out.printf("Заказ: %s \tСтоимость: %d\n", name, cost);
    }
}

Текст:

Михаил Полянин

Редактура:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Java — это не будущее, это уже настоящее
Изучите программирование на Java и станьте тем, кто поддерживает современную ИТ-инфраструктуру во всём мире
Начать бесплатно
Java — это не будущее, это уже настоящее Java — это не будущее, это уже настоящее Java — это не будущее, это уже настоящее Java — это не будущее, это уже настоящее
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
Векторы: третий уровень сложности
Векторы: третий уровень сложности

Знакомимся с коллинеарностью.

medium
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?

Что нужно делать, чтобы получать столько же.

easy
JavaScript для новичков: чем опасны нестрогие типы данных
JavaScript для новичков: чем опасны нестрогие типы данных

В JavaScript есть удобная штука, которая может сильно вам навредить.

medium
Что делает тестировщик на работе
Что делает тестировщик на работе

Все думают, что он ищет баги, но на самом деле…

easy
Стоит ли идти в фулстек-разработку в 2024 году? Разговор про бэкенд, фронтенд и будущее профессии
Стоит ли идти в фулстек-разработку в 2024 году? Разговор про бэкенд, фронтенд и будущее профессии

Спойлер: стоит

easy
Как работают алгоритмы кодирования в радиосвязи
Как работают алгоритмы кодирования в радиосвязи

Как вообще это возможно — что по воздуху к нам прилетает видео?

medium
Подборка сайтов, где тестировщики могут проверить свои силы
Подборка сайтов, где тестировщики могут проверить свои силы

Пройди их все

easy
Что такое альфа- и бета-версии
Что такое альфа- и бета-версии

Иногда тестировщики — это мы с вами

easy
Что такое Kotlin?
Что такое Kotlin

И зачем он андроид-разработчику.

easy
easy