|
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
|
|
Базовые термины JAVA20.03.2013, 01:05. Показов 5972. Ответов 9
Метки нет (Все метки)
Написать небольшую програмку на джаве смекалки хватает, но вот с теорией не все в порядке. Читаю сейчас книги по джаве вроде понимаю, НЕ УВЕРЕН ЧТО ПРАВИЛЬНО ПОНИМАЮ, нужна ваша помощь как опытных программистов.Укажите пожалуйста на ошибки в определение терминов, если они есть. (их я описываю своими словами, так как понял): Класс - основа любой программы которая содержит объекты решающие определенный ряд поставленных этому классу задач. Тип - тоже что и класс, только звучит в более общей форме, то есть не имея акцента именно на классе, а просто как определения типа какого то обьекта. Переменная - (х, у, а, с, cat, dog) вводимые так сказать собственные "символы/слова" которым присваивается какое то значение. Метод/функция - метод это то же что и функция, в ООП функции называют методами. Метод это своеобразный обработчик наших переменных/обьектов. То есть набор действий/инструкций для переменных или обьектов, написанный нами (так же есть встроеный методы (например систем.аут.принтлн). Обьект/экземпляр класса - обьект и экземпляр это одно и то же. то есть обьект обладает какими то свойствами, а эти свойства как бы экземпляры самого обьекта( человек - обьект. Уши, ноги , руки - экземпляры обьекта ПОТОМУ ЧТО ПРИНАДЛЕЖАТ ЧЕЛОВЕКУ), а обьект ЧЕЛОВЕК в свою очередь тоже является экземпляром но уже более высокого класса. конструктор класса - что то непонятное, типа метода, но он выполняется сразу после своего объявления(если можно, поясните что это) композиция - тоже смутно понимаю, это что то типа производного класса ? класс в середине главного класса? агрегирование - динамическая композиция, то есть например: человек и голова - без головы нет человека, без человека нет головы (это композиция), голова - волосы - волосы могут бить, могут не бить от этого композиция не разрушится (это агрегирование)????? делегирование - передача управления, тоже не особо ясно.
0
|
|
| 20.03.2013, 01:05 | |
|
Ответы с готовыми решениями:
9
Базовые понятия java ООП, инкапсуляция и т.д
Термины-антонимы |
|
|
|
| 20.03.2013, 02:04 | |
|
Класс - основа любой программы которая содержит объекты решающие определенный ряд поставленных этому классу задач.
Не обязательно задачи только этого класса, может быть класс полностью из статических женерик методов решающий задачи целого конгломерата классовТип - тоже что и класс, только звучит в более общей форме, то есть не имея акцента именно на классе, а просто как определения типа какого то обьекта. тип - нет такого понятия, есть интерфейсПеременная - (х, у, а, с, cat, dog) вводимые так сказать собственные "символы/слова" которым присваивается какое то значение. верноМетод/функция - метод это то же что и функция, в ООП функции называют методами. Метод это своеобразный обработчик наших переменных/обьектов. То есть набор действий/инструкций для переменных или обьектов, написанный нами (так же есть встроеный методы (например систем.аут.принтлн). в отличие от функций метод не может быть глобальным, он обязан принадлежать классуОбьект/экземпляр класса - обьект и экземпляр это одно и то же. то есть обьект обладает какими то свойствами, а эти свойства как бы экземпляры самого обьекта( человек - обьект. Уши, ноги , руки - экземпляры обьекта ПОТОМУ ЧТО ПРИНАДЛЕЖАТ ЧЕЛОВЕКУ), а обьект ЧЕЛОВЕК в свою очередь тоже является экземпляром но уже более высокого класса. не совсем верно, обьект он же экземпляр это структура в памяти построенная на основе модели его класса и содержащая внутри себя значение своих переменных, существуют ещё примитивы и они не являются обьектами, хотя могут принадлежать классуконструктор класса - что то непонятное, типа метода, но он выполняется сразу после своего объявления(если можно, поясните что это) аналог метода для создания обьекта класса, если в нём есть параметры, он позволяет их использовать для установки внутреннего состояния класса в определённое значение на этапе создания, в отличии от метода ничего не возвращает кроме обьекта класса в комбинации с newкомпозиция - тоже смутно понимаю, это что то типа производного класса ? класс в середине главного класса? комбинация одних классов внутри другогоагрегирование - динамическая композиция, то есть например: человек и голова - без головы нет человека, без человека нет головы (это композиция), голова - волосы - волосы могут бить, могут не бить от этого композиция не разрушится (это агрегирование)????? в каком контексте звучал этот термин?делегирование - передача управления, тоже не особо ясно.[/QUOTE] например передача задачи прослушивания событий листенеру
1
|
|
|
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
|
||
| 20.03.2013, 02:56 [ТС] | ||
|
Спасибо!
По поводу обьекта я правильно Вас понял?: Обьект это совокупность переменных которые объединяясь выполняют ряд поставленых для данного класса, или класса который их будет вызывать, задач? А каждый класс должен иметь по идее только один обьект, или возможно несколько? по сути для класса ЧЕЛОВЕК, обьектом тоже будет ЧЕЛОВЕК, а его переменными - РУКИ, НОГИ, ГОЛОВА (так как эти элементы выполняют инструкции заданные методом,...?
Добавлено через 18 минут Я думал абстрактная схема будет выглядеть примерно так?: class человек; интерфейс: -рука ........ ........ class рука : человек; интерфейс: -брать -сжимать -отпускать рука рук = новая рука() рук.брать() По идее между классом человек и классом рука происходит композиция?
0
|
||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
||||
| 20.03.2013, 04:35 | ||||
|
На Вашем примере. Если класс - Человек, то объектами могут выступать конкретные люди "Ваня", "Коля", "Петр". Они будут иметь одинаковые поля (уши, ноги , руки), но они будут содержать различные данные для конкретного "экземпляра человека". В некотором роде класс можно рассматривать, как чертеж, из которого в результате получаются конкретные объекты.
1
|
||||
|
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
|
|
| 20.03.2013, 20:05 [ТС] | |
|
но наследование по сути можно не использовать?
Как аналогичный вариант можно же создать к примеру отдельно класс АУДИ, и отдельно класс АУДИ А8, и еще создать третий класс который будет исполнять/управлять классами АУДИ и АУДИ А8 Разве в этом случае результат не будет такой же как если бы мы унаследовали от класса АУДИ класс АУДИ А8?? Просто мне немного сложно уловить саму суть наследования, как то так все это..(в базовом классе интерфейс тот что и в дочернем классе , но что те что те работают со своими данными, суть тогда?? просто что бы меньше места и меньше исходных файлов с росширением .class???) ![]() СКАЖИТЕ ПОЖАЛУЙСТА СВОИМИ СЛОВАМИ, ДЛЯ ЧЕГО НАСЛЕДОВАНИЕ И КОМПОЗИЦИЯ . СПАСИБО. книги читаю, но хочу вникнуть в суть на все 101% чисто философски)
0
|
|
|
|
|
| 20.03.2013, 21:12 | |
|
наследование придумали по двум простым причинам: 1) что бы не писать одно и то же 100500 раз, 2) что бы не рвать зад при небольших изменениях
например вам нужно описать все живое в этом мире. хотя нет, остановимся на мышах. это подсемейство состоит из 519 видов. т.е. если не применять наследование у вас будет 519 классов в которых 80% информации будет совершенно одинаковая. теперь вам нужно еще описать пару не смежных видов млекопитающих. можете выбрать все что угодно. количество классов выросло в 2-3 раза. количество совершенно одинаковой информации так и осталось на уровне 80%. всего видов млекопитающих на нашей планете что-то около 5000-5500 штук. сколько бы вы не дописывали классов процент одинакового кода уменьшатся не будет. но будет увеличиваться количество классов теперь вам нужно изменить какую-то информацию относящуюся именно к млекопитающим. например добавить поле "boolean рождаетсяСлепым" и установку его значения в конструкторе. в итоге вам нужно править каждый из написанных вами классов дописывая в каждый две совершенно одинаковые строчки кода. внимание: в 5500 классах написать совершенно одинаковые две строчки кода. если бы у вас было наследование - вам нужно было бы добавить эти эти две строчки в один единственный класс. при этом применение наследования увеличило общее количество классов примерно на 10-20%, в зависимости от требуемого уровня детализации иерархии. а теперь вопрос: зачем же нужно наследование?) да. и это я не затрагивал тему управления всем этим ужасом
1
|
|
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20.03.2013, 21:17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
У меня к Вам многабукав, не сердчайте
![]() ![]() Наследуясь от класса, мы: 1. перенимаем все поля и методы, которые были в базовом классе, 2. расширяем их полями и методами дочернего класса. Другими словами, конкретизируем. Используя объекты одного класса внутри другого, мы: 1. видим только в объекте только то, что нам предоставил открыты интерфейс, 2. не можем повлиять на структуру используемого класса. Дополнением является то, что в дочернем классе интерфейс = интерфейс базового класса + интерфейс дочернего. Дочерние классы очень даже могут работать с полями и методами базового класса. Точнее да, экономия места тоже в списке положительных моментов присутствует. Давайте на примерах.Задача №1:
Допустим, нам нужно описать ряд автомобилей с помощью классов (для дальнейшего использования где-либо). Для линейки Ауди: A5, A8, TT. Данные которые должны храниться: цвет, количество дверей. И что должны уметь наши машины: ехать и открывать двери.
Получим:
Нам на помощь может прийти базовый класс. Туда мы вынесем всю информацию, которая дублируется в дочерних. Т.е.
Еще один плюсом наследования является удобство для внесения изменений. Представьте ситуацию ... когда Вы без наследования создали классы для 33х машин. А Вам говорят, "А давайте мы еще форму фар добавим". Нужно пролистать все 33 штуки и везде не забыть добавить. Альтернатива в наследовании - 1 строчка в 1 классе ![]() Про композицию: Допустим, нам надо добавить фары к нашим машинкам. И нужно следить за количеством лампочек в них и формой. Что они у нас будут уметь делать: вкл и выкл. Одним примитивным типом данных не описать (не, можно, конечно, строкой полное дословное описание ... но как-то не красиво). Нам понадобится класс для хранения этих данных:
Задача №2:
Допустим, у нас гонка и все наши 3 машины учавствуют в ней. Что по сути нам нужно сделать: нужно чтобы все 3 машины поехали.
Где-то в коде мы создаем объекты наших классов:
1. Наследование. 2. Полиморфизм ... если еще не разбирались, можете пока не заморачиваться. Т.к. мы говорили (используя наследование), что "A5 так же является Ауди", как и остальные 2 класса. Мы можем чуть переписать нашу запись:
Надеюсь, у меня получилось что-то донести
1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
-7 / 22 / 4
Регистрация: 07.03.2013
Сообщений: 229
|
|||
| 20.03.2013, 22:32 [ТС] | |||
|
Добавлено через 5 минут Это просто гениально, это гениально просто, информация воспринимается на лету, все по полочкам, сразу видно - с энтузиазмом человек взялся..! Это Вы сами писали или с какой то литературы? если с литературы, то мне она срочно позарез нужна!))
0
|
|||
|
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
|
||
| 21.03.2013, 00:12 | ||
![]() Эккель - хороший товарищ, и книга хорошая. Но вот русский перевод на треть меньше оригинала. Знаю, что некоторых глав не хватает .. может и какие-то описания обрезали. Если есть возможность, я бы рекомендовала англо-версию глянуть. А вообще, все поймется со временем. Нет одной универсальной книги, которая сразу всему научит. Читайте, пробуйте и со временем количество перерастет в качество ![]() А если не понимается - спрашивайте, пальцев много, хватит на объяснение не малого количества материала
0
|
||
|
|
|
| 21.03.2013, 11:12 | |
|
забыл сказать. в плане ооп могу посоветовать: Гради Буч. Объектно ориентированный анализ и проектирование
заодно познакомитесь с UML
1
|
|
| 21.03.2013, 11:12 | |
|
Помогаю со студенческими работами здесь
10
Вывести термины иерархической таксономии Переведите, пожалуйста. географические термины Термины в кавычках в прописные буквы Скиньте все термины по Pascal ABC
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|