Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Упражнения 4 
:(
    Опции темы
korob2001
Дата 30.6.2005, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 1
Всего: 61



Привет!!! smile
Это опять я с упражнениями. В этой главе их 4, но я наверное буду писать их последовательно, по мере их решения.

Упражнение 1:
Определите класс для объектов-прямоугольников, определяемых по двум точкам, верхнему левому и нижнему правому углам прямоугольника. Включите конструктор для копирования прямоугольника, метод, возвращающий объект прямоугольника, который охватывает текущий объект и прямоугольник, переданные в качестве аргумента, и метод для вывода определяющих точек прямоугольника. Проверьте класс, создавая четыре прямоугольника и комбинируя их последовательно, что бы закончить прямоугольником, который будет охватывать их все. Выведите определение точки всех прямоугольников, которые будут созданы.

Решение ( возможно не верное, так как я не совсем понял задание ).
Код класса прямоугольника:
Код

public class Retrangular
{
    double firstX;
    double firstY;
    double secondX;
    double secondY;
    
    // Конструктор определяет новый прямоугольник по координатам двух точек
    // в левом-верхнем углу и правом-нижнем углу
    Retrangular( double firstX, double firstY, double secondX, double secondY )
    {
        this.firstX  = firstX;
        this.firstY  = firstY;
        this.secondX = secondX;
        this.secondY = secondY;
    }
    
    // Конструктор определяет копию уже существующего прямоугольника, который
    // передаётся в качестве параметра
    Retrangular( final Retrangular oldRetrangular )
    {
        firstX  = oldRetrangular.firstX;
        firstY  = oldRetrangular.firstY;
        secondX = oldRetrangular.secondX;
        secondY = oldRetrangular.secondY;
    }
    
    // Метод конвертирует в строку определяющие точки прямоугольника
    public String toString()
    {
        String mkStr = "(" + firstX + ", " + firstY + "):(" + secondX + ", " + secondY + ")";
        return mkStr;
    }
    
    // Метод получает объект прямоугольника и возвращает объект нового прямоугольника
    // который охватывает полученный в качестве параметра
    public Retrangular coverRet( final Retrangular objRet )
    {
        Retrangular newCover = new Retrangular( objRet.firstX - 1.0, objRet.firstY + 1.0, objRet.secondX + 1.0, objRet.secondY - 1.0 );
        return newCover;
    }
}

Код программы использующей класс прямоугольника:
Код

public class UseRetrang
{
    public static void main(String[] args)
    {
        // Переменная счётчик
        int count = 0;
        // Создаём первый объект с заданными координатами
        Retrangular tempObj = new Retrangular( 3.0, 5.0, 5.0, 3.0 );
        // Создаём цикл, до необходимого числа охватывающих прямоугольников
        while ( count < 4 )
        {
            // Выводим в STDOUT координаты текущего объекта
            System.out.println("Coordinats of " + ( count + 1 ) + " retrangular is: " + tempObj);
            // Создаём новый прямоугольник, который охватывает предидущий
            tempObj = tempObj.coverRet( tempObj );
            // Увеличиваем значение счётчика
            count++;
        }
    }
}

Здесь я не совсем понял условие, если быть более точным, то вот этого я не понял:
Цитата

метод, возвращающий объект прямоугольника, который охватывает текущий объект и прямоугольник, переданные в качестве аргумента

В данном случае это метод:
Код

public Retrangular coverRet( final Retrangular objRet )
    {
        Retrangular newCover = new Retrangular( objRet.firstX - 1.0, objRet.firstY + 1.0, objRet.secondX + 1.0, objRet.secondY - 1.0 );
        return newCover;
    }

Подскажите, я правильно понял условия задачи, может имелось ввиду что-то другое? smile

Ещё не понятно, зачем в условии было сказано, что нужно создать конструктор, который делает копию текущего объекта, ведь я его так нигде и не использовал? smile

Спасибо.

Это сообщение отредактировал(а) korob2001 - 30.6.2005, 08:43


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.