
Лаб. 2 Java (Вариант 3)
.docx
package lab_2;
class Wagon {
private String type;
public Wagon() {
this.type="";
}
public Wagon(String type) {
this.type= type;
}
public void load() {
System.out.println("Загрузка вагона типа: " + type);
}
}
package lab_2;
class LiquidTank extends Wagon{
public LiquidTank() {
super("Цистерна для жидкостей");
}
}
package lab_2;
class BulkCargoWagon extends Wagon{
public BulkCargoWagon() {
super("Вагон для сыпучих грузов");
}
}
package lab_2;
class CarPlatform extends Wagon{
public CarPlatform() {
super("Автомобильная платформа");
}
}
package lab_2;
class ContainerPlatform extends Wagon{
public ContainerPlatform() {
super("Платформа для контейнеров");
}
}
package lab_2;
class Product{
private String type;
public Product() {
this.type="";
}
public Product(String type) {
this.type = type;
}
public void load() {
System.out.println("Загрузка продукции: " + type + "\n");
}
}
package lab_2;
class Container extends Product{
public Container(String name) {
super(name);
}
}
package lab_2;
class BulkCargo extends Product{
public BulkCargo(String name) {
super(name);
}
}
package lab_2;
class Car extends Product{
public Car(String name) {
super(name);
}
}
package lab_2;
class Liquid extends Product{
public Liquid(String name) {
super(name);
}
}
package lab_2;
import java.util.ArrayList;
class Train{
private ArrayList<Wagon> wagons;
public Train() {
wagons = new ArrayList<>();
}
public void addWagon(Wagon wagon) {
wagons.add(wagon);
}
public void info() {
System.out.println("Железнодорожный состав состоит из " + wagons.size() + " вагонов");
}
}
package lab_2;
import java.util.ArrayList;
class Warehouse{
private ArrayList<Product> products;
public Warehouse() {
products = new ArrayList<>();
}
public void addProduct(Product product) {
products.add(product);
}
public Product removeProduct(int index) {
return products.remove(index);
}
public boolean isEmpty() {
return products.isEmpty();
}
}
package lab_2;
public class Main{
public static void main(String[] args) {
LiquidTank liquidTank = new LiquidTank();
BulkCargoWagon bulkCargoWagon = new BulkCargoWagon();
CarPlatform carPlatform = new CarPlatform();
ContainerPlatform containerPlatform = new ContainerPlatform();
Warehouse warehouse = new Warehouse();
Train train = new Train();
// Создание продукции
Liquid oil = new Liquid("Нефть");
Liquid diesel = new Liquid("Дизельное топливо");
BulkCargo mazut = new BulkCargo("Мазут");
BulkCargo grain = new BulkCargo("Зерно");
BulkCargo coal = new BulkCargo("Уголь");
BulkCargo sand = new BulkCargo("Песок");
Container container1 = new Container("Контейнер 1");
Container container2 = new Container("Контейнер 2");
Car car1 = new Car("Автомобиль 1");
Car car2 = new Car("Автомобиль 2");
// Добавление продукции на склад
warehouse.addProduct(oil);
warehouse.addProduct(diesel);
warehouse.addProduct(mazut);
warehouse.addProduct(grain);
warehouse.addProduct(coal);
warehouse.addProduct(sand);
warehouse.addProduct(container1);
warehouse.addProduct(container2);
warehouse.addProduct(car1);
warehouse.addProduct(car2);
// Загрузка вагонов
while (!warehouse.isEmpty()) {
Product product = warehouse.removeProduct(0);
if (product instanceof Container) {
train.addWagon(containerPlatform);
containerPlatform.load();
product.load();
}
if (product instanceof Liquid) {
train.addWagon(liquidTank);
liquidTank.load();
product.load();
}
if (product instanceof BulkCargo) {
train.addWagon(bulkCargoWagon);
bulkCargoWagon.load();
product.load();
}
if (product instanceof Car) {
train.addWagon(carPlatform);
carPlatform.load();
product.load();
}
}
train.info();
}
}