#terminology
#терминология
Вопрос:
Я совсем новичок в программировании, и то, что меня преследует, — это не само кодирование (ну, по крайней мере, до настоящего момента!), А некоторые слова / понятия, которые действительно важно понять. Я сомневаюсь в слове «АБСТРАКЦИЯ». Я уже искал в словарях и видел несколько видеороликов, в которых люди дают очень четкие объяснения этого слова. Итак, я знаю, что абстракция — это когда вы принимаете во внимание только то, что важно, и опускаете все остальное (выражаясь очень простым и прямым языком), например, если вы собираетесь менять лампочку, вам не нужно знать производителя лампочки илирозетка. Вам также не нужно знать материалы, используемые для изготовления электрической лампочки. Однако проблема заключается в том, что когда вы читаете некоторые тексты или слушаете людей, использующих это слово, и оно, похоже, не соответствует смыслу, а затем вы начинаете задаваться вопросом, не злоупотребили ли они словом (что, я думаю, очень маловероятно), или это потому, что есть другое неясное значение, которое я еще не нашелили, может быть, это просто потому, что я слишком туп, чтобы понять это. Ниже я помещаю выдержки из статей, которые я читал, и выделил жирным шрифтом и прописными буквами ту часть, где появляется это слово, чтобы у вас, ребята, был контекст и вы понимали, в чем моя проблема. Спасибо.
«Парадигмальное программирование обеспечивает и определяет взгляд программиста на структурирование и выполнение программы. Например, в объектно-ориентированном программировании программисты МОГУТ АБСТРАГИРОВАТЬ ПРОГРАММУ КАК НАБОР ОБЪЕКТОВ, которые взаимодействуют друг с другом, в то время как в функциональном программировании программисты АБСТРАГИРУЮТ ПРОГРАММУ как последовательность функций, выполняемых в виде стека. »
«Пространство кортежей выполняет функцию создания АБСТРАКЦИИ ОБЩЕЙ ПАМЯТИ в распределенной системе, где каждый может читать и записывать в нее».
Комментарии:
1. Я не понимаю, как ваши примеры противоречат вашему описанию
Ответ №1:
Это легко понять, если заменить abstract / abstraction одним из его синонимов conceptualize / conceptualization . В ваших первых двух примерах «абстрагировать программу» означает «думать о программе как» … или «концептуализировать программу как»… Когда мы делаем абстракцию, мы забываем о некоторых деталях и думаем об этом в других терминах.
Дополнительный совет от коллеги-новичка: как человек, который начал самостоятельно изучать информатику менее года назад, я могу сказать вам прямо сейчас, что там будет много таких сложных терминов, как этот. Постарайтесь не слишком зацикливаться на них. Часто, если вы просто продолжаете учиться, вы на собственном опыте узнаете, что означают эти термины, даже не осознавая этого. Кусочки и фрагменты будут складываться. Вывод из этого: не позволяйте тому, чего вы не знаете, замедлять вас. Иногда это нормально — продолжать идти и просто не знать об этом какое-то время.
Ответ №2:
Похоже, они соответствуют определению, которое вы дали ранее. Для объектно-ориентированного программирования мышление состоит в том, чтобы рассматривать «объекты» как существенный (важный) аспект программы и абстрагироваться от всех других соображений. То же самое для функционального программирования, где «функции» являются определяющим аспектом, абстрагирующим другие соображения как второстепенные.
Пространство кортежей может быть немного сложнее, но если вы считаете, что вариации в моделях хранения памяти абстрагируются в пользу концепции более высокого уровня, ориентированной на набор значений, то вы видите, к чему относится абстракция.
Ответ №3:
Аннотация
прилагательное
- существующее в мысли или как идея, но не имеющее физического или конкретного существования.
- относящийся к или обозначающий искусство, которое не пытается представить внешнюю реальность, а скорее стремится достичь ее эффекта с помощью форм, цветов и текстур.
глагол
- рассмотрим что-то теоретически или отдельно от (чего-то другого).
- извлечь или удалить (что-то).
существительное
- краткое изложение содержания книги, статьи или выступления.
- абстрактное произведение искусства.
Там у вас есть свой ответ. Спросите 100 человек, что такое абстрактная картина, вы получите не менее 100 ответов. Почему программисты должны вести себя по-другому?
Давайте посмотрим, что Oracle может сказать об абстрактных классах:
Абстрактные классы похожи на интерфейсы. Вы не можете создать их экземпляр, и они могут содержать сочетание методов, объявленных с реализацией или без нее. Однако с помощью абстрактных классов вы можете объявлять поля, которые не являются статическими и конечными, и определять общедоступные, защищенные и частные конкретные методы.
Рассмотрите возможность использования абстрактных классов, если какое-либо из этих утверждений применимо к вашей ситуации:
- Вы хотите разделить код между несколькими тесно связанными классами.
- Вы ожидаете, что классы, расширяющие ваш абстрактный класс, имеют много общих методов или полей или требуют модификаторов доступа, отличных от общедоступных (например, защищенных и частных).
- Вы хотите объявить нестатические или не конечные поля. Это позволяет вам определять методы, которые могут получать доступ к объекту, которому они принадлежат, и изменять его состояние.
Сравните это с определением абстракции в предыдущем разделе. Я думаю, вы получили довольно хорошее представление об абстрактности в компьютерном программировании.