java примеры

Примеры на Java (часть 12)

Здравствуйте, продолжаем решать задачи на Java языке, ниже преставлены ещё 30 задач.

Скачать исходники для статьи можно ниже

Примеры на Java (часть 1) можете прочитать здесь.

Примеры на Java (часть 2) можете прочитать здесь.

Примеры на Java (часть 3) можете прочитать здесь.

Примеры на Java (часть 4) можете прочитать здесь.

Примеры на Java (часть 5) можете прочитать здесь.

Примеры на Java (часть 6) можете прочитать здесь.

Примеры на Java (часть 7) можете прочитать здесь.

Примеры на Java (часть 8) можете прочитать здесь.

Примеры на Java (часть 9) можете прочитать здесь.

Примеры на Java (часть 10) можете прочитать здесь.

Примеры на Java (часть 11) можете прочитать здесь.

Задача 310: Пример имплементации класса, используемого в коллекции TreeSet.

public class Girl implements Comparable<Object> {
   String name;
   int mark;

   Girl(String name, int mark) {
      this.name = name;
      this.mark = mark;
   }

   public void getMark() {
      System.out.println(name + " получила " + mark);
   }

   public int compareTo(Object b) {
      Girl car = (Girl) b;
      return (name.compareTo(car.name));
   }
}
import java.util.TreeSet;

public class Exam {
   public static void main(String[] args) {

      Girl student1 = new Girl("Спиридонова", 4);
      Girl student2 = new Girl("Краснашева", 3);
      Girl student3 = new Girl("Барко", 5);

      TreeSet<Girl> group = new TreeSet<Girl>();
      group.add(student1);
      group.add(student2);
      group.add(student3);
      for (Girl students : group) {
         students.getMark();
      }
      System.out.println(" ");
   }
}

Ответ:

Барко получила 5
Краснашева получила 3
Спиридонова получила 4

Задача 311: Приведение и автоупаковка переменных типа int в объект Integer и обратно. Использование объектов Integer в ArrayList.

import java.util.ArrayList;

public class Test {

   public static void main(String[] args) {
      Integer numer1 = new Integer(99);
      System.out.println(numer1);
      Integer numer2 = 100;
      System.out.println(numer2);
      int a1 = numer1.intValue();
      System.out.println(a1);
      int a2 = numer2;
      System.out.println(a2);

      ArrayList<Object> array1 = new ArrayList<Object>();
      Car car1 = new Car("KIA");
      array1.add(car1);
      array1.add(numer1);
      array1.add(numer2);
      array1.add(a1);
      System.out.println(array1.toString());
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }

   public String toString() {
      String s = "Автомобиль " + name + ".";
      return s;
   }
}

Ответ:

99
100
99
100
[Автомобиль KIA., 99, 100, 99]

Задача 312: Приведение и автоупаковка переменных типа double в объект Double и обратно. Использование объектов Double в ArrayList.

import java.util.ArrayList;

public class Test {

   public static void main(String[] args) {
      Double numer1 = new Double(99);
      System.out.println(numer1);
      Double numer2 = 5.666666666;
      System.out.println(numer2);
      double a1 = numer1.doubleValue();
      System.out.println(a1);
      double a2 = numer2;
      System.out.println(a2);

      ArrayList<Object> array1 = new ArrayList<Object>();
      Car car1 = new Car("KIA");
      array1.add(car1);
      array1.add(numer1);
      array1.add(numer2);
      array1.add(a1);
      System.out.println(array1.toString());
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }

   public String toString() {
      String s = "Автомобиль " + name + ".";
      return s;
   }
}

Ответ:

99.0
5.666666666
99.0
5.666666666
[Автомобиль KIA., 99.0, 5.666666666, 99.0]

Задача 313: Приведение и автоупаковка переменных типа char в объект Character и обратно. Использование объектов Character в ArrayList.

import java.util.ArrayList;

public class Test {

   public static void main(String[] args) {
      Character char1 = new Character('b');
      System.out.println(char1);
      Character char2 = 'd';
      System.out.println(char2);
      char a1 = char1.charValue();
      System.out.println(a1);
      char a2 = char2;
      System.out.println(a2);

      ArrayList<Object> array1 = new ArrayList<Object>();
      Car car1 = new Car("KIA");
      array1.add(car1);
      array1.add(char1);
      array1.add(char2);
      array1.add(a1);
      System.out.println(array1.toString());
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }

   public String toString() {
      String s = "Автомобиль " + name + ".";
      return s;
   }
}

Ответ:

b
d
b
d
[Автомобиль KIA., b, d, b]

Задача 314: Приведение и автоупаковка переменных типа boolean в объект Boolean и обратно. Использование объектов Boolean в ArrayList.

import java.util.ArrayList;

public class Test {

   public static void main(String[] args) {
      Boolean bool1 = new Boolean(true);
      System.out.println(bool1);
      Boolean bool2 = false;
      System.out.println(bool2);
      boolean b1 = bool1.booleanValue();
      System.out.println(b1);
      boolean b2 = bool2;
      System.out.println(b2);

      ArrayList<Object> array1 = new ArrayList<Object>();
      Car car1 = new Car("KIA");
      array1.add(car1);
      array1.add(bool1);
      array1.add(bool2);
      array1.add(b1);
      System.out.println(array1.toString());
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }

   public String toString() {
      String s = "Автомобиль " + name + ".";
      return s;
   }
}

Ответ:

true
false
true
false
[Автомобиль KIA., true, false, true]

Задача 315: Приведение и автоупаковка переменных типа byte в объект Byte и обратно. Использование объектов Byte в ArrayList.

import java.util.ArrayList;

public class Test {

   public static void main(String[] args) {
      Byte byte1 = new Byte((byte) 9);
      System.out.println(byte1);
      Byte byte2 = 100;
      System.out.println(byte2);
      byte a1 = byte1.byteValue();
      System.out.println(a1);
      byte a2 = byte2;
      System.out.println(a2);

      ArrayList<Object> array1 = new ArrayList<Object>();
      Car car1 = new Car("KIA");
      array1.add(car1);
      array1.add(byte1);
      array1.add(byte2);
      array1.add(a1);
      System.out.println(array1.toString());
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }

   public String toString() {
      String s = "Автомобиль " + name + ".";
      return s;
   }
}

Ответ:

9
100
9
100
[Автомобиль KIA., 9, 100, 9]

Задача 316: Программа выводит тип класса фигуры и площадь фигуры.

public class Fig <T> {
   T figure;

   Fig(T figure) {
      this.figure = figure;
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ(5);
      Rect rectangle1 = new Rect(12, 7);
      Circ circle2 = new Circ(4);
      Rect rectangle2 = new Rect(11, 8);
      Fig<Circ> figure1 = new Fig<>(circle1);
      Fig<Rect> figure2 = new Fig<>(rectangle1);
      Fig<Circ> figure3 = new Fig<>(circle2);
      Fig<Rect> figure4 = new Fig<>(rectangle2);
      System.out.println("Тип " + figure1.figure.getClass().getName());
      System.out.println("Площадь " + figure1.figure.getSquare());
      System.out.println("Тип " + figure2.figure.getClass().getName());
      System.out.println("Площадь " + figure2.figure.getSquare());
      System.out.println("Тип " + figure3.figure.getClass().getName());
      System.out.println("Площадь " + figure3.figure.getSquare());
      System.out.println("Тип " + figure4.figure.getClass().getName());
      System.out.println("Площадь " + figure4.figure.getSquare());
   }
}
public class Rect {
   String name = "Прямоугольник";
   int length;
   int width;

   Rect(int length, int width) {
      this.length = length;
      this.width = width;
   }

   public double getSquare() {
      double area = length * width;
      return area;
   }
}
public class Circ {
   String name = "Круг";
   int radius;

   Circ(int radius) {
      this.radius = radius;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }
}

Ответ:

Тип Circ
Площадь 78.53981633974483
Тип Rect
Площадь 84.0
Тип Circ
Площадь 50.26548245743669
Тип Rect
Площадь 88.0

Задача 317: Программа выводит тип класса профессии и то, чем занимаются люди этих профессий.

public class Prof <T> {
   T profession;

   Prof(T ob) {
      profession = ob;
   }

   public void discribe() {
      System.out.println("Тип профессии " + profession.getClass().getName());
   }

   public static void main(String[] args) {
      Doct doc1 = new Doct();
      Mil mil1 = new Mil();
      Mil mil2 = new Mil();
      Prof<Doct> man1 = new Prof<>(doc1);
      Prof<Mil> man2 = new Prof<>(mil1);
      Prof<Mil> man3 = new Prof<>(mil2);
      man1.discribe();
      man1.profession.work();
      man2.discribe();
      man2.profession.work();
      man3.discribe();
      man3.profession.work();
   }
}
public class Doct {

   String name = "Доктор ";

   public void work() {
      System.out.println(name + " лечит больных");
   }
}
public class Mil {
   String name = "Военный ";

   public void work() {
      System.out.println(name + " стреляет ПИФ-ПАФ");
   }
}

Ответ:

Тип профессии Doct
Доктор лечит больных
Тип профессии Mil
Военный стреляет ПИФ-ПАФ
Тип профессии Mil
Военный стреляет ПИФ-ПАФ

Задача 318: Программа выводит № дома вне зависимости от типа данных, в которых записан номер (int, double, String, char).

public class Home <T> {
   T numer;

   Home(T ob) {
      numer = ob;
   }

   public T getNumber() {
      return numer;
   }

   public static void main(String[] args) {
      Home<Integer> attempt1 = new Home<>(12);
      System.out.println("№ дома-" + attempt1.getNumber());
      Home<Double> attempt2 = new Home<>(12.0);
      System.out.println("№ дома-" + attempt2.getNumber());
      Home<String> attempt3 = new Home<>("25");
      System.out.println("№ дома-" + attempt3.getNumber());
      Home<Character> attempt4 = new Home<>('8');
      System.out.println("№ дома-" + attempt4.getNumber());
   }
}

Ответ:

№ дома-12
№ дома-12.0
№ дома-25
№ дома-8

Задача 319: Программа выводит сообщения о названии автомобиля, годе выпуска и стране производства.

public class Car <T> {
   T car;

   Car(T ob) {
      car = ob;
   }

   public static void main(String[] args) {

      Car<BMW> car1 = new Car<BMW>(new BMW(2011, "x5"));
      Car<BMW> car2 = new Car<BMW>(new BMW(2012, "x4"));
      Car<KIA> car3 = new Car<KIA>(new KIA(2013, "sportage"));
      Car<KIA> car4 = new Car<KIA>(new KIA(2009, "elza"));
      System.out.println(car1.car.toString());
      System.out.println(car2.car.toString());
      System.out.println(car3.car.toString());
      System.out.println(car4.car.toString());
   }
}
public class BMW {
   String name = "BMW";
   String model;
   int year;

   BMW(int year, String n) {
      this.year = year;
      model = n;
   }

   public String toString() {
      String s = "Автомобиль " + name + model + " год-" + year + " Германия";
      return s;
   }
}
public class KIA {
   String name = "KIA";
   String model;
   int year;

   KIA(int year, String n) {
      this.year = year;
      model = n;
   }

   public String toString() {
      String s = "Автомобиль " + name + model + " год-" + year + " Корея";
      return s;
   }
}

Ответ:

Автомобиль BMWx5 год-2011 Германия
Автомобиль BMWx4 год-2012 Германия
Автомобиль KIAsportage год-2013 Корея
Автомобиль KIAelza год-2009 Корея

Задача 320: Программа выводит сообщения о названии товаров в магазине и их ценах.

public class Prod <T> {
   T typeProd;

   Prod(T ob) {
      typeProd = ob;
   }

   public static void main(String[] args) {

      Prod<Tel> prod1 = new Prod<Tel>(new Tel(2000, "15gt"));
      Prod<Tel> prod2 = new Prod<Tel>(new Tel(3500, "300s"));
      Prod<Cam> prod3 = new Prod<Cam>(new Cam(1850, "Cam-12-l"));
      Prod<Cam> prod4 = new Prod<Cam>(new Cam(930, "Cam-12-nm"));
      System.out.println(prod1.typeProd.toString());
      System.out.println(prod2.typeProd.toString());
      System.out.println(prod3.typeProd.toString());
      System.out.println(prod4.typeProd.toString());
   }
}
public class Tel {
   String model;
   int cost;

   Tel(int cost, String n) {
      this.cost = cost;
      model = n;
   }

   public String toString() {
      String s = "Телефон " + model + " цена " + cost + " рублей";
      return s;
   }
}
public class Cam {
   String model;
   int cost;

   Cam(int cost, String n) {
      this.cost = cost;
      model = n;
   }

   public String toString() {
      String s = "Камера " + model + " цена " + cost + " рублей";
      return s;
   }
}

Ответ:

Телефон 15gt цена 2000 рублей
Телефон 300s цена 3500 рублей
Камера Cam-12-l цена 1850 рублей
Камера Cam-12-nm цена 930 рублей

Задача 321: Программа выводит сообщения о названии класса фигуры, количестве фигур и общей площади этих фигур.

public class Fig <T, E> {
   T figure;
   E numer;

   Fig(T figure, E numer) {
      this.figure = figure;
      this.numer = numer;
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ(5);
      Rect rectangle1 = new Rect(12, 7);
      Circ circle2 = new Circ(4);
      Rect rectangle2 = new Rect(11, 8);
      Fig<Circ, Integer> figure1 = new Fig<>(circle1, 5);
      Fig<Rect, Integer> figure2 = new Fig<>(rectangle1, 10);
      Fig<Circ, Double> figure3 = new Fig<>(circle2, 11.5);
      Fig<Rect, Double> figure4 = new Fig<>(rectangle2, 10.5);
      System.out.println(figure1.figure.getClass().getName() + ", "
            + figure1.numer + " шт.");
      System.out.println("Общая площадь " + figure1.figure.getSquare()
            * figure1.numer);
      System.out.println(figure2.figure.getClass().getName() + ", "
            + figure1.numer + " шт.");
      System.out.println("Общая площадь " + figure2.figure.getSquare()
            * figure2.numer);
      System.out.println(figure3.figure.getClass().getName() + ", "
            + figure1.numer + " шт.");
      System.out.println("Общая площадь " + figure3.figure.getSquare()
            * figure3.numer);
      System.out.println(figure4.figure.getClass().getName() + ", "
            + figure1.numer + " шт.");
      System.out.println("Общая площадь " + figure4.figure.getSquare()
            * figure4.numer);
      }
}
public class Circ {
   String name = "Круг";
   int radius;

   Circ(int radius) {
      this.radius = radius;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }
}
public class Rect {
   String name = "Прямоугольник";
   int length;
   int width;

   Rect(int length, int width) {
      this.length = length;
      this.width = width;
   }

   public double getSquare() {
      double area = length * width;
      return area;
   }
}

Ответ:

Circ, 5 шт.
Общая площадь 392.69908169872417
Rect, 5 шт.
Общая площадь 840.0
Circ, 5 шт.
Общая площадь 578.0530482605219
Rect, 5 шт.
Общая площадь 924.0

Задача 322: Программа выводит сообщения о названии типа профессий, о работе, которую выполняют люди этих профессий, и оценке работы людей этих профессий.

public class Prof <T, E> {
   T profession;
   E mark;

   Prof(T ob1, E ob2) {
      profession = ob1;
      mark = ob2;
   }

   public void discribe() {
      System.out.println("Профессия " + profession.getClass().getName());
   }

   public static void main(String[] args) {
      Doct doc1 = new Doct();
      Mil mil1 = new Mil();
      Mil mil2 = new Mil();
      Prof<Doct, String> man1 = new Prof<>(doc1, "Хорошая работа");
      Prof<Mil, String> man2 = new Prof<>(mil1, "Важная работа");
      Prof<Mil, Integer> man3 = new Prof<>(mil2, 5);
      man1.discribe();
      man1.profession.work();
      System.out.println(man1.mark);
      man2.discribe();
      man2.profession.work();
      System.out.println(man2.mark);
      man3.discribe();
      man3.profession.work();
      System.out.println(man3.mark);
   }
}
public class Doct {

   String name = "Доктор ";

   public void work() {
      System.out.println(name + " лечит больных");
   }
}
public class Mil {
   String name = "Военный ";

   public void work() {
      System.out.println(name + " стреляет ПИФ-ПАФ");
   }
}

Ответ:

Профессия Doct
Доктор лечит больных
Хорошая работа
Профессия Mil
Военный стреляет ПИФ-ПАФ
Важная работа
Профессия Mil
Военный стреляет ПИФ-ПАФ
5

Задача 323: Программа выводит сообщения о названии улицы и номере дома. Данные в программе хранятся в разных типах данных.

public class Home <T, E> {
   T numer;
   E street;

   Home(T ob1, E ob2) {
      numer = ob1;
      street = ob2;
   }

   public T getNumber() {
      return numer;
   }

   public static void main(String[] args) {
      Home<Integer, String> attempt1 = new Home<>(12, "Ленина");
      System.out.println("улица " + attempt1.street + " дом №"
            + attempt1.getNumber());
      Home<Double, String> attempt2 = new Home<>(12.0, "Красная");
      System.out.println("улица " + attempt2.street + " дом №"
            + attempt2.getNumber());
      Home<String, String> attempt3 = new Home<>("25", "Нижняя");
      System.out.println("улица " + attempt3.street + " дом №"
            + attempt3.getNumber());
      Home<Character, String> attempt4 = new Home<>('8', "Брестская");
      System.out.println("улица " + attempt4.street + " дом №"
            + attempt4.getNumber());
   }
}

Ответ:

улица Ленина дом №12
улица Красная дом №12.0
улица Нижняя дом №25
улица Брестская дом №8

Задача 324: Программа выводит сообщения о названии автомобиля, годе выпуска, стране производства и стоимости автомобиля.

public class Car <T, E> {
   T car;
   E cost;

   Car(T ob1, E ob2) {
      car = ob1;
      cost = ob2;
   }

   public static void main(String[] args) {

      Car<BMW, Integer> car1 = new Car<>(new BMW(2011, "x5"), 1700000);
      Car<BMW, String> car2 = new Car<>(new BMW(2012, "x4"), " миллион");
      Car<KIA, Double> car3 = new Car<>(new KIA(2013, "sportage"), 900000.0);
      Car<KIA, Character> car4 = new Car<>(new KIA(2009, "elza"), '1');
      System.out.println(car1.car.toString() + " " + car1.cost);
      System.out.println(car2.car.toString() + " " + car2.cost);
      System.out.println(car3.car.toString() + " " + car3.cost);
      System.out.println(car4.car.toString() + " " + car4.cost + " миллион");
   }
}
public class KIA {
   String name = "KIA";
   String model;
   int year;

   KIA(int year, String n) {
      this.year = year;
      model = n;
   }

   public String toString() {
      String s = "Автомобиль " + name + model + " год-" + year + " Корея";
      return s;
   }
}
public class BMW {
   String name = "BMW";
   String model;
   int year;

   BMW(int year, String n) {
      this.year = year;
      model = n;
   }

   public String toString() {
      String s = "Автомобиль " + name + model + " год-" + year + " Германия";
      return s;
   }
}

Ответ:

Автомобиль BMWx5 год-2011 Германия 1700000
Автомобиль BMWx4 год-2012 Германия миллион
Автомобиль KIAsportage год-2013 Корея 900000.0
Автомобиль KIAelza год-2009 Корея 1 миллион

Задача 325: Программа выводит сообщения о названии товаров в магазине, их ценах и сообщение о том, является ли товар хитом продаж.

public class Prod <T, E> {
   T typeProd;
   E hit;

   Prod(T ob1, E ob2) {
      typeProd = ob1;
      hit = ob2;
   }

   public static void main(String[] args) {

      Prod<Tel, String> prod1 = new Prod<>(new Tel(2000, "15gt"), "Хит");
      Prod<Tel, Boolean> prod2 = new Prod<>(new Tel(3500, "300s"), false);
      Prod<Cam, Boolean> prod3 = new Prod<>(new Cam(1850, "Cam-12-l"), true);
      Prod<Cam, String> prod4 = new Prod<>(new Cam(930, "Cam-12-nm"),
            "Не хит");
      System.out.println(prod1.typeProd.toString() + prod1.hit);
      System.out.println(prod2.typeProd.toString() + "Хит? " + prod2.hit);
      System.out.println(prod3.typeProd.toString() + "Хит? " + prod3.hit);
      System.out.println(prod4.typeProd.toString() + prod4.hit);
   }
}
public class Cam {
   String model;
   int cost;

   Cam(int cost, String n) {
      this.cost = cost;
      model = n;
   }

   public String toString() {
      String s = "Камера " + model + " цена " + cost + " рублей ";
      return s;
   }
}
public class Tel {
   String model;
   int cost;

   Tel(int cost, String n) {
      this.cost = cost;
      model = n;
   }

   public String toString() {
      String s = "Телефон " + model + " цена " + cost + " рублей ";
      return s;
   }
}

Ответ:

Телефон 15gt цена 2000 рублей Хит
Телефон 300s цена 3500 рублей Хит? false
Камера Cam-12-l цена 1850 рублей Хит? true
Камера Cam-12-nm цена 930 рублей Не хит

Задача 326: Программа выводит сообщения о названии фигур, их цвете, периметре и площади.

public class Main <T extends Fig> {
   T figure;

   Main(T figure) {
      this.figure = figure;
   }

   public String getInfo() {
      String s = "Фигура " + figure.name + ", цвет " + figure.color
            + ", периметр " + figure.getLenght() + ", площадь "
            + figure.getSquare();
      return s;
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ("круг", "синий", 5);
      Fig fig2 = new Fig();
      Main<Circ> main1 = new Main<>(circle1);
      Main<Fig> main2 = new Main<>(fig2);
      System.out.println(main1.getInfo());
      System.out.println(main2.getInfo());
   }
}
public class Circ extends Fig {
   int radius;

   Circ(String name, String color, int radius) {
      this.color = color;
      this.name = name;
      this.radius = radius;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }

   public double getLenght() {
      double area = 2 * radius * Math.PI;
      return area;
   }
}
public class Fig {
   String name = "какая-то фигура";
   String color = "нет цвета";

   public double getSquare() {
      double area = 0;
      return area;
   }

   public double getLenght() {
      double area = 0;
      return area;
   }
}

Ответ:

Фигура круг, цвет синий, периметр 31.41592653589793, площадь 78.53981633974483
Фигура какая-то фигура, цвет нет цвета, периметр 0.0, площадь 0.0

Задача 327: Программа выводит сообщения о названии фигур, их цвете и площади.

public class Fig <T extends Fig<?>> {
   T figure = null;
   String name;
   String color;

   public double getSquare() {
      double area = 0;
      return area;
   }

   public String getInfo() {
      String s = "Фигура " + figure.name + ", цвет " + figure.color
            + ", площадь " + figure.getSquare();
      return s;
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ("круг", "синий", 5);
      Rect rectangl1 = new Rect("прямоугольник", "желтый ", 7, 8);
      Fig<Circ> figure1 = new Fig<>();
      Fig<Rect> figure2 = new Fig<>();
      figure1.figure = circle1;
      figure2.figure = rectangl1;
      System.out.println(figure1.getInfo());
      System.out.println(figure2.getInfo());
   }
}
public class Circ extends Fig {
   int radius;

   Circ(String name, String color, int radius) {
      this.color = color;
      this.name = name;
      this.radius = radius;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }
}
public class Rect extends Fig {
   int widght;
   int lenght;

   Rect(String name, String color, int widght, int lenght) {
      this.color = color;
      this.name = name;
      this.widght = widght;
      this.lenght = lenght;
   }

   public double getSquare() {
      double area = widght * lenght;
      return area;
   }
}

Ответ:

Фигура круг, цвет синий, площадь 78.53981633974483
Фигура прямоугольник, цвет желтый , площадь 56.0

Задача 328: Программа выводит сообщения о названии Классов чисел и числа.

public class Task <T extends Number> {
   T objectNum;
   double sum = 0;

   Task(T ob) {
      objectNum = ob;
   }

   public void summa() {
      sum = sum + objectNum.doubleValue();
   }

   public void showSum() {
      System.out.println(objectNum.getClass().getName() + " " + sum);
   }

   public static void main(String[] args) {
      Task<?> slog1 = new Task<>(15);
      slog1.summa();
      slog1.showSum();
      Task<?> slog2 = new Task<>(1.7);
      slog2.summa();
      slog2.showSum();
      Task<?> slog3 = new Task<>(5.3f);
      slog3.summa();
      slog3.showSum();
   }
}

Ответ:

java.lang.Integer 15.0
java.lang.Double 1.7
java.lang.Float 5.300000190734863

Задача 329: Программа выводит средние числа двух массивов.

public class Task <T extends Number> {
   T[] objectNum;

   Task(T[] ob) {
      objectNum = ob;
   }

   public double summa() {
      double s = 0;
      double count = 0;
      for (T a : objectNum) {
         s = s + a.doubleValue();
         count++;
      }
      return s / count;
   }

   public static void main(String[] args) {
      Integer massiveI[] = { 54, 8, 65, 2, -54 };
      Double massiveD[] = { 4.5, 5.9, 8.0, 3.1, -16.2 };
      Task<?> slog1 = new Task<>(massiveI);
      System.out.println("Среднее число массива = " + slog1.summa());
      Task<Double> slog2 = new Task<>(massiveD);
      System.out.println("Среднее число массива = " + slog2.summa());
   }
}

Ответ:

Среднее число массива = 15.0
Среднее число массива = 1.06

Задача 330: Программа сообщает, проедет ли машина заданное расстояние, учитывая емкость топливного бака и расход топлива.

public class Main <T extends Car, E extends Number> {
   T ob1;
   E ob2;

   Main(T o1, E o2) {
      ob1 = o1;
      ob2 = o2;
   }

   public void distance() {
      if (ob2.doubleValue() < (ob1.fuel / ob1.capacity * 100)) {
         System.out.println("Машина проедет эти " + ob2 + " км.");
      } else {
         System.out.println("Машине не хватит бензина на " + ob2 + " км.");
      }
   }

   public static void main(String[] args) {
      Car car1 = new Car("Sportage", 60, 7);
      Main<?, ?> main1 = new Main<>(car1, 600);
      main1.distance();
      Main<?, ?> main2 = new Main<>(car1, 700);
      main2.distance();
      KIA car2 = new KIA("Elantra", 50, 8);
      Main<?, ?> main3 = new Main<>(car2, 700);
      main3.distance();
   }
}
public class Car {
   String name;
   int fuel;
   int capacity;

   Car(String name, int fuel, int capacity) {
      this.fuel = fuel;
      this.name = name;
      this.capacity = capacity;
   }
}
public class KIA extends Car {
   KIA(String name, int fuel, int capacity) {
      super(name, fuel, capacity);
   }
}

Ответ:

Машина проедет эти 600 км.
Машина проедет эти 700 км.
Машине не хватит бензина на 700 км.

Задача 331: Программа сравнивает классы объектов.

public class Area {
   static public <T, E> String equalClass(T ob1, E ob2) {
      String area;
      if (ob1.getClass().getName().equals(ob2.getClass().getName())) {
         area = "Классы объектов равны";
      } else {
         area = "Классы объектов не равны";
      }
      return area;
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ(5);
      Rect rectangle1 = new Rect(12, 7);
      Circ circle2 = new Circ(4);
      Rect rectangle2 = new Rect(11, 8);

      System.out.println(Area.equalClass(circle1, circle2));
      System.out.println(Area.equalClass(circle1, rectangle1));
      System.out.println(Area.equalClass(circle2, rectangle2));
      System.out.println(Area.equalClass(rectangle1, rectangle2));
   }
}
public class Circ {
   String name = "Круг";
   int radius;

   Circ(int radius) {
      this.radius = radius;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }
}
public class Rect {
   String name = "Прямоугольник";
   int hight;
   int width;

   Rect(int hight, int width) {
      this.hight = hight;
      this.width = width;
   }

   public double getSquare() {
      double area = hight * width;
      return area;
   }
}

Ответ:

Классы объектов равны
Классы объектов не равны
Классы объектов не равны
Классы объектов равны

Задача 332: Программа сравнивает фигуры по площади.

public class Area {
   String name;

   public double getSquare() {
      double area = 0;
      return area;
   }

   static public <T extends Area> void equalClass(T ob1, T ob2) {
      if (ob1.getSquare() < ob2.getSquare()) {
         System.out.println(ob1.name + " < " + ob2.name);
      } else if (ob1.getSquare() == ob2.getSquare()) {
         System.out.println(ob1.name + " = " + ob2.name);
      } else {
         System.out.println(ob1.name + " > " + ob2.name);
      }
   }

   public static void main(String[] args) {
      Circ circle1 = new Circ(6, "круг1");
      Rect rectangle1 = new Rect(12, 7, "прямоугольник1");
      Circ circle2 = new Circ(6, "круг2");
      Rect rectangle2 = new Rect(11, 8, "прямоугольник2");

      Area.equalClass(circle1, circle2);
      Area.equalClass(circle1, rectangle1);
      Area.equalClass(circle2, rectangle2);
      Area.equalClass(rectangle1, rectangle2);
   }
}
public class Circ extends Area{
   int radius;

   Circ(int radius, String name) {
      this.radius = radius;
      this.name=name;
   }

   public double getSquare() {
      double area = radius * radius * Math.PI;
      return area;
   }
}
public class Rect extends Area{
   int hight;
   int width;

   Rect(int hight, int width, String name) {
      this.hight = hight;
      this.width = width;
      this.name = name;
   }

   public double getSquare() {
      double area = hight * width;
      return area;
   }
}

Ответ:

круг1 = круг2
круг1 > прямоугольник1
круг2 > прямоугольник2
прямоугольник1 < прямоугольник2


Задача 333: Программа сравнивает средние разных массивов.

public class Task <T extends Number> {
   T[] objectNum;

   Task(T[] ob) {
      objectNum = ob;
   }

   public double summa() {
      double s = 0;
      for (int i = 0; i < objectNum.length; i++)
         for (T a : objectNum) {
            s = s + a.doubleValue();
         }
      return s / objectNum.length;
   }

   public void equelsAv(Task<?> ob3) {
      if (this.summa() == ob3.summa()) {
         System.out.println("Средние равны");
      } else {
         System.out.println("Средние не равны");
      }
   }

   public static void main(String[] args) {
      Integer massiveI2[] = { 2, 3, 4 };
      Double massiveD2[] = { 2.0, 3.0, 4.0 };
      Task<?> slog3 = new Task<>(massiveI2);
      Task<Double> slog4 = new Task<>(massiveD2);
      slog3.equelsAv(slog4);
   }
}

Ответ:

Средние равны

Задача 334: Программа сообщает, проедет ли машина заданное расстояние, учитывая емкость топливного бака и расход топлива.

public class Main {
   public static <T extends Car, E extends Number> void distance(T ob1, E ob2) {
      if (ob2.doubleValue() < (ob1.fuel / ob1.capacity * 100)) {
         System.out.println("Машина проедет эти " + ob2 + " км.");
      } else {
         System.out.println("Машине не хватит бензина на " + ob2 + " км.");
      }
   }

   public static void main(String[] args) {
      Car car1 = new Car("Sportage", 60, 7.7);
      Main.distance(car1, 600);
      Main.distance(car1, 700);
      KIA car2 = new KIA("Elantra", 50, 7.3);
      Main.distance(car2, 700);
   }
}
public class Car {
   String name;
   int fuel;
   double capacity;

   Car(String name, int fuel, double capacity) {
      this.fuel = fuel;
      this.name = name;
      this.capacity = capacity;
   }
}
public class KIA extends Car {
   KIA(String name, int fuel, double capacity) {
      super(name, fuel, capacity);
   }
}

Ответ:

Машина проедет эти 600 км.
Машина проедет эти 700 км.
Машине не хватит бензина на 700 км.

Задача 335: Программа сравнивает цены на товары и печатает ценники.

public class Prod {
   String model;
   int cost;

   Prod(int cost, String n) {
      this.cost = cost;
      model = n;
   }

   public String toString() {
      String s = "Товар " + model + " цена " + cost + " рублей ";
      return s;
   }

   public <T extends Prod> void compareProd(T ob) {
      if (cost < ob.cost) {
         System.out.println(model + " дешевле " + ob.model);
      } else {
         System.out.println(model + " дороже " + ob.model);
      }
   }

   public static void main(String[] args) {

      Prod prod1 = new Prod(300, "Солдатики");
      Tel prod2 = new Tel(1500, "Samsung-S300");
      Cam prod3 = new Cam(1350, "LOGITECH-20");

      prod1.compareProd(prod2);
      System.out.println(prod1);
      prod2.compareProd(prod3);
      System.out.println(prod2);
      prod3.compareProd(prod1);
      System.out.println(prod3);
   }
}
public class Cam extends Prod {

   Cam(int cost, String n) {
      super(cost, n);
   }

   public String toString() {
      String s = "Камера " + model + " цена " + cost + " рублей ";
      return s;
   }
}
public class Tel extends Prod {

   Tel(int cost, String n) {
      super(cost, n);
   }

   public String toString() {
      String s = "Телефон " + model + " цена " + cost + " рублей ";
      return s;
   }
}

Ответ:

Солдатики дешевле Samsung-S300
Товар Солдатики цена 300 рублей
Samsung-S300 дороже LOGITECH-20
Телефон Samsung-S300 цена 1500 рублей
LOGITECH-20 дороже Солдатики
Камера LOGITECH-20 цена 1350 рублей

Задача 336: Программа выводит список автомобилей, потом список автомобилей, состоящий только из автомобилей марки BMW. И потом выводит список автомобилей BMW.

import java.util.ArrayList;

public class Main {
   public static void main(String[] args) {
      Car car1 = new Car("KIA");
      Car car2 = new Car("AUDI");
      Car car3 = new Car("RENO");
      BMW bmw1 = new BMW("BMW 5x", 10000);
      BMW bmw2 = new BMW("BMW 4x", 9000);
      BMW bmw3 = new BMW("BMW 3x", 8000);
      ArrayList<Car> carArray = new ArrayList<>();
      carArray.add(car2);
      carArray.add(car1);
      carArray.add(bmw2);
      carArray.add(car3);
      ArrayList<BMW> bmwArray = new ArrayList<>();
      bmwArray.add(bmw3);
      bmwArray.add(bmw1);
      bmwArray.add(bmw2);

      Main.outArray1(carArray);
      System.out.println();
      Main.outArray1(bmwArray);
      System.out.println();
      Main.outArray2(bmwArray);
   }

   static public void outArray1(ArrayList<? extends Car> carAr) {
      for (Car c : carAr) {
         System.out.println(c.name);
      }
   }

   static public void outArray2(ArrayList<BMW> carA) {
      for (BMW c : carA) {
         System.out.println(c.name + " " + c.cost + " рублей");
      }
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }
}
public class BMW extends Car {
   int cost;

   BMW(String name, int cost) {
      super(name);
      this.cost = cost;
   }
}

Ответ:

AUDI
KIA
BMW 4x
RENO

BMW 3x
BMW 5x
BMW 4x

BMW 3x 8000 рублей
BMW 5x 10000 рублей
BMW 4x 9000 рублей

Задача 337: Программа выводит список автомобилей, потом список автомобилей, состоящий только из автомобилей марки BMW. И потом выводит список автомобилей BMW.

import java.util.ArrayList;

public class Main {
   public static void main(String[] args) {
      Car car1 = new Car("KIA");
      Car car2 = new Car("AUDI");
      BMW bmw1 = new BMW("BMW 5x", 10000);
      BMW bmw2 = new BMW("BMW 4x", 9000);
      ArrayList<Car> carArray = new ArrayList<>();
      carArray.add(car2);
      carArray.add(car1);
      carArray.add(bmw2);
      ArrayList<BMW> bmwArray = new ArrayList<>();
      bmwArray.add(bmw1);
      bmwArray.add(bmw2);

      Main.outArray1(carArray);
      System.out.println();
      Main.outArray1(bmwArray);
      System.out.println();
      Main.outArray2(bmwArray);
   }

   static public <T extends Car> void outArray1(ArrayList<T> carAr) {
      for (T c : carAr) {
         System.out.println(c.name);
      }
   }

   static public <T extends BMW> void outArray2(ArrayList<T> carA) {
      for (T c : carA) {
         System.out.println(c.name + " " + c.cost + " рублей");
      }
   }
}
public class Car {
   String name;

   Car(String name) {
      this.name = name;
   }
}
public class BMW extends Car {
   int cost;

   BMW(String name, int cost) {
      super(name);
      this.cost = cost;
   }
}

Ответ:

AUDI
KIA
BMW 4x

BMW 5x
BMW 4x

BMW 5x 10000 рублей
BMW 4x 9000 рублей

Задача 338: Программа выводит списки противников, с кем сражаются некоторые воины, потом выводит список воинов.

import java.util.ArrayList;

public class Unit {
   String name;
   int strength;

   Unit(int strength, String name) {
      this.strength = strength;
      this.name = name;
   }

   public void fight(Unit enemy) {
      System.out.print(name + " сражается, противник - " + enemy.name + ". ");
   }

   public <T extends Unit> void outArray1(ArrayList<T> unitAr) {
      for (T с : unitAr) {
         fight(с);
      }
   }

   static public <T extends Unit> void allArray(ArrayList<T> allU) {
      for (T с : allU) {
         System.out.print(с.getClass().getName() + " " + с.name + ". ");
      }
   }

   public static void main(String[] args) {
      Orc unit1 = new Orc(100, "Зозо");
      Orc unit2 = new Orc(100, "Корч");
      Elf unit3 = new Elf(100, "Эбин");
      Elf unit4 = new Elf(100, "Финор");
      ArrayList<Elf> red = new ArrayList<>();
      red.add(unit3);
      red.add(unit4);
      ArrayList<Orc> blue = new ArrayList<>();
      blue.add(unit1);
      blue.add(unit2);
      ArrayList<Unit> all = new ArrayList<>();
      all.addAll(red);
      all.addAll(blue);

      unit3.outArray1(blue);
      System.out.println();
      unit4.outArray1(blue);
      System.out.println();
      Unit.allArray(all);
   }
}
public class Elf extends Unit {
   Elf(int strength, String name) {
      super(strength, name);
   }
}
public class Orc extends Unit {
   Orc(int strength, String name) {
      super(strength, name);
   }
}

Ответ:

Эбин сражается, противник – Зозо. Эбин сражается, противник – Корч.
Финор сражается, противник – Зозо. Финор сражается, противник – Корч.
Elf Эбин. Elf Финор. Orc Зозо. Orc Корч.

Задача 339: Программа выводит списки противников, с кем сражаются некоторые воины, потом выводит список воинов.

import java.util.ArrayList;

public class Unit {
   String name;
   int strength;

   Unit(int strenght, String name) {
      this.strength = strength;
      this.name = name;
   }

   public void fight(Unit enemy) {
      System.out.print(name + " сражается, противник - " + enemy.name + ". ");
   }

   public void outArray1(ArrayList<? extends Unit> unitAr) {
      for (Unit с : unitAr) {
         fight(с);
      }
   }

   static public void allArray(ArrayList<? extends Unit> allU) {
      for (Unit с : allU) {
         System.out.print(c.getClass().getName() + " " + с.name + ". ");
      }
   }

   public static void main(String[] args) {
      Orc unit1 = new Orc(100, "Зозо");
      Orc unit2 = new Orc(100, "Корч");
      Elf unit3 = new Elf(100, "Эбин");
      Elf unit4 = new Elf(100, "Финор");
      ArrayList<Elf> red = new ArrayList<>();
      red.add(unit3);
      red.add(unit4);
      ArrayList<Orc> blue = new ArrayList<>();
      blue.add(unit1);
      blue.add(unit2);
      ArrayList<Unit> all = new ArrayList<>();
      all.addAll(red);
      all.addAll(blue);

      unit3.outArray1(blue);
      System.out.println();
      unit4.outArray1(blue);
      System.out.println();
      Unit.allArray(all);
   }
}
public class Elf extends Unit {
   Elf(int strength, String name) {
      super(strength, name);
   }
}
public class Orc extends Unit {
   Orc(int strength, String name) {
      super(strength, name);
   }
}

Ответ:

Эбин сражается, противник – Зозо. Эбин сражается, противник – Корч.
Финор сражается, противник – Зозо. Финор сражается, противник – Корч.
Elf Эбин. Elf Финор. Orc Зозо. Orc Корч.

Задача 340: Программа выводит список всех продуктов, потом список продуктов, содержащих только камеры, потом список камер.

import java.util.ArrayList;

public class Prod {
   String name;
   int cost;

   Prod(String name, int cost) {
      this.name = name;
      this.cost = cost;
   }

   static public void printListOfProd(ArrayList<? extends Prod> arrProd) {
      for (Prod p : arrProd) {
         System.out.println(p.name + " " + p.cost + " рублей");
      }
   }

   static public <T extends Tel> void printListOfTel(ArrayList<T> arrTel) {
      for (T p : arrTel) {
         System.out.println(p.name + " память " + p.memory + " цена "
               + p.cost + " руб");
      }
   }

   public static void main(String[] args) {

      Cam prod1 = new Cam("Logitech B300", 2500, 5);
      Cam prod2 = new Cam("Philips 25S", 1500, 4);
      Tel prod3 = new Tel("Samsung 30-Blue", 7500, 3);
      Tel prod4 = new Tel("Sony 54ff", 6350, 2);
      ArrayList<Cam> camList = new ArrayList<>();
      camList.add(prod1);
      camList.add(prod2);
      ArrayList<Tel> telList = new ArrayList<>();
      telList.add(prod3);
      telList.add(prod4);
      ArrayList<Prod> productList = new ArrayList<>();
      productList.addAll(camList);
      productList.addAll(telList);
      Prod.printListOfProd(productList);
      System.out.println();
      Prod.printListOfProd(camList);
      System.out.println();
      Prod.printListOfTel(telList);
   }
}
public class Cam extends Prod {
   int pixel;

   Cam(String name, int cost, int pixel) {
      super(name, cost);
      this.pixel = pixel;
   }
}
public class Tel extends Prod {
   int memory;

   Tel(String name, int cost, int memory) {
      super(name, cost);
      this.memory = memory;
   }
}

Ответ:

Logitech B300 2500 рублей
Philips 25S 1500 рублей
Samsung 30-Blue 7500 рублей
Sony 54ff 6350 рублей

Logitech B300 2500 рублей
Philips 25S 1500 рублей

Samsung 30-Blue память 3 цена 7500 руб
Sony 54ff память 2 цена 6350 руб

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *