Skip to content

feat(40-methods-definition): перенос теории из Python и адаптация под java#307

Open
fey wants to merge 2 commits into
mainfrom
update-40-methods-definition-from-python
Open

feat(40-methods-definition): перенос теории из Python и адаптация под java#307
fey wants to merge 2 commits into
mainfrom
update-40-methods-definition-from-python

Conversation

@fey

@fey fey commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Что сделано

Теория модуля "Определение методов" доведена до объема эталонного Python-курса и адаптирована под Java. Правились только ru/README.md и ru/data.yml.

Объемы (символы, wc -m README)

Java-урок Python-источник Python Java %
100-method-definition-static 100-define-function 3108 4478 144%
200-method-definition-return 150-return 3254 4543 140%
300-method-definition-parameters (часть про параметры) 3931
400-method-definition-default-parameters 200-default-parameters 2140 2652 124%

Все изменяемые уроки выше 85% объема своего источника.

Адаптации под Java

  • static / public / void: метод определяется внутри класса; добавлена разбивка сигнатуры по частям (видимость, static, тип возврата, имя и параметры).
  • Тип возврата обязателен: void, если метод ничего не возвращает; иначе указывается конкретный тип (String, int, long).
  • Перегрузка вместо значений по умолчанию: в Java у параметров нет значений по умолчанию; показана эмуляция через перегрузку методов (несколько методов с одним именем, один вызывает другой). Чужой JavaScript-пример заменен на корректный Python-пример "для сравнения" и переход к перегрузке.
  • Порядок тем: модуль идет до условий и циклов, поэтому в телах методов примеров нет if, циклов и тернарного оператора — только арифметика, строки, конкатенация, return, вызовы и System.out.println.
  • В уроке 100 добавлен раздел про переиспользование и читаемость (зеркало Python).
  • Исправлены ошибки Java-синтаксиса в 300: одинарные кавычки '...' заменены на строковые литералы "...", убрана лишняя четырехбэктиковая ограда, метод replace() получил тело с return.

Что НЕ тронуто

  • 150-method-main — Java-only урок, KEEP.
  • Python-уроки 250-named-arguments (в Java нет именованных аргументов), 300-type-annotations (типы в Java обязательны и встроены), 350-modules, 400-packages — не переносятся.
  • *.java, EXERCISE.md, es/, en/, другие модули.

Проверки

  • grep на ё — пусто; ёлочки «» — пусто.
  • grep на if/for/while/тернарник в телах методов — реальных совпадений нет (срабатывания на прозе "Что это такое?" и в KEEP-уроке 150).
  • yamllint — без ошибок.
  • ajv для всех четырех data.ymlvalid.
  • rumdl — мои README без замечаний.
  • Docker-тесты: PASS для всех пяти уроков (100, 150, 200, 300, 400).

🤖 Generated with Claude Code

fey and others added 2 commits June 24, 2026 01:27
… java

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Во втором блоке класс App определял только sum(int x), но вызывался
App.sum(2, 1) с двумя аргументами — версии с двумя параметрами в этом
классе не было. Перегрузка теперь показана как два метода sum() в одном
классе, что корректно и понятнее для новичка.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant