Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////// Main
- import java.util.ArrayList;
- import java.util.List;
- public class Main {
- public static void main(String[] args) {
- List<Circle> list=new ArrayList<>(); //инициализация списка окружностей и ее наследников
- for(int i=0;i<Rand.randInt();i++){ //
- list.add(new Circle(Rand.randDouble())); //добавление в список рандомной окружности
- }
- for(int i=0;i<Rand.randInt();i++){
- list.add(new Ball(Rand.randDouble()));//добавление в список рандомного шара
- }
- for(int i=0;i<Rand.randInt();i++){
- list.add(new Conus(Rand.randDouble(),Rand.randDouble()));//добавление в список рандомного конуса
- }
- for(Circle circle:list){ //вывод информации о всез фигурах списка
- circle.info();
- System.out.println();
- }
- double max1=0;
- double max2=0;
- for(Circle circle:list){
- if(circle.getType().equals("окружность")){ //поиск максимума площади среди родителей
- if(circle.square()>max1)
- max1=circle.square();
- }
- else{
- if(circle.square()>max2)//поиск максимума площади среди наследников
- max2=circle.square();
- }
- }
- System.out.println("Маскимальная площадь среди родительских классов: "+max1);
- System.out.println("Маскимальная площадь среди классов-наследников: "+max2);
- }
- private static class Rand{ //класс для генерации рандомных чисел
- private static double randDouble(){//генерации чисел с плавающей точкой
- return Math.random()*10+5;
- }
- private static int randInt(){//генерация целых чисел
- return (int)(Math.random()*3+4);
- }
- }
- }
- ////////// Circle
- public class Circle {
- public static final double PI=3.14; //статическая константа
- private double rad; //радиус
- private String type; //тип фигуры
- public Circle(double rad) { //конструктор
- this.rad = rad;
- type="окружность";
- }
- public double getRad() { //геттер радиуса
- return rad;
- }
- public String getType() { //геттер типа
- return type;
- }
- public void setType(String type) { //сеттер типа
- this.type = type;
- }
- public double square(){ //площадь
- return PI*rad*rad;
- }
- public void info(){ //вывод информации о фигуре на консоль
- System.out.printf("Класс-%s,\nPадиуc: %s\nПлощадь: %s%n",type,rad,square());
- }
- }
- ///////////// Conus
- public class Conus extends Circle{
- private double height; //высота
- public Conus(double rad, double height) { //конструктор
- super(rad);
- this.height = height;
- setType("конус"); //устанавливаем типу значение конус
- }
- @Override
- public void info() { //вывод информации на консоль (переопределение метода)
- super.info();
- System.out.println("Высота: "+height);
- }
- @Override
- public double square() { // переопределение метода по нахождению площади
- return PI*getRad()*(height+getRad());
- }
- }
- /////////////////// Ball
- public class Ball extends Circle{ //механизм наследования
- public Ball(double rad) { //конструктор
- super(rad); //вызов конструктора родительского класса
- setType("шар");
- }
- @Override //переопределение площади
- public double square() {
- return 4*super.square(); //вызов метода площадь родительского класса
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment