Урок «Модуль 3. Урок 3. Уровни методов в Java.» Урок «Модуль 3. Урок 3. Уровни методов в Java.» Модуль 3....
Чтобы смотреть видео нужно иметь активную платную подписку и вступить в курс. Войти или зарегистрироваться.

Перед просмотром лекции желательно освежить в памяти знания про методы: что такое методы, как их создавать и как их вызывать.

Методы бывают двух уровней - уровня инстанс (не static) и уровня класса (static) .   Метод уровня инстанс - дефолтный метод без ключевого слова static, если же слово static присутствует - метод уровня класса.

class Game {
    int levels = 3;

    public void printGameName() {
        System.out.println("Star Wars!");
    }

    public void printLevelCount() {
        System.out.println("Levels count %d", this.levels);
    }
}
  • Первый метод printGameName() -  выводит на экран название игры.
  • Второй метод printLevelCount() - выводит на экран количество уровней.

Джава создаст фрейм метода - как минимум там будет находится ссылка this , которая указывать на конкретный инстанс класса.

Чтобы вызывать методы нужен конкретный инстанс. Сначала создаем инстанс класса, и после этого только вызываем.

class Main {

    public static void main(String... args) {
        Game game = new Game();
        game.printGameName();
        game.printLevelCount();
    }

}   

Нужен ли this во всех этих методах? (Указатель на текущий инстанс в оперативной памяти).

В методе printGameName() не нужен // метод не использует данные инстанс

В методе printLevelCoun()t нужен // метод использует состояние объекта, нужно пользоваться данными из оперативной памяти

Нужно внести изменения в метод printGameName () // добавить слово static - явно сказать, что метод класс уровня:

public static void printGameName() {
    System.out.println("Star Wars!");
}

При создании фрейма для класс уровня метода в фрейме не будет ссылки this. Такие методы не имеют доступа к полям инстанса. Для вызова такого метода не нужен инстанс, так как он не использует поля инстанса. Вызвать такой метод можно из под имени класса.

class Main {
public static void main(String... args) {
    Game game = new Game();
    Game.printGameName();
    game.printLevelCount();
    }
}

Дальше создание классов на реальном проекте "Крестики-нолики".

Полезные ссылки:

Группы для общения: