Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт за 5 семестр.docx
Скачиваний:
4
Добавлен:
03.12.2018
Размер:
226.47 Кб
Скачать

Файл Тел.Java

import java.awt.Graphics;

import java.awt.Graphics2D;

public class Book extends Papers {

String typeOfBook;

int yearPublication;

String tp = new String();

public Book() {

typeOfBook = "Вони є";

yearPublication = 14;

tp = Integer.toString(yearPublication);

}

public int getYearPublication() {

return yearPublication;

}

public void setYearPublication(int yearPublication) {

this.yearPublication = yearPublication;

}

public String getTypeOfBook() {

return typeOfBook;

}

public void setTypeOfBook(String typeOfBook) {

this.typeOfBook = typeOfBook;

}

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;

g2.drawRoundRect(20, 70, 340, 200, 20, 15);

g2.drawString("Мій телефон!", 150, 150);

g2.drawString("Тип клавіш: ", 115, 170);

g2.drawString("Кількість: ", 115, 190);

g2.drawString(typeOfBook, 230, 170);

g2.drawString(tp, 230, 190);

}

}

Висновок: виконавши лабораторну роботу, я навчився використовувати спадкування. Навчився перевизначати методи при спадкуванні. Навчився використовувати приведення типів об’єктів вгору. Навчився використовувати поліморфізм.

Завдання №4

Тема: Колекції. Приведення типу вниз. RTTI.

Мета: Навчитись використовувати колекції об’єктів. Зрозуміти, в якому випадку і як робиться приведення типу об’єктів вниз. Навчитись користуватись визначенням типу об’єктів під час виконання програми.

В даній роботі будуть використовуватись два класи, розроблені в попередній лабораторній роботі. Додати один оригінальний метод до другого класу.

Розробити програму, яка:

  1. Створює колекцію об’єктів класів попередньої лабораторної роботи (JPanel та двох власних класів), причому об’єкти вносяться в колекцію у випадковій послідовності (використати генератор випадкових чисел).

  2. Відображає колекцію на екрані з можливістю вибору поточного елементу.

  3. Відображає тип поточного об’єкту, беручи інформацію з об’єкту типу Class для даного об’єкту.

  4. Забезпечує можливість виконання методів поточного об’єкту, в тому числі тих методів, яких нема в класі-предку.

Код програми Файл Main.Java

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.*;

import java.awt.*;

import java.util.*;

public class Main extends Jframe {

private static Random random = new Random();

private int z=0;

private int a=0;

static Jbutton key = new Jbutton(«key»);

public static void main(String argv[]) {

final int x=1366, y=768;

Main m = new Main();

m.getContentPane().add(key, BorderLayout.NORTH);

m.setSize(x, y);

m.setVisible(true);

}

Vector<Jpanel> panels;

Main()

{

final FlowLayout fl = new FlowLayout();

this.setLayout(fl);

panels = new Vector<Jpanel>();

int to = random.nextInt(20)+10;

for(int i=0;i<=to;i++)

{

final Jpanel p;

if(random.nextBoolean()){

p = new Papers(20+z, 30+a);

z=z+10;

a=a+10;

}

else

p = new Book();

p.setMinimumSize(new Dimension(380,300));

p.setPreferredSize(new Dimension(380,300));

panels.add(p);

}

final Container pane = this.getContentPane();

for(int i=0;i<panels.size();i++)

pane.add(panels.get(i));

}

}