Я относительно новичок в программировании на Java и имею небольшую проблему с объектно-ориентированным аспектом. Итак, давайте займемся этим! Недавно я написал программу, чтобы найти все простые числа между 0 и числом, x и где «i» - простое число. В этой программе две строки были такими же, как и следующие.Использование «нового» ключевого слова (Java)
BigInteger one = BigInteger.valueOf(i);
one = one.nextProbablePrime();
Цель этих строк, чтобы преобразовать целое число, т.е. в BigInteger использовать использовать метод nextProbablePrime. Оглядываясь назад, я вижу, что я не использовал ключевое слово «новый», и поэтому не создавал экземпляр класса BigInteger, но программа все еще составлялась и выполнялась без заминки. Почему программа способна использовать метод nextProbablePrime, скомпилировать и запустить, если экземпляр класса BigInteger не был создан? Кроме того, не будет создавать работу объекта в других ситуациях и с другими классами и методами. Кроме того, будет ли это препятствовать мне использовать полную функциональность класса BigInteger и считается ли это хорошей практикой программирования?
Я также переписал ему две строки кода из вышеперечисленного, в две строки кода, оставив остальную часть программы без изменений.
BigInteger one = new BigInteger(String.valueOf(i));
one = one.nextProbablePrime();
Я изменил первую строку этих двух, чтобы включить использование слова «новое». Как я и ожидал, он бежал без недостатка. Возвращаясь к другим вопросам, какой из них лучше? Какой из них даст мне наибольшую функциональность, несмотря на класс или метод, который я использую, и какой из них больше считается хорошей практикой?
Подводя итоги, я задаю следующие вопросы: 1. Какой именно? 2. Какой из них будет работать во всех ситуациях, несмотря на класс или метод, который я использую? 3. Какой из них считается хорошей практикой программирования? 4. Как первый работает без создания объекта?
Быстрая ссылка на класс BigInteger, для тех, кто может захотеть взглянуть на него - here
Кому бы ни было «-1» в моем посте, могу я спросить, почему вы это сделали? Это просто так, что я не буду делать ту же ошибку в следующий раз при публикации вопроса. – Novice
Сделайте еще одну вещь. Из самого вопроса ясно, что вы не привязали исходный код классов, поэтому откройте любой класс, скажем BigInteger, eclipse попросит приложить источник, зайдите в свой установочный каталог Java, скажем: «C: \ Program Files (x86) \ Java \ jdk1.6.0_45" . Теперь для любых проблем в существующем коде/методе всегда открывайте класс и смотрите, что на самом деле происходит в фоновом режиме – Algorithmist
, вероятно, bcoz длинного текста вашего вопроса. В будущем попробуйте сохранить свой вопрос простым, коротким и точным. так, как я этого не сделал) – Algorithmist