Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример класса: точки на плоскости



  1. Создайте класс окружностей на плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, подсчитывающий площадь окружности. С использованием построенного класса создайте две окружности: одну с центром в (0;0) и радиусом 12, а вторую с центром в (3;5) и радиусом 11. Посчитайте площадь обеих окружностей.
  2. Создайте класс отрезков на координатной плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, подсчитывающий длину отрезка. С использованием построенного класса создайте два отрезка: один от точки (1;1) до точки (2;2) и второй отрезок от точки (-3;0) до точки (1;1). Посчитайте длину отрезков.
  3. Создайте класс прямоугольных треугольников, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, подсчитывающий площадь треугольника. С использованием построенного класса создайте два треугольника: один с катетами 3 и 4 и второй с катетами 5 и 6. Посчитайте их площадь.
  4. Создайте класс комплексных чисел, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, вычисляющий сумму двух комплексных чисел. С использованием построенного класса создайте два комплексных числа: 3i+1 и 2i-1. Вычислите с помощью метода и выведите на экран их сумму.
  5. Создайте класс правильных n-угольников, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, вычисляющий периметр многоугольника. С использованием построенного класса создайте семиугольник со стороной 6. Вычислите с помощью метода и выведите на периметр многоугольника.
  6. Создайте класс прямых на плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий параллельны ли две прямые. С использованием построенного класса создайте две прямых: одну с угловым коэффициентом 2 и свободным членом 8, а вторую с угловым коэффициентом 8 и свободным членом 3. Проверьте с помощью созданного метода, параллельны ли прямые и если да, то выведите соответствующее сообщение на экран.
  7. Создайте класс прямоугольников, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий равны ли два прямоугольника по площади. С использованием построенного класса создайте один прямоугольник со сторонами 3 и 8 и второй прямоугольник со сторонами 6 и 4. Проверьте с помощью созданного метода, равны ли прямоугольники по площади и если да, то выведите соответствующее сообщение на экран.
  8. Создайте класс углов отложенных против часовой стрелки от положительного направления оси абсцисс, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий задают ли углы перпендикулярные прямые. С использованием построенного класса создайте угол в 10° и второй угол в 280°. Проверьте с помощью созданного метода, задают ли углы перпендикулярные прямые и если да, то выведите соответствующее сообщение на экран.
  9. Создайте класс окружностей на плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, высчитывающий длину окружности. С использованием построенного класса создайте две окружности: одну с центром в (0;0) и радиусом 12, а вторую с центром в (3;5) и радиусом 11. Посчитайте длину окружностей.
  10. Создайте класс отрезков на координатной плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий имеют ли два отрезка хотя бы один общий конец. С использованием построенного класса создайте два отрезка: один от точки (1;1) до точки (2;2) и второй отрезок от точки (-3;0) до точки (1;1). Проверьте с помощью созданного метода, имеют ли отрезки общий конец и если имеют, то выведите соответствующее сообщение на экран.
  11. Создайте класс прямоугольных треугольников, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, вычисляющий длину высоты, опущенной на гипотенузу. С использованием построенного класса создайте треугольник с катетами 3 и 4. Вычислите с помощью метода и выведите на экран длину высоты опущенной на гипотенузу.
  12. Создайте класс комплексных чисел, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, считающий разность двух чисел. С использованием построенного класса создайте два комплексных числа: 3i+1 и 2i-1. Посчитайте их разность.
  13. Создайте класс прямых на плоскости, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий перпендикулярны ли две прямые. С использованием построенного класса создайте две прямых: одну с угловым коэффициентом 2 и свободным членом 8, а вторую с угловым коэффициентом 8 и свободным членом 3. Проверьте с помощью созданного метода перпендикулярны ли прямые.
  14. Создайте класс прямоугольников, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий равны ли два прямоугольника по периметру. С использованием построенного класса создайте один прямоугольник со сторонами 3 и 8 и второй прямоугольник со сторонами 6 и 4. Проверьте с помощью созданного метода, равны ли прямоугольники по периметру и если да, то выведите соответствующее сообщение на экран.
  15. Создайте класс углов отложенных против часовой стрелки от положительного направления оси абсцисс, описав в нём все необходимые свойства, подобрав им понятные имена и правильные типы данных. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, проверяющий задают ли углы параллельные прямые. С использованием построенного класса создайте угол в 10° и второй угол в 280°. Проверьте с помощью созданного метода, задают ли углы параллельные прямые и если да, то выведите соответствующее сообщение на экран.
  16. Создайте класс, содержащий информацию о почтовом адресе организации (индекс, страна, область, населенный пункт, улица, номер дома). Предусмотрите возможность раздельного изменения составных частей адреса. Продемонстрируйте работу класса.
  17. Создайте класс для представления комплексных чисел с возможностью задания вещественной и мнимой частей как числами типов double, так и целыми числами. Создайте в классе метод, считающий сумму двух чисел. С использованием построенного класса создайте два комплексных числа: 3i+1 и 2i-1. Посчитайте их сумму.
  18. Создайте класс book, содержащий поля: название, автор, издательство, количество страниц. Определите для класса два конструктора и метод show(). Продемонстрируйте работу класса.
  19. Создайте класс house, содержащий поля: адрес, количество этажей, количество квартир. Определите для класса два конструктора и метод show(). Продемонстрируйте работу класса.
  20. Создайте класс, содержащий информацию о названии, цвете, цена за цветок, количестве цветов в букете. Определите для класса конструктор, методы для вывода информации о букете и подсчета общей стоимости букета. Продемонстрируйте работу класса.
  21. Создайте класс, содержащий информацию об автомобиле: марка, цвет, год выпуска, пробег. Определите для класса конструктор. Создайте в классе метод, проверяющий, какой из двух автомобилей имеет больший пробег. Продемонстрируйте работу класса.
  22. Создайте класс, содержащий информацию о рыбе: название, вес, длина. Определите для класса конструктор. Создайте в классе метод, проверяющий, какая из двух рыб имеет больший вес. Продемонстрируйте работу класса.
  23. Создайте класс, содержащий информацию о ноутбуке: название, вес, размер экрана, стоимость. Определите для класса конструктор. Создайте в классе метод, проверяющий, какой из двух ноутбуков имеет меньшую стоимость. С использованием построенного класса создайте два ноутбука. Продемонстрируйте работу методов.
  24. Создайте класс, содержащий информацию об одежде: название вещи, цвет, размер, цена. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, позволяющий вывести на экран всю информацию о вещи. Продемонстрируйте работу класса.
  25. Создайте класс, содержащий информацию об элементе таблицы Менделеева: название элемента, порядковый номер, масса. Опишите в классе три конструктора, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, позволяющий вывести на экран всю информацию об элементе. Продемонстрируйте работу класса.
  26. Создайте класс, содержащий информацию о домашнем животном: вид животного, кличка, количество лап, наличие хвоста, возраст. Опишите в классе конструктор, позволяющий при создании нового объекта явно задать все его свойства. Создайте в классе метод, позволяющий вывести на экран всю информацию о животном, если его возраст больше пяти лет. Продемонстрируйте работу класса.
  27. Создайте массив из n случайных целых чисел. Выведите на экран все четные числа из массива и посчитать их количество.
  28. Сгенерируйте последовательность Фибоначчи заданного количества элементов.
  29. Определите, является ли число, введенное пользователем, простым.
  30. Решите квадратное уравнение.
  31. Найдите количество нечетных двузначных натуральных чисел.
  32. Найдите сумму квадратов натуральных чисел меньших N.

 



 

Пример класса: точки на плоскости

 

// Имя пакета у вас может отличаться, оно задаётся при создании проекта.

package geometry;

// Класс Scanner потребуется нам для ввода данных в одном из методов.

import java.util.Scanner;

 

/* В классе Main мы сможем пользоваться методами и объектами класса

* Point, который мы опишем позже. Это допустимо. Хотя для

* последовательности восприятия рекоменуем вам пролистать пример

* до того момента, где создаётся класс Point и уж потом вернуться к

* изучению класса Main с его методом main. Кстати, класс Main можно

* было описать и после класса Point.

*/

 

public class Main {

 

public static void main(String[] args) {

// Создаём объект класса точек с помощью конструктора по умолчанию

Point a = new Point();

System.out.println("Задайте координаты первой точки на плоскости: ");

// Применяем к объекту метод для ввода координат с клавиатуры

a.inputPoint();

// Создаём второй объект с помощью конструктора с двумя параметрами

// Параметры мы указали такие, что точка также совпадёт с началом

// отсчёта, как если бы воспользовались консутрктором по умолчанию.

Point b = new Point(0,0);

System.out.println("Задайте координаты второй точки на плоскости: ");

// Применяем ко второму объекту метод для ввода координат с клавиатуры

b.inputPoint();

/* Далее мы проверим совпадают ли точки и, если нет, то вычислим

* расстояние между ними и выведем его на экран. Сравнение точек мы

* производим с помощью метода, сравнение a==b всегда даст ложный

* результат, поскольку a и b хранят ссылки (адреса) объектов, а даже

* два объекта с одинаковыми значениями всех свойств имеют разные

* адреса в памяти.

*/

if(a.isSame(b)) {

System.out.println("Точки совпадают!");

} else {

System.out.println("Расстояние между точками: "+b.getDistance(a));

}

/* Далее мы проверим какая из точек расположена ближе к началу

* координат. И сообщим об этом пользователю.

*/

if(a.getRadius() < b.getRadius()) {

System.out.println("К началу координат ближе первая точка!");

} else if(a.getRadius() == b.getRadius()) {

System.out.println("Точки равноудалены от начала координат!");

} else {

System.out.println("К началу координат ближе вторая точка!");

}

}

 

}

 

class Point {

 

/* Описываем свойства класса точек на плоскости. Каждая точка

* в ПДСК характеризуется двумя действительными числами —

* координатами точки. Из этих соображений создаём два свойства

* типа double.

*/

double x; // абсцисса точки

double y; // ордината точки

 

// Метод выводящий точку на экран в формате: (x;y)

void printPoint() {

System.out.print("("+x+";"+y+")");

}

 

// Метод перемещающий точку в указанное положение

void setPoint(double a, double b) {

x = a;

y = b;

}

 

/* Далее мы перегрузим предыдущий метод, т.е. создадим метод

* с тем же именем, но с другим набором аргументов. Пусть метод теперь

* имеет один аргумент и его значение передаёт обоим своствам точки.

* С помощью этого метода, соответсвенно, точку можно будет передвигать

* на биссектрису I и III координатных четвертей.

*/

void setPoint(double a) {

x = a;

y = a;

}

 

// Метод для задания новых координат точки с клавиатуры

void inputPoint() {

Scanner inp = new Scanner(System.in);

System.out.print("Введите абсциссу: ");

double a = inp.nextDouble();

System.out.print("Введите ординату: ");

double b = inp.nextDouble();

/* В создаваем методе мы вызываем другой существующий в классе метод.

* Это допустимо и удобно.

*/

setPoint(a,b);

}

 

/* Метод проверяющий, совпадают ли две точки. Метод работает

* с двумя точками, но свойства той, для которой метод вызывается,

* доступны непосредственно, а свойства второй точки, передаваемой

* через аргумент — доступны как имя_объекта.имя_свойства

*/

boolean isSame(Point a) {

if(x == a.x && y == a.y) {

return true;

} else {

return false;

}

}

 

// Метод вычисляющий расстояние между двумя точками

double getDistance(Point a) {

return Math.sqrt(Math.pow(x-a.x, 2) + Math.pow(y-a.y, 2));

}

 

// Метод вычисляющий расстояние от указанной точки до начала координат

double getRadius() {

Point a = new Point(0,0);

return this.getDistance(a);

}

 

/* Конструктор по умолчанию, его можно не описывать явно, тогда объект

* будет создаваться, а его свойства будут получать те значения

* по умолчанию, что предусмотрены типом данных. Для int это 0, для

* double это 0.0 и пр.

*/

Point() {

x = 0;

y = 0;

}

 

/* Второй конструктор с двумя аргументами, он поможет создавать точку

* с нужными координатами, сразу указывая их при создании объекта.

*/

Point(double x, double y) {

/* Неудобные имена параметров, перекрывающие имена свойств, здесь

* выбраны специально, чтобы показать, что столь неудачный подбор

* имён не создаёт неразрешимой проблемы. Дело в том, что в Java

* имеется специальное слово this, которое заменяет имя того объекта,

* для которого был вызыван выполняем метод или того объекта, который

* только создаётся конструктором. Соответсвенно, this.x это абсцисса

* (первое свойство) создаваемого объекта.

*/

this.x = x;

this.y = y;

}

 

}


Дата добавления: 2015-11-04; просмотров: 49 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
 | 

mybiblioteka.su - 2015-2024 год. (0.028 сек.)