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
Как пользоваться ChatGPT в России
Как пользоваться ChatGPT в России

Бесплатно и без ВПН

easy
Декомпозиция задач: что это и зачем нужно
Декомпозиция задач: что это и зачем нужно

И как сделать так, чтобы всё шло по плану.

easy
Где хранить данные, когда их слишком много
Где хранить данные, когда их слишком много

Выбираем хранилище биг-даты под наши задачи

medium
Что нового в Бутстрапе 5
Что нового в Бутстрапе 5

Формы, иконки, компоненты и дизайн

easy
препроцессоры
За что ты послал нам препроцессоры? Чем мы тебя прогневали?

Что такое препроцессоры CSS и зачем они нужны.

medium
easy