Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Java / JavaScript


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 422
от 25.08.2007, 19:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 372, Экспертов: 31
В номере:Вопросов: 1, Ответов: 1


Вопрос № 98956: Здравствуйте эксперты! Я только начинаю всой путь в мире Java. У меня к вам просьба. Помогите мне, пожалуйста, со следующими кодами. Не могу до конца найти ошибки. Там три разных файла: TestCircle.java, Shape.java и Circle.java. В идеале, он...

Вопрос № 98.956
Здравствуйте эксперты!

Я только начинаю всой путь в мире Java. У меня к вам просьба. Помогите мне, пожалуйста, со следующими кодами. Не могу до конца найти ошибки. Там три разных файла: TestCircle.java, Shape.java и Circle.java. В идеале, они должны взаимодействовать друг с другом, и, в резельтате чего, должно получиться следуюшее:

This shape is a Circle
located at X = 22, Y = 44
Radius is 2.5
The shape area is: 19.63

The changed shape is:
Circle with center at <22, 44> and radius = 4.25
Area is 56.75

Press any key to continue. . .
Заранее благадарю.

Иннокентий

Приложение:

Отправлен: 20.08.2007, 00:09
Вопрос задал: Игнатьев Иннокентий (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: din
Здравствуйте, Игнатьев Иннокентий!
Давайте по порядку.
1. Класс Shape в нем у Вас всего два метода area() и perimeter() которые в обоих случаях возвращают значение 0.00. Встает естественный вопрос, а зачем он нужен? Этот класс просто бессмыслен. Значит мы его просто удаляем.
2. У класса Circle есть конструктор public Circle(double r, int x, int y) и есть поля x и y, как думаете, что делать компилятору в этом случае?
public Circle(double r, int x, int y) {
x = x;
y = y;
setRadius(r);
}
исправляем
public Circle(double r, int X, int Y) {
x = X;
y = Y;
setRadius(r);
}
В том же классе есть метод
public String getLocation() {
return "X = " + X + ", Y = " + Y;
}
нет у вас ни переменных, ни свойств, ни полей с именами X и Y. Java чувствительна к регистру X не то же что x. Исправляем:
public String getLocation() {
return "X = " + x + ", Y = " + y;
}
3. Не используйте оператор " " при выводе. Метод System.out.println автоматически добавляет в конце текста символ перевода строки, и независимо от платформы ОС. Переделываем:
public static void main(String[] args) {
DecimalFormat showTwoDecimals = new DecimalFormat("0.00");
Circle c1 = new Circle(2.5, 22, 44);
System.out.println("This shape is a " + c1.getName());
System.out.println("located at " + c1.getLocation());
System.out.println("Radius is " + c1.getRadius());
System.out.println("");
System.out.println("The shape area is: " + showTwoDecimals.format(c1.area()));

c1.setRadius(4.25);
System.out.println("The changed shape is:");
System.out.println(c1);
System.out.println("Area is " + showTwoDecimals.format(c1.area()));
}
4. В Java желательно объединять классы в пакеты, хотя бы в целях избежания неоднозначности. Поэтому я указал в начале каждого класса директиву package pkgCircle; где pkgCircle имя нашего пакета.
5. Теперь осталось сделать следующее. Создаем директорию TestCircle в ней поддиректорию pkgCircle и уже в ней создаем 2 файла TestCircle.java и Circle.java. Из директории TestCircle вызываем компилятор Java и компилируем наш проект:
javac pkgCircle/TestCircle.java pkgCircle/Circle.java
6. И наконец запускаем нашу программу:
java pkgCircle.TestCircle
и видим то, что Вы хотели видеть.
Полностью исправленный код в приложении.
Удачи!

Приложение:

---------
Есть только одно зло - невежество, и только одно благо - знания

Ответ отправил: din (статус: Практикант)
Ответ отправлен: 20.08.2007, 01:46
Оценка за ответ: 5
Комментарий оценки:
Уважаемый din,

Я искренне благодарю Вас за Вашу помощь. Спасибо Вам.

Иннокентий


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.56 beta от 20.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное