Skip to content

feat(35-methods-using): перенос теории из Python и адаптация под java#314

Open
fey wants to merge 2 commits into
mainfrom
update-35-methods-using-from-python
Open

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

Conversation

@fey

@fey fey commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Перенос теории модуля "Использование методов" из эталонного Python-курса в Java с адаптацией. Расширены существующие уроки и добавлены три новых.

Расширенные уроки (объемы, символы RU README)

Урок Python Java до Java после % от Python
100-methods 5989 3159 7114 119%
110-methods-as-expressions 3796 1952 5022 132%
200-methods-deterministic 1931 1377 1933 100%
115-string-immutability 2307 1535 2974 129%
120-methods-chain 3637 2505 4701 129%

Все уроки доведены до объема эталона и выше (порог 85%).

Новые уроки (примеры вызова методов на строках)

Урок Тема Решение
130-string-symbols символ строки по индексу методом charAt(i) "Hexlet".charAt(1)e
140-string-substring подстрока методами substring(begin) и substring(begin, end) "Hexlet".substring(0, 3)Hex
150-string-format подстановка значений через String.format(...) и .formatted(...) String.format("Привет, %s!", "Мир")Привет, Мир!

Источники: Python 31-advanced-strings/{30-symbols, 70-slices, 25-interpolation}. Питоновские особенности убраны: отрицательные индексы, шаг и разворот [::-1] у срезов, f-строки. Вместо синтаксиса s[i] и s[a:b] показаны методы charAt и substring. Каждый урок RU-only (6 файлов), компилируется и проходит тест.

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

  • Вызов методов через точку. В Python функции вызываются как len(s), в Java это методы объекта (s.length()) или статические методы класса (Math.max(2, 3)).
  • Терминология "методы" вместо "функции". В Java функции существуют только внутри классов.
  • Неизменяемость строк. Методы строк возвращают новую строку, исходная не меняется.
  • Цепочка методов. Результат одного метода сразу передается следующему (name.trim().toLowerCase()).
  • Детерминированность на примере charAt() и Math.random().
  • Примеры без условий, циклов и определения своих методов (модуль идет до этих тем).

Что не тронуто

  • Java-only уроки 105-methods-parameters, 400-stdlib, 500-methods-variants (KEEP).
  • В расширенных уроках изменены только ru/README.md и ru/data.yml, локали es/ и en/ и description.*.yml не тронуты.

Проверки

  • yamllint: OK
  • ajv (lesson.json): valid для всех data.yml
  • rumdl: README без замечаний
  • Тесты в Docker: PASS для всех уроков модуля, включая три новых (выводы e, Hex, Привет, Мир!)

🤖 Generated with Claude Code

fey and others added 2 commits June 24, 2026 01:54
Расширены пять уроков модуля до объема эталонного Python-курса с
адаптацией под Java. В Python функции вызываются как len(s), в Java это
методы объекта s.length() или статические методы класса Math.abs(-5).

- 100-methods: добавлены разделы про возврат значения, метод с
  аргументами, параметры и аргументы; в data.yml перенесены definitions
- 110-methods-as-expressions: добавлены выражения как аргументы, вызов
  метода внутри метода с порядком вычисления, методы в составе выражений
- 200-methods-deterministic: структурированы разделы про
  недетерминированные методы и зачем это знать, добавлена диаграмма
- 115-string-immutability: добавлены примеры возврата новой строки и
  диаграмма неизменяемости
- 120-methods-chain: добавлены порядок вычисления и где цепочка
  заканчивается

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ng, string-format

Перенос трех уроков из Python-курса (31-advanced-strings) с адаптацией
под Java: получение символа методом charAt, извлечение подстроки методом
substring, сборка строки через String.format и formatted.

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