《 Глава Первая Java 》 Это первая книга, которую я прочитал с тех пор c e Я изучал компьютер. Это также самый интересный курс языка программирования, который я когда-либо видел. Отличается от других книг, этой книги или всего 《 Головой Вперед》
Эта статья является объектно-ориентированной в глазах Сяобая.
Как студенты-старшекурсники неизвестного университета, они прекрасно осведомлены о компьютерном обучении в университете, Для студентов, не изучающих компьютерные дисциплины, наш единственный компьютерный курс-это программирование VC, которое в настоящее время + + на поверхности, но на самом деле C Потому что это не включает в себя никаких Классов и объектов Вот и все Ориентирован на процесс 。 Содержание обучения-это просто ввод и вывод, тип данных, простой цикл и суждение… Самое глубокое, что большинство студентов помнят об эффекте обучения, – это:
#includeusing namespace std; int main(){ return 0; }
А потом напиши что-нибудь… Я не знаю, что это за уровень!
Таким образом, как и многие студенты колледжа, они не знают, что такое объектно-ориентированное до изучения Java, и их мышление также ориентировано на процесс.
Во-первых, на что ориентирован процесс? ” процесс ” При мысли об этих двух словах первая реакция в моем мозгу-это перерабатывающий завод и производственная линия, которые также могут быть поняты как функция в математике.
“Что нужно, чтобы приготовить чашку кофе? “Ему нужна вода и кофейный порошок в качестве сырья. Сначала нагрейте воду, а затем всыпьте ее в кофейный порошок. Тогда мы сможем нарисовать такую картину.
“Процесс” – это конвейер. При разработке программы, ориентированной на процесс, нам нужно только учитывать, От ввода к выводу, как это реализовать и через какие этапы оно прошло. Затем режим реализации разделяется на конкретные шаги, которые выполняются последовательно, когда программа запущена Просто отлично. Таким образом, процессно-ориентированный можно абстрагировать на следующем рисунке:
В процессно-ориентированном режиме используются все данные переменная Для хранения все шаги выполняются через функцию Достигать. Когда мы сталкиваемся с процессом, все, о чем мы думаем, – это процесс, то есть каждый процесс на заводе.
Так в чем же разница между ориентацией объекта?
Объектно-ориентированное мышление может быть ближе к реальной жизни. Когда я пытаюсь понять объект самостоятельно, мой мозг показывает не фабрику по переработке, а оживленный парк. В парке много людей и всевозможных мелких животных. Дети играют, пчелы собирают мед в цветах, а на каменной скамейке сидит писатель, который собирается включить компьютер, чтобы написать рукопись
На этой картинке ребенок, пчела, цветок, писатель и компьютер в его руке-все это объект 。 И между этими объектами, в некотором роде, существует взаимодействие. Итак, самая большая разница между объектно-ориентированным и процессно-ориентированным заключается в том, что объектно-ориентированное больше не имеет значения Какие шаги необходимы для завершения чего-либо , но уделяйте больше внимания Как вещи соотносятся друг с другом 。
Объект содержит два важных содержимого: одно – Свойства объекта , другое – Метод объекта 。 Возьмите ноутбук в руки только что упомянутого автора в качестве примера: ноутбук должен иметь состояние включения или выключения питания, поэтому его состояние является атрибутом; ноутбук также имеет объем памяти, емкость жесткого диска, модель процессора и т. Д., Которые являются атрибутами этого ноутбука.
Короче говоря: “Свойство” объекта-это “переменная”, упомянутая в process oriented 。
и “Метод” Что это? В реальной жизни один из способов-реализовать функцию. Например, метод “включение питания” ноутбука заключается в том, чтобы изменить состояние ноутбука с выключенного на включенное. Тогда “включение питания” – это один из способов работы ноутбука. Записная книжка также может открывать документ и отображать его содержимое. Тогда “печать информации о документе” – это еще один способ метода записной книжки, и этот метод имеет выходное значение, представляющее собой строку информации о документе. Итак, как объяснить “метод” объекта? ——Это можно понимать как процесс, ориентированный на” функцию “.
Но это не является строгим или полностью правильным, потому что переменные используются только для объективного хранения данных, в то время как атрибуты также могут хранить данные, но они Характеристика объекта 。 Переменные могут существовать без объектов, но свойства не могут Если объекта нет, свойство потеряет свое значение (если нет компьютера, можете ли вы представить, что это за состояние “включено”?). Аналогично, функция представляет процесс обработки данных, в то время как метод представляет способ, которым этот объект контактирует с другими объектами, Методы не могут существовать без объектов Тому, кто никогда не видел компьютер, трудно выключить его.
Мы продолжаем брать в качестве примера ноутбуки. Сяоцян, Сяо да и Сяосюань имеют свои собственные ноутбуки, и эти компьютеры имеют общие характеристики, поэтому мы можем сказать, что они принадлежат к одной и той же “категории”.
Что такое “класс”? Каковы занятия в жизни? На популярном языке это группа вещей с общими характеристиками. Таким образом, классы-это шаблоны и схемы группы объектов с общими свойствами и методами. Если несколько объектов принадлежат к одному классу, этот класс содержит свойства и методы, общие для этих объектов. Кроме того, вы можете создавать новые объекты из этого класса. Вновь созданные объекты также обладают характеристиками этого класса.
Возможно, когда мы впервые прикасаемся к классам и объектам, мы не чувствуем в этом пользы. Мы продолжаем говорить, что если нам нужно использовать переменные для представления информации о компьютерах Xiaoqiang, Xiao da и Xiaoxuan, что нам следует делать?
Предположим, что каждый ноутбук содержит три информации: емкость диска, объем памяти и состояние включения-выключения.
Если в процессе ориентироваться на мышление, то оно выглядит так:
//Xiaoqiang's notebook int XiaoQiang_Disk; int XiaoQiang_Memory; bool XiaoQiang_Status; //Xiaoda's notebook int XiaoDa_Disk; int XiaoDa_Memory; bool XiaoDa_Status; //Xiaoxuan's notebook int XiaoXuan_Disk; int XiaoXuan_Memory; bool XiaoXurn_Status;
3 * необходимо определить переменные.
Что, если он объектно-ориентирован?
//Define a notebook class
class laptop{
int disk;
int memory;
bool status;
}
//Create three objects based on this class
laptop XiaoQiang = new laptop();
laptop XiaoDa = new laptop();
laptop XiaoXuan = new laptop();Необходимо определить 3 + переменные.
Может быть, это и не имеет значения. Просто напишите несколько переменных меньше? Но представьте себе, что количество представляемых блокнотов увеличится до 10000? В мире, ориентированном на процесс, необходимо определить 10000 * переменных, в то время как при использовании объектно-ориентированного мышления необходимо определить только 10000 + переменных.
Если быть точным, если объект создается с помощью класса, объект скопирует все нестатические свойства и нестатические методы класса. Пока объект создан, это эквивалентно созданию всех свойств класса один раз. Итак, одним из простейших преимуществ OO является то, что Измените информацию, которая может быть выражена только путем создания новых экспоненциальных переменных, на информацию, которая может быть выражена только путем создания новых переменных линейного уровня Сейчас.
Еще одним преимуществом объектной ориентации является наследование. “Наследство” – очень яркое слово, которое заставляет людей мгновенно задуматься о том, что в жизни родители отдают свою собственность своим детям. Действие детей, принимающих собственность, – это наследовать Наследование, также можно сказать, что “следующее поколение” приобрело что-то от “предыдущего поколения”. Что такое “приобретение”? – Свойства и методы 。
Унаследованный класс называется Родительским классом Класс, выполняющий наследование, называется Подкласс (класс, который что-то запрашивает). Наследование этого действия можно понимать как “использование класса в качестве шаблона и создание нового класса”.
Другими словами, компьютеры можно разделить на множество видов: ПК, ноутбук, сервер… Все они являются компьютерами, со многими общими функциями, все они имеют диски, память, процессор… Таким образом, мы можем создать класс “компьютер”, который представляет шаблоны всех компьютеров. Однако у них есть свои особенности. Все ноутбуки оснащены батареями, все серверы имеют память для проверки ECC, а все ПК оснащены мониторами… Таким образом, эти три класса могут быть созданы соответственно на основе характеристик трех классов, унаследованных от класса “компьютер”, так что они оба сохраняют общедоступные свойства и имеют свои собственные характеристики.
Это еще не все – полиморфизм и интерфейсы… Из-за ограниченных возможностей в данный момент я сохраню его для следующего раза.
На мой взгляд, объектно-ориентированный подход ближе к реальной жизни, чем процессно-ориентированный. Поскольку объект может быть реальным объектом в жизни, необходимо только абстрагировать общие атрибуты этих объектов, то есть класс. Объектно-ориентированное мышление легче понять и имеет множество преимуществ (наследование, интерфейс, полиморфизм…).
В прошлом году, когда я впервые изучил компьютер, я был” Ориентирован на процесс “И” Ориентирован на объект “Эти два слова сбивают с толку. Объяснения учителя неоднозначны, что заставляет меня вообще не понимать, о чем говорит учитель. Позже я проверил некоторые сообщения и обнаружил, что то, что они сказали, не очень понятно… До сих пор я изучал PHP и Java и действительно занимался проектом, у меня есть более глубокое понимание этих двух слов. Если есть какое-либо неправильное выражение или недоступность вышеуказанных понятий, пожалуйста, укажите на это.