4. Введение в Java. Класс. | Технострим
4. Введение в Java. Класс. | Технострим
https://www.youtube.com/watch?v=IoTkYtSUe-4
00:04 Обсуждение наследования и класса
• В лекции обсуждается наследование и класс в Java, а также как работать с классом без наследования.
• Рассматривается пример домашнего задания, где студенты должны были написать метод для проверки скобочной последовательности на правильность.
01:35 Создание объектов и использование стека
• Обсуждается, что создание нового объекта с помощью ключевого слова new потребляет новую память и требует времени на создание.
• Предлагается использовать массив символов или указатель для проверки скобочной последовательности, что позволяет избежать создания нового объекта.
• Класс в Java - это шаблон объекта, который описывает его поведение и методы взаимодействия с ним.
• Класс может содержать данные и методы, которые позволяют взаимодействовать с объектом.
• Класс также может содержать поля, которые могут быть публичными или приватными, и методы, которые могут быть статическими или нестатическими.
09:08 Создание класса и его использование
• Создание класса с именем "классик" и переменной "имя".
• Обращение к статическим полям и методам класса.
16:39 Передача параметров в методы
• Параметры передаются по значению, примитивные типы - по значению, экземпляры классов - по ссылке.
• Пример вызова метода с параметрами и их передача.
25:05 Повышение типов и вызов методов
• Можно вызывать методы с разными типами параметров, но результат будет зависеть от типа переменной, в которую они передаются.
• Пример работы с методами с разными типами параметров и их вызов.
• В видео обсуждаются правила повышения и понижения типов в Java.
• Приводится пример с методами, принимающими разные типы параметров, и выясняется, какие из них будут работать, а какие нет.
• Объясняется, что анбоксинг - это процесс преобразования объекта в его класс, а кастование - это процесс преобразования переменной в другой тип.
• Приводится пример, когда переменная типа шорт может быть явно преобразована в байт.
• Перегруженные методы - это методы с одинаковыми названиями, но разными параметрами типов или возвращаемыми значениями.
• Обсуждается пример, когда два метода принимают одинаковые параметры, но возвращают разные значения.
45:24 Перегрузка методов и конструкторов
• В видео обсуждается перегрузка методов и конструкторов в Java.
• Перегрузка методов позволяет вызывать один и тот же метод с разными параметрами, но с разными типами возвращаемых значений.
• Перегрузка конструкторов позволяет создавать объекты с разными параметрами, но с одинаковым типом возвращаемого значения.
• В видео объясняется, что конструктор позволяет инициализировать поля класса, но только если все поля являются приватными и не имеют геттеров и сеттеров.
• Если поля не инициализированы в конструкторе, они будут иметь значения по умолчанию.
58:25 Конструкторы с разными параметрами
• В видео рассматривается случай, когда у класса есть несколько конструкторов с разными параметрами.
• Для решения этой проблемы можно использовать ключевое слово "this" для вызова другого конструктора.
• Также можно использовать ключевое слово "super" для вызова родительского конструктора.
01:02:11 Создание объектов и инициализация полей
• В видео обсуждается создание объектов и инициализация их полей в Java.
• Упоминается, что литералы в Java могут быть использованы для создания объектов, и это облегчает поддержку кода.
• Однако, если литералы используются для создания объектов, то они могут быть созданы только один раз.
• Если литералы используются для создания объектов, то они будут созданы только один раз, и это облегчает поддержку кода.
01:06:36 Блоки инициализации и конструкторы
• В видео обсуждаются блоки инициализации и конструкторы в Java.
• Блоки инициализации вызываются при создании класса, а конструкторы - при создании экземпляра класса.
• Если класс имеет статические поля, то они инициализируются при создании класса, а не при создании экземпляра.
• Если класс имеет вложенные классы, то они могут быть вложены внутрь класса, и их можно разделить на несколько частей.
01:12:58 Работа с массивами и обходом элементов
• В видео рассматривается работа с массивами в Java.
• Массивы могут быть созданы с помощью литералов, и их размер может быть ограничен.
• Для обхода элементов массива можно использовать метод get и set.
• Однако, если массив меняется во время обхода, то это может привести к ошибкам.
• Для решения этой проблемы можно использовать метод, который гарантирует, что массив не меняется во время обхода.
01:16:42 Итераторы и их использование
• Итератор - это объект, который позволяет обойти все элементы коллекции, не вызывая каждый раз метод для получения размера коллекции.
• Итераторы могут быть реализованы через внутренний класс, который имеет доступ к полям внешнего класса и может быть использован для проверки изменений в коллекции.
01:24:25 Создание и использование итераторов
• Итераторы могут быть созданы внутри методов или циклов, но их время жизни ограничено временем жизни метода или цикла.
• Итераторы могут быть использованы для проверки изменений в коллекции, но только если они реализованы через внутренний класс.
• Итераторы могут быть объявлены как параметры полей или как локальные переменные внутри методов или циклов.
• Итераторы могут быть использованы для присвоения значений переменным, но только если эти переменные объявлены как final или почти final.
• Вложенные классы могут быть определены в методе или цикле.
• Вложенные классы могут быть вложены в один и тот же файл, но не могут быть статичными.
• Если класс верхнего уровня не совпадает с названием файла, то джава ругается.
• Статичный класс может быть создан только один раз и имеет доступ только к статичным переменным.
• Статичный класс может обращаться к переменным без полного имени.
01:39:11 Создание статичного класса
• Статичный класс может создаваться без экземпляра объекта и может использовать переменные и методы.
• Статичный класс не имеет ссылки на внешний класс и может создаваться из статичных методов.
• Автор объясняет, что при использовании Git для коммитов из IDE, необходимо отключить некоторые проверки, иначе IDE будет ругаться на ошибки.
• Также автор упоминает, что при создании нового бранча из другого бранча, могут возникнуть дополнительные файлы, которые не были ожидаемы.
01:43:33 Работа с Git и GitHub
• Автор объясняет, что Git хранит изменения файлов, а не сами файлы, и что при создании нового бранча, изменения из предыдущего бранча будут перенесены в новый.
• Автор также обсуждает возможность откатить изменения в удаленном репозитории с помощью GitHub.
• Он объясняет, что если вы еще не запушили изменения, можно откатить их, используя команду "git reset".
• Если же изменения уже запущены, можно сделать новый бранч из старого и откатить изменения с помощью команды "git reset --hard".
01:47:28 Восстановление мастера
• Автор объясняет, как восстановить мастер, если он был удален или изменен.
• Можно скопировать текстовый файл и создать новый мастер.
01:50:06 Создание классов для операций
• В новой домашней задаче нужно создать много классов для операций, используя интерфейс Express.
• Необходимо научиться парсить строку и создавать классы для операций с наибольшим приоритетом.
01:54:50 Рекурсия и рекурсивный спуск
• Рекурсия - это метод, который вызывает сам себя.
• Рекурсивный спуск - это метод, который вызывает сам себя, но с условием, что если условие выполнено, то возвращается значение, иначе вызывается сам себя снова.
• Примеры рекурсивного спуска: числа Фибоначчи и другие задачи.