Забыли точку с запятой после класса
В Idyllium после тела класса нужна точка с запятой. Эту ошибку легко пропустить, но компилятор о ней сообщит.
Исправление: добавить ; после закрывающей фигурной скобки класса.
Обращение к нестатическому члену из статического метода
Статические методы не имеют доступа к this и нестатическим свойствам/методам класса.
Исправление: либо сделайте метод нестатическим, либо передавайте нужные данные как параметры.
Попытка обратиться к приватному свойству извне
Свойства, объявленные как private, доступны только внутри методов класса. Из main() или других классов к ним обратиться нельзя.
Исправление: создайте публичные методы set_balance() и get_balance() для доступа к приватному свойству.
Класс не найден (забыли подключить файл)
Если класс объявлен в другом файле, его нужно подключить через use.
Исправление: добавить use cat; в начало файла.
Циклическая зависимость файлов
Нельзя, чтобы файл A подключал B, а B подключал A. Это вызывает ошибку.
Исправление: пересмотрите архитектуру проекта. Возможно, классы A и B нужно объединить или вынести общую часть в третий файл.
Использование static метода как нестатического
Статические методы вызываются через класс, а не через объект. Попытка вызвать их через объект приведёт к ошибке.
Исправление: вызывать статические методы через класс: MathUtils.square(5).
Итог
- Не забывайте точку с запятой после определения класса.
- Статические методы не видят
thisи нестатические члены. - Приватные свойства доступны только внутри класса.
- В конструкторе потомка обязательно вызывайте
parent()первым. - Подключайте файлы с классами через
use. - Избегайте циклических зависимостей между файлами.
- Статические методы вызывайте через класс, а не через объект.