|
3 / 3 / 1
Регистрация: 04.11.2013
Сообщений: 46
|
|
Зачем расширять класс?03.12.2013, 21:50. Показов 1108. Ответов 5
Метки нет (Все метки)
0
|
|
| 03.12.2013, 21:50 | |
|
Ответы с готовыми решениями:
5
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять?
Как справильно расширять массив? |
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 03.12.2013, 22:51 | |
|
rome098, что бы иметь ряд классов с общим интерфейсом и разной реализацией.
0
|
|
|
Почетный модератор
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
|
|
| 03.12.2013, 23:35 | |
|
rome098, при большом объеме добавлений ваш код "разрастется" и станет неуправляемым. К тому же, если следовать кондициям ООП, добавлять методы не всегда является верным решением. Пара примеров для осмысления.
1. Представьте, что вы создали класс "животное" Вы хотите определить кошку и собаку. Что произойдет, если вы будете добавлять все в один класс? Например, метод "есть". Рацион у кошек и собак, в общем-то, несколько различается. А еще лучше будет пример, пускай, несколько глупый, но, зато, хорошо объясняющий (имхо): представьте, что вы определили метод "справляться с малой нуждой". Кошки ногу не задирают.. Вот и получается, что либо вам придется писать несколько, по сути, одинаковых методов (за исключением различных мелочей реализации), либо воспользоваться полиморфизмом (если честно, не знаю, как в AS обстоят дела с возможностью переопределения виртуальных методов в этом же классе), либо забить все условиями. Помимо этого, наследование позволяет более четко выразить отношения - если в классе "Кошка" определен метод "есть", то становится понятно, к примеру, что она не может съесть столько же, сколько описано в методе "есть" собаки. Другой пример - абстрактные классы (опять же, не знаю, есть ли они в AS) и интерфейсы. В них вы можете выделить общее для некоторых классов, таким образом, убрав излишнее дублирование кода. А в интерфейсах вы можете указать методы, которые обязательно необходимо описать (памятка, чтобы не забыть). Если брать все тот же пример про собак и кошек - у всех них должны быть методы "есть" (ведь должны же они питаться), "спать"(или отдыхать) - чтобы не забыть где-то их объявить (к примеру, может получиться, что собака не может есть), используются интерфейсы.. 2. Напиток. Представьте, что вы захотели описать некоторую иерархию напитков. Что для этого необходимо? Можно разбить их на множество категорий, например: Алкогольные/безалкогольные. В свою очередь, алкогольные можно разбить(условно, сокращенно) на пиво/вино/водка/коньяк. Безалкогольные (также, условно) на квас/сок/лимонад/минералка. Посмотрите, сколько всего можно выделить (и это лишь по малости). Если все писать в одном классе, то он разрастется на очень большой код, чтобы учитывать все нюансы каждого напитка. Наследование позволяет нам более удобно "разбросать" код, в котором будет намного легче ориентироваться: Создаем базовый класс "Напиток" -> создаем два подкласса "безалкогольные напитки" и "алкогольные напитки", от каждого создаем по четыре (как в примере) подкласса. Спокойно описываем общее для всех напитков в базовом классе "Напиток" (например, метод "распитие" и т.п.), спокойно описываем общее для классов "безалкогольные"/"алкогольные", спокойно описывает особенности каждого выбранного напитка. Да, конечно, все это можно реализовать и "меньшей кровью", путем определения различных свойств, но не всегда такое решение будет являться верным. Другой пример - люди Есть родители, есть дети. Что-то дети перенимают от родителей, что-то у них свое (своя жизнь, отличная от жизни родителей). Думаю, если немного представить, то продолжение станет ясно ![]() Как-то так, думаю, если я где-то ошибся, то меня подправят разбирающиеся..
0
|
|
| 03.12.2013, 23:51 | |
|
Не по теме: Тема переносится из раздела ActionScript (подраздел флеша)
0
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
|
|
| 04.12.2013, 07:43 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 04.12.2013, 07:59 | |
|
0
|
|
| 04.12.2013, 07:59 | |
|
Помогаю со студенческими работами здесь
6
Вариации тайтлов: стоит ли расширять? Зачем регистрировать класс таким образом? Как расширять таблицу до максимального размера?
Зачем объявляется класс Box в приведенном коде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|