OOP / Лаб 12
.docxМинистерство образования и науки Украины
Одесский национальный политехнический университет
Кафедра системного программного обеспечения.
Протокол лабораторной работы № 12
По дисциплине:
Объектно-ориентированное программирование
Вариант 10
Выполнил
студент AC-121
Куценко Дмитрий Сергеевич
Преподаватель Левченко А.Ю
Одесса 2013 (год)
Лабораторна робота №12 «Интерфейсы. Java»
Используя задание к лабораторной работе №10, создать интерфейс для вывода на экран некоторых данных. Реализовать наследование интерфейсов. Продемонстрировать работу программы для объектов разных классов.
Задание
Используя задание к лабораторной работе №2 создать иерархию классов и виртуальные функции.
Исходные данные для лабораторной работы
Используютcя исходные данные для лабораторной работы №1. Кроме этого, используются дополнительные характеристики прибора, приведенные в таблице 2.
Таблица 1. Характеристики приборов, реализуемые в варианте задания.
№ варианта |
Характеристики прибора |
10 |
1,3,8 |
1.Наименование прибора.
-
Габариты: длина, высота, ширина.
-
Вес.
-
Стоимость.
-
Гарантийный срок.
-
Диапазон температур: tmin, tmax.
-
Источник питания: напряжение, ток, частота.
-
Измерения. Имеется несколько измеряемых величин. Каждая характеризуется:
названием измеряемой величины;
нижним пределом;
верхним пределом;
погрешностью.
-
Покупные изделия. Имеется несколько покупных изделий. Каждое характеризуется:
названием;
количеством;
названием поставщика
-
Заказчик. Имеется несколько заказчиков. Каждый характеризуется:
Наименованием;
адресом;
количеством заказанных приборов.
Таблица 2. Дополнительные характеристики приборов.
№ варианта |
Дополнительные характеристики прибора |
10 |
4 |
Выполнение лабораторной работы
-
Создать иерархию из трёх классов (Абстрактный ←Класс1←Класс2).
-
Продемонстрировать работу с объектами разных классов и использование функций.
Код программы
package javalab12;
import java.util.*;
interface TestInterface//базовый интерфейс
{
void PrintInter();
void print();
}
interface TestInterface1 extends TestInterface//порождённый интерфейс
{
void AddInter();
void add();
}
abstract class Abstrac implements TestInterface1//Реализация интерфейса
{
protected String name;
protected float niz,verx;
public Abstrac(String prib_name,float prib_niz,float prib_verx)
{ name=prib_name;
niz=prib_niz;
verx=prib_verx;
}
}
class Klass1 extends Abstrac {
protected int pogr;
protected float ves;
public Klass1(String prib_name, float prib_niz, float prib_verx,int prib_pogr,float prib_ves) {
super(prib_name, prib_niz, prib_verx);
pogr=prib_pogr;
ves=prib_ves;
}
@Override
public void PrintInter(){// метод из интерфейса TestInterface
System.out.println("Название товара:"+name);
System.out.println("Нижний предел:"+niz);
System.out.println("Верхний предел:"+verx);
System.out.println("Погрешность:"+pogr);
System.out.println("Вес:"+ves);
}
@Override
public void AddInter(){// метод из интерфейса TestInterface1
Scanner in= new Scanner(System.in);
System.out.println("Введите название товара:");
name=in.nextLine();
System.out.println("Введите нижний предел:");
niz=in.nextFloat();
System.out.println("Введите верхний предел:");
verx=in.nextFloat();
System.out.println("Введите погрешность:");
pogr=in.nextInt();
System.out.println("Введите вес:");
ves=in.nextFloat();
}
@Override
public void add(){}
@Override
public void print(){}
}
class Klass2 extends Klass1{
protected float cena;
public Klass2(String prib_name, float prib_niz, float prib_verx, int prib_pogr, float prib_ves,float prib_cena) {
super(prib_name, prib_niz, prib_verx, prib_pogr, prib_ves);//обращение до конструктора суперкласса
cena=prib_cena;
}
@Override
public void print()//метод из интерфейса TestInterface{
System.out.println("Название товара:"+name);
System.out.println("Нижний предел:"+niz);
System.out.println("Верхний предел:"+verx);
System.out.println("Погрешность:"+pogr);
System.out.println("Вес:"+ves);
System.out.println("Цена"+cena);
}
@Override
public void add()// метод из интерфейса TestInterface1
{
Scanner in= new Scanner(System.in);
System.out.println("Введите название товара:");
name=in.nextLine();
System.out.println("Введите нижний предел:");
niz=in.nextFloat();
System.out.println("Введите верхний предел:");
verx=in.nextFloat();
System.out.println("Введите погрешность:");
pogr=in.nextInt();
System.out.println("Введите вес:");
ves=in.nextFloat();
System.out.println("Введите цену:");
cena=in.nextFloat(); }
}
public class JavaLab12 {
public static void main(String[] args) {
Klass2 a1 = new Klass2("Test1",1,2,3,4,5);
Klass1 a2 = new Klass1("Test2",2,3,4,5);
a1.print();
a2.PrintInter();
a1.add();
a2.AddInter();
a1.print();
a2.PrintInter(); }
}