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

Решение сортировки с ООП

08.04.2018, 14:09. Показов 989. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача.
Есть магазин. В нем есть мобильные телефоны, они могут быть Android и IOS. У каждого свои поля. Нужно отсортировать к примеру Android по версии андроида. И сделать выборку по версии .

Как решал я.
Создал абстрактный класс Phone.
Создал 2 класса PhoneAndroid и PhoneIOS которые заэкстендил от Phone.
Далее создал класс Shop. В нем ArrayList <Phone>.

к примеру мне надо вывести Телефоны Android с 5-й до 7-й версии.

Создаю метод
Java
1
2
3
4
5
6
7
8
public void showAndroid(){
        for (Phone p: phoneList
             ) {
            if(p.getPrice() > 5000 && p.getPrice() < 20000){
                System.out.println(p.toString());
            }
        }
    }
Но получается я не могу так получить доступ к полю version. Так как в IOS допустим такого поля нет. И в коллекции меня храняться объекты как Android так и IOS.

Помогите разобраться.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2018, 14:09
Ответы с готовыми решениями:

Поиск и решение ошибки в ООП
Добрый день,нужна помощь! Начал изучать java,дошел до ООП и в примере создают новый класс &quot;кот&quot;,который хотят использовать в...

Нужно найти решение в ООП и QT
Привет всем, начал &quot;изучать&quot; ООП буквально 2-3 дня и столкнулся с такой проблемой, для Вас возможно смешная, но всё же: как передать...

Решение задачки посредством ООП
Ребята, доброе утро ! Дайте совет пожалуйста новичку :pardon: Есть условие: Напишите программу, читающую массив из 10 чисел и печатающий...

5
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
08.04.2018, 14:15
либо про полиморфизм читай, либо про instanceof (лучше первое)
0
1 / 1 / 0
Регистрация: 03.06.2016
Сообщений: 17
08.04.2018, 14:34  [ТС]
Кто подскажет как правильно сортировать в таком случае?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
09.04.2018, 06:51
Цитата Сообщение от LoGwi-N Посмотреть сообщение
Кто подскажет как правильно сортировать в таком случае?
Оракул подскажет.
0
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
09.04.2018, 08:25
Не оптимально, но, может быть поможет:

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
public class Main {
    
    public static void main(String[] args) {
        Shop shop = new Shop(Arrays.asList(new Android(), new IOS(), new IOS()));
        System.out.println(shop.getPhones(Android.class).size());
        System.out.println(shop.getPhones(IOS.class).size());
    }
}
 
class Shop {
    
    private final List<Phone> phones;
    
    public Shop() {
        this.phones = new ArrayList<>();
    }
 
    public Shop(List<Phone> phones) {
        this.phones = phones;
    }
    
    public List<Phone> getPhones() {
        return Collections.unmodifiableList(phones);
    }
    
    public <T extends Phone> List<T> getPhones(Class<T> phoneType) {
        return phones.stream()
              .filter(ph -> ph.getClass().isAssignableFrom(phoneType))
              .map(ph -> (T) ph)
              .collect(Collectors.toList());
    }
}
 
abstract class Phone {
}
 
class Android extends Phone {
}
 
class IOS extends Phone {
}
Добавлено через 1 минуту
Параметризованный метод getPhones вернет List с нужным типом телефонов, где будут доступны методы именно этих классов, в частности - нужный вам version который отдает.
0
 Аватар для Aviz__
2753 / 2060 / 509
Регистрация: 17.02.2014
Сообщений: 9,487
09.04.2018, 09:54
В классах PhoneAndroid и PhoneIOS создай поля tipeOS и по ниму делай выборку, а по другим параметрам сортировку. Если уж совсем лень переписывать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2018, 09:54
Помогаю со студенческими работами здесь

[ООП] Решение ошибок с построением многофайлового проекта
Здравствуйте. Появилась нужда создать большой проект с большим количеством классов, конечно, разбивая их на разные .cpp и .h файлы. Но...

Решение задачи. Насколько верна матем. часть и стилистика ООП?
Новичок в Java - не судите строго, но насколько корректно решена задача с точки зрения математики и принципов ООП. Можете дать советы? ...

Единственно ли решение задачи сортировки и почему?
единственно ли решение задачи сортировки и почему? Добавлено через 19 минут Можно ли сказать, что не единственное т.к. Сортировки...

Реализовать все алгоритмы сортировки, оформив решение в виде функций ввода, вывода и обработки массивов
Здравствуйте народ,помогите в решении данной задачки с помощью подпрограммы: Дан массив из N элементов. Отсортировать по возрастанию...

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru