теория ооп
Участников: 4
Страница 1 из 1
теория ооп
Глава рассказывает об объектном программировании вообще. Для чего оно нужно и что даёт.
Читать тем, кто понятия не имеет, что это за зверь такой жуткий.
Или тем кто знает и хочет надо мной поржать.
Много, очень много слов сказано и написано про ооп. А я буду продолжать, повторять. И очень надеюсь, что лично я к этой теме больше не вернусь. А просто буду всех посылать к данному тексту.
что такое ооп
ооп - объектно ориентированное программирование.
Выдумка уже довольно старая. Но в полной мере до сих пор не реализованая. Не только на freebasic, но и на java, который почему-то считаеться флагманом в ооп.
Объект, это точка отсчёта . Это Кирпичик из которого состоит ваша программа.
qbasic это язык процедурного программирования. Там объектами даже и не пахнет. Но его потомок visual basic уже объектноориентированный язык. Хотя и в нём встречались очень странные вещи.
Трудно перевести поезд с одних рельс на другие, особенно если между ними огромные различия.
Но это повсеместно практикуеться, так как разработчики видят необходимость в таких изменениях.
И freebasic не избежал этой судьбы.
объект
Что такое объект? А разве вы не знаете?
Объект это какой-то предмет или явление... Короче объектом можно назвать почти всё.
Знаете, как говорят оперативники? "иду за объектом", "вступил в контакт с объектом", имея ввиду подозреваемого или охраняемого человека.
Но строители "работают на объекте", а это может быть сараем или олемпийским комплексом.
Короче объектами называют всё подряд, вот и в программировании почти также.
У объектов могут быть различные свойства.
человек "высокий", "светловолосый", "сильный"....
машина "красная", "легковая"...
объект умеет что-то делать, владеет какими-то [/i]методами[/i].
человек умеет "бегать", "прыгать", "говорить"...
машина "ездит", "сигналит"...
классы
Знаете, как в биологии, есть царства животных, класс млекопетающих, а в нём куча всяких разных зверушек, отмышки до слона.
Или в школе, есть разные классы, в которых учаться детишки.
Класс объеденяет объекты имееющие нечто общее между собой.
Животные, в классе млекопитающих, кормят детёнышей молоком и у них горячая кровь.
детишки из 1 класса, учаться читать и писать.
Класс это исходное (обобщающее) описание объекта. Объекты из одного класса имеют сходные свойства и одинаковые методы.
свойства
Животные из класса "млекопетающих" обладают огромным множеством свойств: рост, вес, сила, цвет, ум.
Но отдельно взятый объект имеет разные значения свойств.
мыш: маленькая, лёгкая, серая, тупая.
слон: большой, тяжелый, серый, тупой.
лиса: небольшая, нетяжелая, рыжая, хитрая.
человек: средний, средний, зелёный, думает что очень умный.
И всё это объекты одного класса! Но они такие разные! А разница их только в свойствах. Которые по сути являються переменными.
Свойство это как глобальные переменные внутри вашего класса.
методы
Как я уже упомянул выше, метод это то что умеет делать объект принадлежащий какому-то классу.
Все звери из класса млекопетающих умеют делать молоко. А вот качество и количество молока зависит уже от свойств. Мышка конечно умеет делать молоко, но корова делает его больше!
Если говорят что от козла можно получить молоко, то с других особей мужского пола этот номер не прокатит.
Возможность давать молоко, зависит от пола объекта.
Коровы умеют есть траву, а вот волки нет. Хотя человек жрёт всё подряд. Уменее, точнее возможность что-то делать заложена в объект изначально.
В программировании метод это функция. Функция не меняеться, но она возвращает разные результаты в зависимости не только от переданных параметров, но и от свойств объекта.
Функции и процедуры описанные в классе называються методами.
конструктор
Создание объекта бывает очень сложным. Долгий путь проходит детёныш от зородыша к взрослой особи. А в начале это чистый лист анкеты, в которой все ячейки пусты.
Класс, это всего лишь шаблон, по которому строиться объект. Но не всё детенышу дают родители.
Конструктор это процедура, которая заполняет некоторые свойства объекта и выполняет подготовительные работы.
Захватить память для массива данных, прочитать настройки из файла, подключиться к базе данных и другие действия которые нужно проделать с объектом, перед тем как программист начнёт заполнять или изменять его свойства.
Конструктор автоматически начинает выполняться, когда создаёться новый объект. Берёться чистый "экземпляр класса" и даздравствует жизнь!
деструктор
А эта процедура противоположна конструктору. Конструктор это жизнь, а деструктор это смерть. Но умирать надо красиво и с музыкой. Но кто положит цветы на могилку, и вообще кто её выкапает для начала?
Деструктор автоматически выполняеться, когда объект удаляют. Был открыт файл, так сохраним данные и закроем файл, была подключена база данных от неё нужно отключиться. Занятую память нужно освободить.
для чего же всё таки нужен ооп
Всё делать самому это очень даже хорошо! Это правильно и полездно. Но вы не сможете полностью сделать всё сами!
Вот вы кликаете мышкой по ссылке. Ваш мозг даёт команду, что нужно кликнуть. А дальше в игру вступает уже ваш мозжечёк, глазные нервы и мышци руки. Прицел курсора наводиться на нужную ссылку, а палец давит на нужную кнопку.
Или вот другой пример. Садитесь вы в машину, поварачиваете ключь зажигания, давите на педаль, крутите руль. Под копотом происходит очень многое. И стартёр тарахтит, инжектор фырчит, да ещё и какой-то винтилятор крутиться. Вам это нужно знать, чтобы просто куда-то поехать? А может быть будем вообще всё это делать сами, ручками? Тогда уж велосипед будет удобнее. В нём вы делаете всё сами!
Ну да, да. Я знаю, что в процедурном программировании это тоже не проблема. Каждое действие выноситься в процедуру или функцию, которой мы передаём разные параметры.
А что делать если этих параметров очень много? Может быть их сотня или даже тысяча! Каждый раз таскать их просто не реально. Ну да, их можно сделать просто глобальными. А если этих глобальных переменных у вас уже и так целая куча?
А ведь им всем нужно придумать ещё и хорошее название. Нужно все эти переменные и функции согласовать друг с другом.
Это можно сделать. А теперь представим себе такую ситуацию. Нужно из нескольких программ сделать одну. Понадёргать функций, немного подправляя находу их названия и имена глобалных переменных. Можно просто сойти сума.
Объектное программирование призвано решить эти проблемы. Берёться класс, из него получаються объекты и производяться нужные манипуляции. Свойства и методы объекта, доступны только через сам объект. А его имя может быть любым возможным для имени переменной. Объект становиться пультом для вашего автомобиля. Рулите, а что твориться под копотом уже не важно, главное результат.
Самже класс изнутри, это обычная программа, в работу которой не вмешиваеться ничего постороннего. Из вне доступно только разрешенное. По этому одни и теже классы легко использовать в нескольких разных проектах.
Даже если вы не понимаете, что делает конкретный класс, его написал ваш товарищь, то вам достаточно знать его свойства и методы и за что они отвечают. Алгоритм реализации уже не важен, пусть о нём думает ваш товарищь.
заключение
Очень надеюсь что объяснил всё понятно и доступно про суть классов и объектов.
Если что-то не понятно, читать второй раз.
Если непонятно по прежнему, то спрашивать.
На самом деле это далеко не всё. Но для начала хватит.
А практика, смотрите классы, свойства, методы и объекты
Читать тем, кто понятия не имеет, что это за зверь такой жуткий.
Или тем кто знает и хочет надо мной поржать.
Много, очень много слов сказано и написано про ооп. А я буду продолжать, повторять. И очень надеюсь, что лично я к этой теме больше не вернусь. А просто буду всех посылать к данному тексту.
что такое ооп
ооп - объектно ориентированное программирование.
Выдумка уже довольно старая. Но в полной мере до сих пор не реализованая. Не только на freebasic, но и на java, который почему-то считаеться флагманом в ооп.
Объект, это точка отсчёта . Это Кирпичик из которого состоит ваша программа.
qbasic это язык процедурного программирования. Там объектами даже и не пахнет. Но его потомок visual basic уже объектноориентированный язык. Хотя и в нём встречались очень странные вещи.
Трудно перевести поезд с одних рельс на другие, особенно если между ними огромные различия.
Но это повсеместно практикуеться, так как разработчики видят необходимость в таких изменениях.
И freebasic не избежал этой судьбы.
объект
Что такое объект? А разве вы не знаете?
Объект это какой-то предмет или явление... Короче объектом можно назвать почти всё.
Знаете, как говорят оперативники? "иду за объектом", "вступил в контакт с объектом", имея ввиду подозреваемого или охраняемого человека.
Но строители "работают на объекте", а это может быть сараем или олемпийским комплексом.
Короче объектами называют всё подряд, вот и в программировании почти также.
У объектов могут быть различные свойства.
человек "высокий", "светловолосый", "сильный"....
машина "красная", "легковая"...
объект умеет что-то делать, владеет какими-то [/i]методами[/i].
человек умеет "бегать", "прыгать", "говорить"...
машина "ездит", "сигналит"...
классы
Знаете, как в биологии, есть царства животных, класс млекопетающих, а в нём куча всяких разных зверушек, отмышки до слона.
Или в школе, есть разные классы, в которых учаться детишки.
Класс объеденяет объекты имееющие нечто общее между собой.
Животные, в классе млекопитающих, кормят детёнышей молоком и у них горячая кровь.
детишки из 1 класса, учаться читать и писать.
Класс это исходное (обобщающее) описание объекта. Объекты из одного класса имеют сходные свойства и одинаковые методы.
свойства
Животные из класса "млекопетающих" обладают огромным множеством свойств: рост, вес, сила, цвет, ум.
Но отдельно взятый объект имеет разные значения свойств.
мыш: маленькая, лёгкая, серая, тупая.
слон: большой, тяжелый, серый, тупой.
лиса: небольшая, нетяжелая, рыжая, хитрая.
человек: средний, средний, зелёный, думает что очень умный.
И всё это объекты одного класса! Но они такие разные! А разница их только в свойствах. Которые по сути являються переменными.
Свойство это как глобальные переменные внутри вашего класса.
методы
Как я уже упомянул выше, метод это то что умеет делать объект принадлежащий какому-то классу.
Все звери из класса млекопетающих умеют делать молоко. А вот качество и количество молока зависит уже от свойств. Мышка конечно умеет делать молоко, но корова делает его больше!
Если говорят что от козла можно получить молоко, то с других особей мужского пола этот номер не прокатит.
Возможность давать молоко, зависит от пола объекта.
Коровы умеют есть траву, а вот волки нет. Хотя человек жрёт всё подряд. Уменее, точнее возможность что-то делать заложена в объект изначально.
В программировании метод это функция. Функция не меняеться, но она возвращает разные результаты в зависимости не только от переданных параметров, но и от свойств объекта.
Функции и процедуры описанные в классе называються методами.
конструктор
Создание объекта бывает очень сложным. Долгий путь проходит детёныш от зородыша к взрослой особи. А в начале это чистый лист анкеты, в которой все ячейки пусты.
Класс, это всего лишь шаблон, по которому строиться объект. Но не всё детенышу дают родители.
Конструктор это процедура, которая заполняет некоторые свойства объекта и выполняет подготовительные работы.
Захватить память для массива данных, прочитать настройки из файла, подключиться к базе данных и другие действия которые нужно проделать с объектом, перед тем как программист начнёт заполнять или изменять его свойства.
Конструктор автоматически начинает выполняться, когда создаёться новый объект. Берёться чистый "экземпляр класса" и даздравствует жизнь!
деструктор
А эта процедура противоположна конструктору. Конструктор это жизнь, а деструктор это смерть. Но умирать надо красиво и с музыкой. Но кто положит цветы на могилку, и вообще кто её выкапает для начала?
Деструктор автоматически выполняеться, когда объект удаляют. Был открыт файл, так сохраним данные и закроем файл, была подключена база данных от неё нужно отключиться. Занятую память нужно освободить.
для чего же всё таки нужен ооп
Всё делать самому это очень даже хорошо! Это правильно и полездно. Но вы не сможете полностью сделать всё сами!
Вот вы кликаете мышкой по ссылке. Ваш мозг даёт команду, что нужно кликнуть. А дальше в игру вступает уже ваш мозжечёк, глазные нервы и мышци руки. Прицел курсора наводиться на нужную ссылку, а палец давит на нужную кнопку.
Или вот другой пример. Садитесь вы в машину, поварачиваете ключь зажигания, давите на педаль, крутите руль. Под копотом происходит очень многое. И стартёр тарахтит, инжектор фырчит, да ещё и какой-то винтилятор крутиться. Вам это нужно знать, чтобы просто куда-то поехать? А может быть будем вообще всё это делать сами, ручками? Тогда уж велосипед будет удобнее. В нём вы делаете всё сами!
Ну да, да. Я знаю, что в процедурном программировании это тоже не проблема. Каждое действие выноситься в процедуру или функцию, которой мы передаём разные параметры.
А что делать если этих параметров очень много? Может быть их сотня или даже тысяча! Каждый раз таскать их просто не реально. Ну да, их можно сделать просто глобальными. А если этих глобальных переменных у вас уже и так целая куча?
А ведь им всем нужно придумать ещё и хорошее название. Нужно все эти переменные и функции согласовать друг с другом.
Это можно сделать. А теперь представим себе такую ситуацию. Нужно из нескольких программ сделать одну. Понадёргать функций, немного подправляя находу их названия и имена глобалных переменных. Можно просто сойти сума.
Объектное программирование призвано решить эти проблемы. Берёться класс, из него получаються объекты и производяться нужные манипуляции. Свойства и методы объекта, доступны только через сам объект. А его имя может быть любым возможным для имени переменной. Объект становиться пультом для вашего автомобиля. Рулите, а что твориться под копотом уже не важно, главное результат.
Самже класс изнутри, это обычная программа, в работу которой не вмешиваеться ничего постороннего. Из вне доступно только разрешенное. По этому одни и теже классы легко использовать в нескольких разных проектах.
Даже если вы не понимаете, что делает конкретный класс, его написал ваш товарищь, то вам достаточно знать его свойства и методы и за что они отвечают. Алгоритм реализации уже не важен, пусть о нём думает ваш товарищь.
заключение
Очень надеюсь что объяснил всё понятно и доступно про суть классов и объектов.
Если что-то не понятно, читать второй раз.
Если непонятно по прежнему, то спрашивать.
На самом деле это далеко не всё. Но для начала хватит.
А практика, смотрите классы, свойства, методы и объекты
Последний раз редактировалось: Eric-S (Пт Авг 22, 2008 8:55 pm), всего редактировалось 1 раз(а)
Re: теория ооп
Офигенные сравнения)))
Я думаю доступней будет сложно написать, принципы поймет даже валенок))
Я думаю доступней будет сложно написать, принципы поймет даже валенок))
Re: теория ооп
Дааа..... Себя помню: смотрю в книгу - "деструктор" эээээ... это как?
Хорошо объяснил - спасибо.
Хорошо объяснил - спасибо.
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 31
Откуда : Москва
Re: теория ооп
Спасибо!
Мне самому понравилось.
Хорошо, да не всё.
К сожалению ооп не полностью реализован во freebasic. И по сему многие понятия, просто пропустил.
А объяснения "на пальцах" имхо доходчивее, чем любые книжные научные завороты. Впрочем я могу и так завернуть.
Мне самому понравилось.
Хорошо, да не всё.
К сожалению ооп не полностью реализован во freebasic. И по сему многие понятия, просто пропустил.
А объяснения "на пальцах" имхо доходчивее, чем любые книжные научные завороты. Впрочем я могу и так завернуть.
Re: теория ооп
Было бы более понятно, если будут приведены примеры (как с оператором Туре в другой теме)
Понял-то я понял, но только в теории, а на практике... Если не сложно - приведи примеры.
Понял-то я понял, но только в теории, а на практике... Если не сложно - приведи примеры.
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 31
Откуда : Москва
Re: теория ооп
А все примеры в соответствующей теме.
Здесь же разъяснение терминов, если они непонятны.
Про ооп читать там
классы, методы, свойства и объекты
Если чего непонятно в практике, то спрашивайте именно там.
Я понимаю, когда на меня ругаються за дело, но русским языком написано "теория", и дана ссылка на "практику"!
Здесь же разъяснение терминов, если они непонятны.
Про ооп читать там
классы, методы, свойства и объекты
Если чего непонятно в практике, то спрашивайте именно там.
Я понимаю, когда на меня ругаються за дело, но русским языком написано "теория", и дана ссылка на "практику"!
Re: теория ооп
Да, статья действительно интересная
Если б не было написано "Теория ООП", скорей всего подумал бы что это по зоологии чем по программированию статья
Желаю и дальше продолжать в таком духе Спасибо!
Если б не было написано "Теория ООП", скорей всего подумал бы что это по зоологии чем по программированию статья
Желаю и дальше продолжать в таком духе Спасибо!
Re: теория ооп
Ну зоология, хе-хе. Помнится классификацию проходили классе в шестом. Так, что на статью это не тянет.
Re: теория ооп
Объектная зоология и ее свойства
Как по мне, в полне потянет на статью, а может и вовсе на докторскую
Знаете, как в биологии, есть царства животных, класс млекопитающих, а в нем куча всяких разных зверушек, от мышки до слона.
Животные, в классе млекопитающих, кормят детенышей молоком и у них горячая кровь.
Животные из класса "млекопитающих" обладают огромным множеством свойств: рост, вес, сила, цвет, ум.
Но отдельно взятый объект имеет разные значения свойств.
мышь: маленькая, легкая, серая, тупая.
слон: большой, тяжелый, серый, тупой.
лиса: небольшая, нетяжелая, рыжая, хитрая.
Все звери из класса млекопитающих умеют делать молоко. А вот качество и количество молока зависит уже от свойств. Мышка конечно умеет делать молоко, но корова делает его больше!
Если говорят что от козла можно получить молоко, то с других особей мужского пола этот номер не прокатит.
Возможность давать молоко, зависит от пола объекта.
Коровы умеют есть траву, а вот волки нет. Хотя человек жрет все подряд. Уменее, точнее возможность что-то делать заложена в объект изначально.
Долгий путь проходит детеныш от зародыша к взрослой особи. А в начале это чистый лист анкеты, в которой все ячейки пусты.
Как по мне, в полне потянет на статью, а может и вовсе на докторскую
Re: теория ооп
Это конечно же была шутка Но твои знания в зоологии ( ) впечатляют .
P.S.
Статья зачетная
P.S.
Статья зачетная
Re: теория ооп
Понятно что шутка. Но я думаю мой школьный учитель биологии тоже поржал бы. Ещё тот хохмач был.
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения