Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/84: Рейтинг темы: голосов - 84, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 02.10.2019
Сообщений: 20

Объясните понятие ООП

13.02.2020, 23:25. Показов 21409. Ответов 242

Студворк — интернет-сервис помощи студентам
Скажите пожалуйста понятным языком, что такое объектно-ориентированное программирование ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2020, 23:25
Ответы с готовыми решениями:

Понятие ООП
Доброго времени суток! Пытаюсь вникнуть в ООП после длительного написания кода в процедурном стиле, и это не так просто =( Хочу...

Объясните понятие изоморфизма двух алгебр (на примере)
Кто нибудь, объясните мне понятие изоморфизма двух алгебр на примере. Или дайте источник информации (я искал -- толкового ничего не нашёл)....

Дать понятие понятие НОК в кольце целых чисел
Дать понятие понятие НОК в кольце целых чисел.

242
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
20.10.2020, 13:02
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от vantfiles Посмотреть сообщение
функциональности и данных, связанных и упакованных вместе
У меня всего 3 вопроса:
1. Что такое функциональность?
2. Что такое данные?
3. Что значит "упакованы вместе"?

Пожалуйста, при ответе не используйте ООП терминологию, чтобы не получилось "сипульки - см. сипулькарий".
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.10.2020, 13:44
Что такое функциональность -- непосредственно исполняемый код или ссылка на него.
Что такое данные -- именованная область памяти, предназначенная для хранения как правило данных.
Что значит "упакованы вместе" -- это как раз и есть то самое понятие, которое позволяет через общий идентификатор делать копии объектов.

Цитата Сообщение от Shamil1 Посмотреть сообщение
не используйте ООП терминологию
вроде б не использовал, но немножко насмешили… Что-то типа "объясните мне химию, но не используйте терминологию"

PS: я не вижу особой разницы между switch( sw_01, "on" ) и sw_01.switch( "on" )

Добавлено через 7 минут
pps: кстати о композиции… возможна и декомпозиция:

Lua
1
2
3
4
5
6
7
8
9
-- Наследование с удалением
 
plane = class()
  function plane:_init()
  end
  plane:motor = motor
 
glider = class( plane )
  glider:motor = nil -- убираем из самолета мотор - получаем планер
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
20.10.2020, 14:01
Цитата Сообщение от vantfiles Посмотреть сообщение
Что значит "упакованы вместе" -- это как раз и есть то самое понятие, которое позволяет через общий идентификатор делать копии объектов.
То есть, "упакованы вместе" значит расположены в одном файле или модуле или пространстве имён?

Добавлено через 4 минуты
Цитата Сообщение от vantfiles Посмотреть сообщение
вроде б не использовал, но немножко насмешили… Что-то типа "объясните мне химию, но не используйте терминологию"
Вот Вы сейчас в определении термина "объект" использовали термин "объект".
Объект = .... упаковны вместе ...
Упакованы вместе = ... копии объектов ...

Именно от этого я Вас предостерегал.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
20.10.2020, 15:02
Одно из определений ООП.

Рассмотрим функцию
C#
1
int _object() => _state++;
Результат вызова функции зависит от предыдущих вызовов, то есть, функция "помнит" о них.

Информация о предыдущих вызовах называется состоянием.
Функция, имеющая состояние, называется объектом.
Функция, создающая объекты, называется классом.
C#
1
2
    Func<int> _class(int state) =>() => state++;
    var object1 = _class(0);
Создание новых классов добавлением/изменением функциональности называется наследованием.
Программирование с использованием объектов и классов называется object-based programming.
object-based programming + наследование = object-oriented programming

Примером object-based языков, которые не object-oriented, является Visual Basic (не путать с VB.NET).
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.10.2020, 16:11
Цитата Сообщение от Shamil1 Посмотреть сообщение
упакованы вместе
Например, находятся в общем, последовательном, непрерывном, именованном адресном пространстве.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
20.10.2020, 16:32
Цитата Сообщение от vantfiles Посмотреть сообщение
Например, находятся в общем, последовательном, непрерывном, именованном адресном пространстве.
В оперативной памяти?
Поля и методы находятся в разных областях памяти. В большинстве реализаций экземпляр класса - поля плюс (упрощённо) ссылка на метаданные класса. Никаких методов рядом в памяти нет.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.10.2020, 17:19
Цитата Сообщение от Shamil1 Посмотреть сообщение
Поля и методы находятся в разных областях памяти.
Перечитайте:

Цитата Сообщение от vantfiles Посмотреть сообщение
Что такое функциональность -- непосредственно исполняемый код или ссылка на него.
Что такое данные -- именованная область памяти, предназначенная для хранения как правило данных.
Добавлено через 1 минуту
Строго говоря - это детали реализации. Никто и ничто не мешает копировать и реальный код тоже.
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
20.10.2020, 17:52
Определение из википедии:
https://ru.m.wikipedia.org/wik... 0%B8%D0%B5)

Вот еще понимающий человек:
https://zen.yandex.ru/media/co... 00b16af5c0

Я тут хочу оговорить один момент: когда говорят "сущность" или "коробка", подразумевают, что у объекта есть имя и граница. В принципе, имя - это то же самое, что и граница. Как правило, в программировании указывают границы некой штуки (скобки begin/end, { } или другие варианты) и дают этой штуке имя. Так происходит с функциями, структурами, объектами. Но бывают штуки с границами, но без имени. Например, анонимные функции. В программе с анонимными штуками по-хитрому происходит обращение (вызов), но безымянные конструкции крайне ограничены в использовании. Поэтому, фактически, границы и имя неразрывны.

А теперь снова перечитайте определения выше. И мое. Ничего я не сочиняю.
Гради Буча и Бертрана Мейерса читать не советую, они плавают в облаках, излишне философствуют. Они хотят перечислить всевозможные категории и эта детализация приводит к тому, что за деревьями не видно леса или в лесу не видно деревьев.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
20.10.2020, 18:01
vantfiles,
C#
1
int _object() => _state++;
Код в одном месте, а данные (состояние) могут быть где угодно.

C#
1
int _object() { int state = 0; return state; }
Данные рядом - прямо в коде, но это не объект.
Или возьмите статический класс в C#. Объектов нет, а код и данные рядом.

Вообще, где находятся код и данные в оперативной памяти, зависит от реализации транслятора.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.10.2020, 18:03
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Вот еще понимающий человек:
https://zen.yandex.ru/media/co... 00b16af5c0
Этот мальчик путается в терминологии:

"Слож­но понять и начать рабо­тать. Под­ход ООП намно­го слож­нее обыч­но­го функ­ци­о­наль­но­го про­грам­ми­ро­ва­ния"
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
20.10.2020, 18:15
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Определение из википедии:
https://ru.m.wikipedia.org/wik... 0%B8%D0%B5)
Рукипедия как обычно. https://en.wikipedia.org/wiki/... er_science)

Цитата Сообщение от Mikhaylo Посмотреть сообщение
А теперь снова перечитайте определения выше. И мое. Ничего я не сочиняю.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
У нас есть простое и понятное определение: объект - это код и данные под общим именем. Если общего имени нет, то это не ООП.
Объе́кт в программировании — некоторая сущность в цифровом пространстве, обладающая определённым состоянием и поведением, имеющая определенные свойства (атрибуты) и операции над ними (методы)
— ничего про общее имя. Значит, ты насочинял.

Добавлено через 2 минуты
Цитата Сообщение от vantfiles Посмотреть сообщение
"ООП — методология программирования, основанная на представлении программы в виде совокупности объектов."
"...объект - способ представления функциональности и данных, связанных и упакованных вместе."
В CLOS код и данные не упакованы вместе, ООП оно быть не перестаёт из-за этого.

Добавлено через 5 минут
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Вот еще понимающий человек:
https://zen.yandex.ru/media/co... 00b16af5c0
Да… Понимающий…
Абстрак­ция — у объ­ек­та есть «интер­фейс»: у объ­ек­та есть мето­ды и свой­ства, к кото­рым мы можем обра­тить­ся извне это­го объ­ек­та. Так же, как мы можем нажать кноп­ку на блен­де­ре. У блен­де­ра есть мно­го все­го внут­ри, что застав­ля­ет его рабо­тать, но на глав­ной пане­ли есть толь­ко кноп­ка. Вот эта кноп­ка и есть абстракт­ный интер­фейс.

В про­грам­ме мы можем ска­зать: «Уда­лить поль­зо­ва­те­ля». На язы­ке ООП это будет «пользователь.удалить()» — то есть мы обра­ща­ем­ся к объ­ек­ту «поль­зо­ва­тель» и вызы­ва­ем метод «уда­лить». Кайф в том, что нам не так важ­но, как имен­но будет про­ис­хо­дить уда­ле­ние: ООП поз­во­ля­ет нам не думать об этом в момент обра­ще­ния.

Напри­мер, над мага­зи­ном рабо­та­ют два про­грам­ми­ста: один пишет модуль зака­за, а вто­рой — модуль достав­ки. У пер­во­го в объ­ек­те «заказ» есть метод «отме­нить». И вот вто­ро­му нуж­но из-за достав­ки отме­нить заказ. И он спо­кой­но пишет: «заказ.отменить()». Ему неваж­но, как дру­гой про­грам­мист будет реа­ли­зо­вы­вать отме­ну: какие он отпра­вит пись­ма, что запи­шет в базу дан­ных, какие выве­дет пре­ду­пре­жде­ния.
А при вызове процедуры нам нужно знать как именно процедура будет проводить удаление? Что за чушь?

Добавлено через 1 минуту
Насле­до­ва­ние — спо­соб­ность к копи­ро­ва­нию. ООП поз­во­ля­ет созда­вать мно­го объ­ек­тов по обра­зу и подо­бию дру­го­го объ­ек­та. Это поз­во­ля­ет не копи­па­стить код по две­сти раз, а один раз нор­маль­но напи­сать и потом мно­го раз исполь­зо­вать.
А процедуру нельзя один раз нормально написать и потом много раз использовать?
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
20.10.2020, 18:19
Лучше уж вот это прочесть:

Бьярн Страуструп. Что такое объектно-ориентированное программирование.

http://grizlyk.chat.ru/art/strous1.htm

Позволяет взять концепцию за основу, понять откуда ножки растут и не повторять ошибок.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
20.10.2020, 18:36
Иде­аль­ные объ­ек­ты про­грам­ми­сты назы­ва­ют клас­са­ми.


Мень­ше оди­на­ко­во­го кода. Если в обыч­ном про­грам­ми­ро­ва­нии одна функ­ция счи­та­ет повто­ря­ю­щи­е­ся сим­во­лы в одно­мер­ном мас­си­ве, а дру­гая — в дву­мер­ном, то у них боль­шая часть кода будет оди­на­ко­вой. В ООП это реша­ет­ся насле­до­ва­ни­ем.
Наследовать двумерный массив от одномерного — это нужно сильно упороться. Так даже заядлые фанаты ООП не делают.

Слож­ные про­грам­мы пишут­ся про­ще. Каж­дую боль­шую про­грам­му мож­но раз­ло­жить на несколь­ко бло­ков, сде­лать им мини­маль­ное напол­не­ние, а потом раз за разом подроб­но напол­нить каж­дый блок.
Это можно делать при любом подходе, в том числе и процедурном.

Уве­ли­чи­ва­ет­ся ско­рость напи­са­ния. На стар­те мож­но быст­ро создать нуж­ные ком­по­нен­ты внут­ри про­грам­мы, что­бы полу­чить мини­маль­но рабо­та­ю­щий про­то­тип.
Ага щас, типичный Hello World на Java/C# тому пример. А потом начинается обмазывание паттернами и фреймворками. И простая задача выливается в монстра.

Добавлено через 2 минуты
Цитата Сообщение от vantfiles Посмотреть сообщение
Лучше уж вот это прочесть:
Бьярн Страуструп.
Вот уж что точно читать не стоит (ещё и сайт наркоманский, кому в голову пришло сделать серые буквы на синем фоне?)
«I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.» — Alan Kay
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
20.10.2020, 21:07
Цитата Сообщение от Shamil1 Посмотреть сообщение
Или возьмите статический класс в C#. Объектов нет, а код и данные рядом.

Вообще, где находятся код и данные в оперативной памяти, зависит от реализации транслятора.
Статический класс - это же по сути объект, который не надо создавать, он создаётся автоматически.
Их называют классами по инерции - так как ранее ввели понятие статических полей и методов в классе.
А если взять мое определение, то подпадает под определение объекта. Конечно, сумбур в терминах выходит, но я в этом не виноват. И класс никакой и объект ненаследуемый.

И по концовке - вы как-то неправильно поняли термин "граница объекта". Самые простые для понимания границы - это замкнутая линия, и операторные скобки в текстовых ЯП. Но не исключены другие способы обозначения границ. Граница определяет, входит или не входит переменная или функция в объект в качестве поля или метода.

Добавлено через 15 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
Объе́кт в программировании — некоторая сущность в цифровом пространстве, обладающая определённым состоянием и поведением, имеющая определенные свойства (атрибуты) и операции над ними (методы)
Хреновое определение! Оно базируется на терминах, которые мутные.

Ладно, я закрою глаза на "цифровое пространство", но "состояние" и "поведение" - это для многих требует разъяснения. А разъяснение простое: если у вас есть переменные и связанные с ними функции, то ваша сущность является динамической системой, т.е. обладает состоянием, а раз состоянием, то и поведением. Состояние и поведение - это масло масляное. Более того в конце опять говорится про наличие каких-то свойств и методов. Свойства опять же требуют длительного разъяснения, что по сути это переменная. А методы - это функции. Вывод: короче и проще сказать, что объект содержит переменные и функции. И все. (Я намеренно избегаю обязательного связывания функций и переменных, так как такие объекты с полностью или частично несвязанными членами могут иметь место.)
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
20.10.2020, 21:55
Цитата Сообщение от Mikhaylo Посмотреть сообщение
И по концовке - вы как-то неправильно поняли термин "граница объекта". Самые простые для понимания границы - это замкнутая линия, и операторные скобки в текстовых ЯП. Но не исключены другие способы обозначения границ. Граница определяет, входит или не входит переменная или функция в объект в качестве поля или метода.
И где границы здесь, например:

Lisp
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
(defclass point ()
  ((label :initarg :label :reader point-label)
   (x :type number :initarg :x :reader point-x)
   (y :type number :initarg :y :reader point-y)))
 
(defmethod print-object ((p point) stream)
  (format stream "~a(~a, ~a)" (point-label p) (point-x p) (point-y p)))
 
(defgeneric distance (a b))
 
(defun pythagoras (x1 y1 x2 y2)
  (sqrt (+ (expt (- x1 x2) 2)
           (expt (- y1 y2) 2))))
 
(defun not-applicable (method-name &rest objects)
  (let ((class-names
         (loop :for object :in objects
               :collect (class-name (class-of object)))))
    (format nil "~s is not applicable to ~s." method-name class-names)))
 
(defmethod distance ((a point) (b point))
  (pythagoras (point-x a) (point-y a)
              (point-x b) (point-y b)))
 
(defmethod distance ((a point) (b number))
  (not-applicable 'distance a b))
 
(defmethod distance ((a number) (b point))
  (not-applicable 'distance a b))
 
(defmethod distance ((a complex) (b complex))
  (pythagoras (realpart a) (imagpart a)
              (realpart b) (imagpart b)))
 
(defmethod distance ((a number) (b complex))
  (pythagoras a 0 (realpart b) (imagpart b)))
 
(defmethod distance ((a number) (b complex))
  (pythagoras (realpart a) (imagpart a) b 0))
 
(defmethod distance ((a number) (b number))
  (abs (- a b)))
 
; ----------------------------------------------------------------
 
(let ((a (make-instance 'point :label "A" :x 1.2 :y -3))
      (b (make-instance 'point :label "B" :x 2 :y 3))
      (x (complex 1.2 -3))
      (y (complex 2 3))
      (i 1.2)
      (j 3/4))
  (let ((objects `((a ,a) (b ,b) (x ,x) (y ,y) (i ,i) (j ,j))))
    (loop :for (name object) :in objects :do
      (format t "~a = ~a~%" name object))
    (loop :for ((a-name a) . rest-objects) :on objects :do
      (format t "~%")
      (loop :for (b-name b) :in rest-objects :do
        (format t "distance between ~a and ~a is ~a~%"
                  a-name b-name (distance a b))))))
? Какая функция в какой объект входит?

Code
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
A = A(1.2, -3)
B = B(2, 3)
X = #C(1.2 -3.0)
Y = #C(2 3)
I = 1.2
J = 3/4
 
distance between A and B is 6.053098
distance between A and X is DISTANCE is not applicable to (POINT SB-KERNEL:COMPLEX-SINGLE-FLOAT).
distance between A and Y is DISTANCE is not applicable to (POINT COMPLEX).
distance between A and I is DISTANCE is not applicable to (POINT SINGLE-FLOAT).
distance between A and J is DISTANCE is not applicable to (POINT RATIO).
 
distance between B and X is DISTANCE is not applicable to (POINT SB-KERNEL:COMPLEX-SINGLE-FLOAT).
distance between B and Y is DISTANCE is not applicable to (POINT COMPLEX).
distance between B and I is DISTANCE is not applicable to (POINT SINGLE-FLOAT).
distance between B and J is DISTANCE is not applicable to (POINT RATIO).
 
distance between X and Y is 6.053098
distance between X and I is 3.0
distance between X and J is 3.0335622
 
distance between Y and I is 3.104835
distance between Y and J is 3.25
 
distance between I and J is 0.45000005
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Хреновое определение! Оно базируется на терминах, которые мутные.
Так ты сам его привёл, это из твоей ссылки на википедию. И сказал, что твоё от него почти не отличается. Значит твоё тоже мутное?
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
20.10.2020, 21:58
Цитата Сообщение от korvin_ Посмотреть сообщение
Так ты сам его привёл, это из твоей ссылки на википедию. И сказал, что твоё от него почти не отличается. Значит твоё тоже мутное?
korvin_, за "твою википедию" и "почти" математики канделябрами бьют.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
20.10.2020, 22:09
Цитата Сообщение от Mikhaylo Посмотреть сообщение
за "твою википедию" и "почти" математики канделябрами бьют.
WUT? Сам «пошутил», сам посмеялся… Какой ты самодостаточный.
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
20.10.2020, 22:19
Да все просто: у тебя характерная привычка программиста - сначала напрограммировать, а потом получить от компилятора и от тестировщика 1000 ошибок. При этом ты их не признаешь ошибками, то есть практически не принимаешь действий по устранению повторений этих ошибок в будущем.

Такова шкура программиста. Я сам склонен, но хотя бы знаю и стараюсь покрывать сам себя тестами. И я не шучу.

Нормальные люди немного точнее рассуждают, а когда не знают - молчат. А математики и подавно такие.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
20.10.2020, 22:38
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Да все просто: у тебя характерная привычка программиста - сначала напрограммировать, а потом получить от компилятора и от тестировщика 1000 ошибок. При этом ты их не признаешь ошибками, то есть практически не принимаешь действий по устранению повторений этих ошибок в будущем.
Ты понятия не имеешь, какие у меня привычки.

Цитата Сообщение от Mikhaylo Посмотреть сообщение
Нормальные люди немного точнее рассуждают
Вот тут согласен. Не пишут всякую муть, а ля:
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Конечно, сумбур в терминах выходит, но я в этом не виноват. И класс никакой и объект ненаследуемый.
———————————————————————————————————————— ————————————————————————
Цитата Сообщение от Mikhaylo Посмотреть сообщение
а когда не знают - молчат. А математики и подавно такие.
Вот ты бы пример с них брал.
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
21.10.2020, 00:02
Цитата Сообщение от korvin_ Посмотреть сообщение
Ты понятия не имеешь, какие у меня привычки.
Как это не имею???

Ты самозабвенный нарцисс, поэтому тебе непонятно, что про тебя пишут.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.10.2020, 00:02

Объясните кое что по ООП
Не дает мне покоя очень важный момент, пример: System.IO.File.Open() System.IO - пространство имен File - класс Open() -...

ООП в паскале. Объясните что к чему
Проблема в следующем, хотелось бы понять как подключать дополнительные файлы исходных текстов к основному. не через uses же это делается...

Объясните некоторые принципы ООП в конкретной реализации
Доброго дня! У меня есть пользователи, которые делятся на зарегистрированных (User) и незарегистрированных (Person) и создаются...

Наследование ООП, объясните примитивную ситуацию, пож
Добрый. Всё никак не могу взять в толк: как это должно работать (точнее - почему не работает так, как я ожидаю). Примитивная наколенка: ...

Начинаю изучать ООП. Объясните, что такое интерфейс?
Всем привет. Начинаю изучать ООП. Объясните,что такое интерфейс?для чего он нужен и чем он отличается от класса?


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

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru