Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108

ООП в JAVA

27.12.2018, 10:41. Показов 2267. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте и с наступающим Новым Годом и праздниками!

Объектно-ориентированное программирование в Java, разбираюсь

1) Создайте класс Shop с обобщённым типом данных (один параметр).

2) Добавьте поле с массивом с обобщённым типом (то есть, это может быть, как массив целых чисел, так и массив из строк).

3) Создайте конструктор, принимающий этот массив и записывающий его в поле. Разумеется, метод принимать должен так же обобщённый тип данных.

4) Создайте метод printObject(), который выведет в консоль всё поле.

5) Создайте объект и запишите в него массив целых чисел (для примера, пусть это будут id товаров в магазине).

6) Создайте ещё один объект и запишите в него массив строк (для примера, пусть это будут названия товаров в магазине).

7) Вызовите у обоих объектов метод printObject().

Не получается. Вот код:

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
public class Shop <X> { 
 
private X [] arr; 
 
public Shop (X [] arr) { 
this.arr = arr; 
} 
 
public X [] getA (){ 
return arr; 
} 
 
public void setA (X [] arr){ 
this.arr = arr; 
} 
 
public void printObject(){ 
for (X a : arr) 
System.out.println(a); 
} 
} 
 
и вот код в main: 
 
int [] arr1 = {1,2,3}; 
Shop t = new Shop (arr1); 
t.printObject();
- не работает, ошибка создания объекта класса Shop. вот такая: incompatible types: int[] cannot be converted to Object[].
Если меняю в конструкторе класса Shop принимаемый тип на Object obj, то не работает метод printObject().
Подскажите пожалуйста что не так.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2018, 10:41
Ответы с готовыми решениями:

ООП Java
Есть три класса: group, person и skill(предпочтительно: enum, но допустимо любое решение). В первом задании необходимо добавить ...

ООП в Java
Здарова, мужики. Изучаю Java, появилось несколько непонятных для меня вещей, которые не дают мне покоя:) Надеюсь, что сможете мне помочь...

ООП в JAVA
Реализовать приложение, позволяющее создавать цветочные композиции. Составляющими цветочной композиции являются цветы и упаковка. Для...

9
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
27.12.2018, 10:51
класс-обёртку используйте, вместо int должно быть Integer:
Java
1
Integer[] arr1 = {1,2,3};
обобщения не работают с простыми типами
1
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
27.12.2018, 17:31  [ТС]
Не совсем к сожалению понял.
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
27.12.2018, 17:40
Цитата Сообщение от tracerX Посмотреть сообщение
Не совсем к сожалению понял.
Это шутка?

Java
1
2
3
4
5
6
7
public class Main {
    public static void main(String[] args) {
        Integer[] arr1 = {1,2,3};
        Shop<Integer> t = new Shop<>(arr1);
        t.printObject();
    }
}
https://docs.oracle.com/javase... types.html
0
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
27.12.2018, 17:41  [ТС]
Про типы понял, я не за это
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
27.12.2018, 17:44
так а что непонятно?
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
28.12.2018, 20:04
Лучший ответ Сообщение было отмечено tracerX как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package tracerX;
 
/**
 *
 * @author vvm
 */
public class TestShop {
 
    public static void main(String[] args) {
        Integer[] arrPr = {18109, 212321, 31221};
        Shop<Integer> idProduct = new Shop<>(arrPr);
        idProduct.printObject();
        String[] strAr = {"Cувенир Свинка", "Cувенир шкатулка", "Cувенир тарелка"};
        Shop<String> nameProduct = new Shop<>(strAr);
        nameProduct.printObject();
 
    }
}
0
 Аватар для Aviz__
2740 / 2049 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
29.12.2018, 10:00
tracerX, гля, как может быть гибко
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
75
76
77
78
79
80
81
import java.util.Arrays;
import java.util.Comparator;
 
public class Helper {
 
    public static void main(String[] args) {
        ProductAndId [] autos = new ProductAndId[4];
        autos[0] = new ProductAndId("BMW");
        autos[1] = new ProductAndId("AZLK");
        autos[2] = new ProductAndId("KIA");
        autos[3] = new ProductAndId("LADA");
        Shop<ProductAndId> autoShop = new Shop<>(autos);
        // выводим авто в порядке массива
        autoShop.printObject();
        // хотим отсортировать в обратном порядке их (авто) Id
        Comparator<ProductAndId> compRevesId = new Comparator<ProductAndId>() {
            @Override
            public int compare(ProductAndId o1, ProductAndId o2) {
                return -Integer.compare(o1.getId(),o2.getId());
            }
        };
        // сортируеем в обратном порядке по Id
        Arrays.sort(autos, compRevesId);
        // печать после сортировки
        autoShop.printObject();
        // теперь, отсортируем по длинне названия
        Comparator<ProductAndId> compLengthName = new Comparator<ProductAndId>() {
            @Override
            public int compare(ProductAndId o1, ProductAndId o2) {
                return Integer.compare(o1.getName().length(),o2.getName().length());
            }
        };
        // сортируеем длинне имени
        Arrays.sort(autos, compLengthName);
        // печать после сортировки
        autoShop.printObject();
    }
}
 
class Shop <T> {
    private T[] arrayObgGenerType;
 
    Shop (T[] arr) {
        this.arrayObgGenerType = arr;
    }
 
    public void printObject(){
        for (T a : arrayObgGenerType)
            System.out.println(a);
        System.out.println("===============");
    }
}
 
class ProductAndId {
    private static int boxId = 1000;
    private int id;
    private String name;
 
    ProductAndId(String name) {
        id = boxId++;
        this.name = name;
    }
 
    public int getId() {
        return id;
    }
 
    public String getName() {
        return name;
    }
 
    public void reName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return '\'' + name + '\''
                + " id = " + id;
    }
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'BMW' id = 1000
'AZLK' id = 1001
'KIA' id = 1002
'LADA' id = 1003
===============
'LADA' id = 1003
'KIA' id = 1002
'AZLK' id = 1001
'BMW' id = 1000
===============
'KIA' id = 1002
'BMW' id = 1000
'LADA' id = 1003
'AZLK' id = 1001
===============
1
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
29.12.2018, 11:01
Aviz__, зачем такие сложные компараторы?
Java
1
2
     // сортируеем в обратном порядке по Id
     Arrays.sort(autos, (a, b) -> b.getId() - a.getId());
Java
1
2
3
4
5
        // теперь, отсортируем по длинне названия
        Comparator<ProductAndId> compLengthName = (a,b) ->
                a.getName().length() - b.getName().length();
        // сортируеем длинне имени
        Arrays.sort(autos, compLengthName);
0
 Аватар для Aviz__
2740 / 2049 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
29.12.2018, 11:03
Цитата Сообщение от ViktorFX Посмотреть сообщение
сложные компараторы?
для новичков))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2018, 11:03
Помогаю со студенческими работами здесь

Java ООП(интерфейс)
Добрый вечер,помогите написать код пожалуйста. Есть класс товаров(чего либо),реализуйте для него два интерфейса.В одном просмотр...

Задача по Java, принципы ООП
Используя принципы ООП написать на языке Java программу, которая обеспечивает точное выполнение таких операций над рациональными функциями,...

Основы ООП в языке Java
1. Описать класс &quot;четырехугольник&quot;, члены класса – координаты 4-х точек. Предусмотреть в классе методы вычисления и вывода сведений о...

Базовые понятия java ООП, инкапсуляция и т.д
Всем привет. Изучаю сейчас джава, простенький код написал, чтоб разобраться, как джава с переменными работает. В итоге мозг взрывается....

Как записать ООП код на языке java script
Здравствуйте. Я ооп ориентированный код писал только на языке php, там... вроде понятно class chashka { var svojstvo_cvet =...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru