| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > String'овое представление части объекта (вопрос) |
| Автор: BlHol 25.1.2007, 10:52 | ||
| Добрый день! Исходные данные. Есть класс, создающий точку на плоскости с координатами x,y. В том же классе, хочу добавить метод переводящий декартовы координаты в полярные. Причем, нужно чтобы перевод обеих координат был в пределах одного метода и полярные координаты возвращались из метода в виде объекта (чтоб обе сразу, а не на каждую по методу:
Проблема в строковом представлении. При указанной выше перегрузке toString(), при вызове данного класса выдаются все четыре координаты. А мне нужно, чтобы выводились только те пары координат, которые требуются. Если в toString() указывать только x и y, то rad и phi вообще не выдаются. Вторая перегрузка toString() не получается. Вобщем, что делать? Заранее благодарен. С уважением |
| Автор: Alagert 25.1.2007, 10:57 |
| Как то пространно ты объясняешь Ща у тебя явно написан вывод и декартовых и полярных. Так что не удивляйся, что выводится их 4 штуки. |
| Автор: powerOn 25.1.2007, 10:58 | ||
добавь к примеру флаг, значение которого будет идентифицировать в каком виде возвращать координаты. В методе toString() проверяй состояние флага и в зависимости он него делай возврат. Либо полярные, либо декартовые.
|
| Автор: BlackStar 25.1.2007, 11:03 |
| А почему бы не создать отдельный метод для каждого представления (eg. getPolarStr()) ? А если уж есть необходимость в toString() то тогда добавить флаг и метод который его выставляет в класс и в зависимости от флага возвращать нужное представление. UPD: Oops! Мои мысли уже прочитаны powerOn |
| Автор: LSD 25.1.2007, 12:01 | ||
Метод toString() предназначен для отладки (запись в логи и т.п.), и должен выдавать максимально полную информацию об объекте. А для отображения пользователю создан класс Format.
|
| Автор: BlHol 25.1.2007, 12:02 |
| С флагом идею уже думал. Но хочу туда добавить еще методы для перевода декартовых координат в сферические и цилиндрические. Тогда, как флаг использовать? |
| Автор: LSD 25.1.2007, 12:04 |
| Ну или реализовать интефейс Formattable из JDK 1.5 и печетать через printf(). |
| Автор: BlackStar 25.1.2007, 12:11 | ||
Подсказка: флаг не обязательно должен иметь тип boolean. |
| Автор: BlHol 25.1.2007, 13:26 |
| С флагом все замечательно. А если нужно вывести, в том числе, и все четыре координаты. Потом там еще и сферические с цилиндрическими появятся. Их тоже нужно будет выводить либо по-отдельности (попарно), либо в сочетании с другими. Как, в данном случае, быть? |
| Автор: Shurr 26.1.2007, 11:34 | ||
Используй битовые маски для маскирования тех элементов, которые надо отображать. |