Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 2 / 0
Регистрация: 27.02.2017
Сообщений: 101

Изучение инкапсуляции и абстракции

19.01.2018, 14:40. Показов 2304. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго вечера у меня очередная лабораторка.
Завдання.
Створити на мові Java клас, який описує поняття реального світу згідно з варіантом завдання. Клас повинен мати не менше 5 полів, що описують властивості даного поняття та не менше 3 методів, які описують його поведінку. Методи повинні працювати з полями, читати або записувати їх; всі поля повинні бути задіяні в методах. Імена полів повинні починатись з іменника або прикметника, методів – з дієслова. Створити програму, яка створює вікно з чотирма кнопками. При натисненні на першу кнопку повинен створитись об’єкт нашого класу, при натисненні на кожну з інших кнопок повинен запускатись відповідний метод нашого класу.
Варіанти (поняття реального світу для створення класу).
1. Кнопка на клавіатурі.

Все что я пока осилил это:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import javax.swing.*;
 
public class Start {
 
    public static void main(String[] args) {
        //создаю фрейм для размещения элементов
        JFrame frame = new JFrame("ЗПЗ-164 Асанов С.В. Лабораторна №2");
        frame.setSize(400,200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        Panel panel = new Panel();
        Button button = new Button();
        frame.add(panel);
        panel.add(button);
 
    }
}
И еще пара конструкторов.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import javax.swing.*;
 
class Panel extends JPanel {
    Panel (){
        setLayout(null);
    }
}
 
import javax.swing.*;
 
class Button extends JButton{
 
    Button(){
        setBounds(175,140,50,50);
    }
}
В каком направлении дальше двигаться.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2018, 14:40
Ответы с готовыми решениями:

Абстракции
Мои работы в стиле абстракций. Работа выполненная несколько месяцев назад.

Неопределенность в абстракции
Добрый день. Есть класс A от которого производится класс В и С. У этих классов есть общий метод f1(). у класса B не...

Entity Framework и абстракции
Можно сказать "новичковый" вопрос :) Есть сущности, созданные из базы данных. Database First. К примеру, код только как пример, в...

24
0 / 2 / 0
Регистрация: 27.02.2017
Сообщений: 101
07.02.2018, 14:25  [ТС]
Студворк — интернет-сервис помощи студентам
iSmokeJC, если я правильно понял то, что toString переводит любое цифровое значение в строку. Пытался передать это значение таким образом.

//это находится в слушателе кнопки.
String s = toString(mainVolume.getValue()); тут он мне пишет ошибку
//t1 текстовое поле
t1.setText(s);
0
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
07.02.2018, 14:34
toString используется после

String s = mainVolume.getValue().toString();
1
0 / 2 / 0
Регистрация: 27.02.2017
Сообщений: 101
07.02.2018, 14:58  [ТС]
TinSemenova, спасибо разобрался таким образом.

//в классе громкость
public String toString() {
return "Громкость теперь: "+value;
}

//в обработчике
String s = mainVolume.toString();
t1.setText(s);
0
85 / 67 / 25
Регистрация: 09.10.2017
Сообщений: 208
07.02.2018, 15:07
так как Вы переопределили toString()

можете теперь написать

t1.setText(mainVolume);
0
0 / 2 / 0
Регистрация: 27.02.2017
Сообщений: 101
08.02.2018, 00:17  [ТС]
Вот, что получилось в конечном счете. Вариант не идеальный, т.к. задача заключалась в том, чтоб одной кнопкой создать объект, и еще 3 кнопками выполнять методы кнопки. Хотел еще прилепить поле boolean state, но пока нет знания, как применить это поле(в теории оно должно определять состояние кнопки).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import javax.swing.*;
 
public class Button extends JButton {
 
    //поля кнопки
    private String symbol;
 
 
    //конструктор кнопки
    public Button (String symbol){
        super(symbol);
        this.symbol = symbol;
    }
 
    //методы кнопки
    public void setLower (String s){
        symbol = symbol.toLowerCase();
    }
 
    public void setUpper (String s){
        symbol = symbol.toUpperCase();
    }
 
    @Override
    public String toString() {
        return symbol;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class Start{
 
    public static void main(String[] args) {
 
        JFrame frame = new JFrame("Button test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setSize(300,235);
 
        JTextArea ta = new JTextArea();
        ta.setBounds(100,10,180,215);
 
        JPanel panel = new JPanel();
        panel.setLayout(null);
        frame.add(panel);
        panel.add(ta);
 
        Button b1 = new Button("ON");
        Button b2 = new Button("h");
        Button b3 = new Button("Shift");
        Button b4 = new Button("H");
 
        b1.setBounds(10,10,70,50);
        b2.setBounds(10,65,70,50);
        b3.setBounds(10,120,70,50);
        b4.setBounds(10,175,70,50);
 
        panel.add(b1);
        panel.add(b2);
        panel.add(b3);
        panel.add(b4);
 
        b2.setEnabled(false);
        b3.setEnabled(false);
        b4.setEnabled(false);
 
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                ta.setText("Вы создали кнопку H");
                b2.setEnabled(true);
                b3.setEnabled(true);
            }
        });
 
        b3.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                b4.setEnabled(true);
 
            }
        });
 
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                b2.setLower("h");
                ta.setText(b2.toString());
            }
        });
 
        b4.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                b4.setUpper("h");
                ta.setText(b4.toString());
            }
        });
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.02.2018, 00:17

Задачка с использованием абстракции
Добрый день! подскажите(объясните:)) пожалуйста, что еще необходимо сделать с данной задачей с абстракциями и интерфейсами. Понимаю...

Абстракция, уровни абстракции
Как понять это? Может кто-нибудь объяснить более доступным и понятным языком нежели википедия?

Права доступа, уровень абстракции
Использую Asp.net 4, в качестве провайдера доступа использую пока свой, похожий на membership. В БД есть: 1)таблица Users, в ней есть...

Написать код программы (Абстракции)
Всем доброго времени суток. Имеется одна задача, которую я не могу решить в течении недели. Вот сама задача: Создать класс Man...

Сложность абстракции, полиморфизм, дублирование и другие
//структура "матрица" //Представляет собой обёртку над двухмерным массивом template<typename TypeT, int _SizeX, int _sizeY> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru