![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
V0R0N91 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.11.2011 Репутация: нет Всего: нет |
Задача для первого класса, но я только учусь!!
условие:1. Создайте новый класс и назовите его TemperatureConverter. Добавьте в него метод для преобразования температур, с такой cигнатурой: public String convertTemp(int temperature, char convertTo) Если аргумент convertTo равен F, то температура должна быть преобразована в Фаренгейты, если C, то в Цельсии. когда вы будете вызывать этот метод, поместите значение аргумента типа char в одинарные кавычки.
Плз покритикуйте !!!! Что так а что не так , я просто хочу с самого начала писать более менее грамотный код=) P S Всем спасибо! |
|||
|
||||
V0R0N91 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 27.11.2011 Репутация: нет Всего: нет |
Сори не тот код :
|
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
что-то я особой разницы в коде не заметил, хотя не присматривался ![]() ИМХО, написано норм, только можно бы вместо банального
сгенерировать какой-нибудь эксэпшен. -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: нет Всего: 3 |
1) не помешали бы скобки... если код в case вырастет, будет сложно читать.
2) convertTo можно изначально делать toLowerCase и писать только одну проверку. |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
блин, не смог удержаться...
V0R0N91, ну что за издевательство?! нормальный код ты списал откуда то... и что?... |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Ну чтобы не палиться, что вы только начали
http://www.oracle.com/technetwork/java/jav...141855.html#277 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
Pretorian |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 9.12.2011 Где: нигде Репутация: 1 Всего: 1 |
А к чему это? |
|||
|
||||
chupaYchups |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.9.2011 Репутация: нет Всего: нет |
выбрасывай IllegalArgumentException в случае кривого символа, Сharacter.toUpperCase() перед свитчом
опять же странный какой то метод - принимает целочисленную температуру - а возвращает строковую public int convertTemp(int temperature, char convertTo) - было бы логичнее для метода с названием конверт, также я бы зафигачил внутренний енум - но это моя слабость - дело то хозяйское) |
|||
|
||||
carper |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 1 Всего: 8 |
V0R0N91,
Ну, если уж учиться ... Что сделал бы я: 1. Метод "должен" быть static final. 2. Название пакета не должно совпадать с названием класса. Ну некрасиво это. И, вообще, посмотрите как принято называть пакеты. 3. char convertTo некрасиво ужасно, лучше ENUM, но хотя бы делайте перед сравнением приведение к одному регистру. 4. Метод должен преобразовывать, а не печатать, или что-то там округлять. Поэтому возвращайте double, пользователь сам решит, что с этим делать. 5. System.out.println("Error"); - еще раз, дело метода преобразовывать, а не печатать, если преобразовать не получается, то надо выбросить ошибку, а не писать в консоль "караул". 6. Где описание метода? Как по мне - уже одно это говорит о неграмотном коде. Может название метода и самодокументированное, но вот что делает, например, char convertTo ? понимает только автор метода и то только первую неделю ... А еще, например, как мне догадаться, что метод не проверяет переданные числа на допустимость и может мне вернуть -456С? Интуитивно? 7. 0K = −273.15 °C, а не -273! 8. "Если аргумент convertTo равен F, то температура должна быть преобразована в Фаренгейты, если C, то в Цельсии." Какая прелесть! Т.е. во что температура должна быть преобразована догадались, а из чего нет? Т.е. сижу это я в интернет, читаю книжку, ну того же Дюма, а он там, вот сюрприз-то температуру в Реомюрах дает. Ввожу я ее в ваш калькулятор и получаю "хрень разноцветная 1 штука"! Кстати, сюрприз! - Вики знает еще минимум 4 шкалы : Ранкин Делиль Ньютон Рёмер! Что это за штуки я, кстати, сам не знаю, но есть же ![]() Ага, я уже догадался, как хочется сказать, что для учебной задачи это не важно, так обломитесь! ![]() Медленный код можно, не очень грамотный технически можно, не документированный можно, а вот имеющий на выходе "хрень зеленая 1 штука" нельзя! 9. Вообще-то, в нашем учебном примере хорошо бы перейти к замене switch на полиморфизм, интерфейсы, фабрики и т.п. (всякие там паттерны типа стратегии). Т.е. есть куда расти с этим же самым примером от 1 до 10 класса! ![]() |
|||
|
||||
Сонечка |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.7.2011 Где: Msс Репутация: нет Всего: нет |
Мне вот подумалось, что будет, если я выложу свой любимый из текущего проекта класс, который занимает, прости господи, 6000 строк, если на такую милую задачку 9 пунктов нашлось
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Можешь ничего не выкладывать, 6000 строк это уже приговор - все переписать. ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Сонечка |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 19.7.2011 Где: Msс Репутация: нет Всего: нет |
Дааа, больше стараюсь такую абракадабру не писать) Остальное пока за 600 строк не вылазило ![]() ![]() Добавлено через 3 минуты и 3 секунды Пересчитала. 50+ классов ![]() |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
афторы книжек разных во-во. только она не единственная. нужна архитектура на всех уровнях: приложение, модуль, класс, функция. тогда программа будет короче, понятнее, и, возможно, быстрее. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Ну вот, наблюдаем ООП головного мозга. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
502 |
|
|||
![]() Я всегда прав ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 16.7.2011 Репутация: нет Всего: 4 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |