Я изучаю Java и ООП, и делал проблемы в Euler Проекта для практики (потрясающий сайт btw).
Я делаю многое из того же самого много раз, как:
Что лучший способ состоит в том, чтобы сохранить и назвать этими методами? Если я пишу служебный класс и затем import
это? Если так, сделайте я импортирую a .class
файл или .java
источник? Я работаю от редактора простого текста и терминала Mac.
Спасибо!
Вы можете поместить свои методы в служебный класс, а затем импортировать
этот класс (не файл!).
import my.useful.UtilityClass;
...
boolean isPrime = UtilityClass.isPrime(2);
Когда все начинает усложняться и вы хотите повторно использовать свой материал в нескольких проектах, вы можете поместить его в банку и добавить эту банку в проекты. Затем вы можете импортировать
и использовать класс так же, как указано выше.
Создайте дерево каталогов с вашими ответами. my/math/*.java. Для класса следует указать пакет my.math. Создайте разные классы для разных наборов задач; Primes.java, Fibonacci.java и т.д. Если вы уже решили задачу один раз, не решайте ее снова, если только ваше решение не сломалось.
Добавьте каталог над my/math в свой classpath (java -cp directory) или jar каталог и добавьте его в свой classpath.
Библиотеки, подобные этой, являются жизненной силой успешного проекта. Создание и использование библиотеки решений (для которых в языке еще нет библиотеки) решает ряд проблем проекта. Используйте имеющиеся библиотеки всегда, когда это возможно.
Почему бы не создать jar файл, библиотеку ваших собственных, часто используемых компонентов? Если вы компилируете свой java-код, просто включите архив с утилитой в classpath.
Идея UtilityClass
прекрасна, но она также дает вам возможность попрактиковаться в TDD . Для новой задачи Эйлера создайте пустой метод в своем UtilityClass
, где вы решите эту проблему. Затем сделайте набор тестов JUnit , которые используют этот новый метод и зависят от его правильности. Все тесты завершатся неудачно (или должны, потому что вы еще не написали решение!)
Теперь решите задачу Эйлера и посмотрите, как проходят тесты! Если вы захотите повторно использовать код позже, модульные тесты помогут вам исправить ошибки во время рефакторинга и предоставят место для добавления случаев регрессии для ошибок, которые вы можете найти.