Новичок в Objective-C: кто-нибудь знает диаграммы, объясняющие класс, объекты и методы? - PullRequest
4 голосов
/ 25 июня 2009

Как вы уже догадались из вопроса - я в самом начале путешествия Obj-C.

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

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

Спасибо за чтение!

С уважением, Спенсер.

Ответы [ 5 ]

7 голосов
/ 25 июня 2009

Нет диаграмм, но я бы хотел прочитать этот урок до того, как начать: http://www.cocoadevcentral.com/d/learn_objectivec/

Простой английский, все основные понятия.

2 голосов
/ 25 июня 2009

Я пришел из довольно сильного фона C ++, но я точно помню, что когда я начинал, мне было трудно понять концепцию, пока я не нашел способ связать ее с физическими объектами.

Слово класс и объект, который вы можете использовать практически взаимозаменяемо.Думайте об объекте как о контейнере, как о ведре.Слово ведро будет вашим "классом".Это имя, которое вы даете типу вашего объекта.

У ведра есть определенная цель ... нести что-то.Это может быть вода ... или, возможно, песок.Так что, возможно, вы хотите заполнить ведро.Это было бы то, что вы делаете с ведром, так что в target-c это будет ваш метод.Вы можете написать что-то вроде:

- (void) fillWith:(elementType)something;

Так что в этом случае «что-то» может быть чем-то, что представляет и объект, которым вы хотите заполнить ваше ведро.

Ваш класс может выглядеть следующим образом:

typedef enum items {
   CRAYONS,
   MARKERS,
   SAND,
   WATER } elementType;


@class Bucket {
   elementType item;
}
- (void) fillWith:(elementType)something;

@end

Вот одна ссылка на некоторые образцы из объектива c.Также попробуйте центр разработки яблок.

2 голосов
/ 25 июня 2009

В некоторой степени диаграммы могут быть не очень полезны для ответа на ваши вопросы.

Это может помочь подумать о таких вещах:

«Класс» предоставляет прототип или определение для некоторой вещи. Например, «Человек» или «Автомобиль». Общим синонимом для «класса» является «тип».

«Объект» - это конкретный пример или экземпляр класса. Например, вы являетесь экземпляром «Person», а ваш автомобиль - экземпляром «Car».

«Метод» - это поведение, действие или свойство класса. Однако метод обычно имеет смысл только в контексте объекта. "Человек" -> "Ешь" не имеет смысла, но "ты" -> "Ешь" - это.

Это фундаментальные объектно-ориентированные концепции, которые не являются специфичными для Objective-C. Если вас интересует общий обзор, не зависящий от языка, я рекомендую " Object Thinking " Дэвида Веста Несмотря на то, что это из Microsoft Press, оно охватывает концепции, а не какой-либо конкретный язык.

2 голосов
/ 25 июня 2009

Классы такие же, как классы на любом языке. Это описания .

Объекты похожи на существительные. Это экземпляр класса. То есть, если у вас есть описание общей книги (класса) и вы создали тезаурус на основе этого описания, тезаурус был бы объектом.

Методы являются более или менее функциями. Если объекты являются существительными, то сообщения являются глаголами .

[ScienceBook getTableOfContents]; //this would like return a table of contents.

Здесь объекту ScienceBook отправляется сообщение getTableOfContents (метод). Итак, теперь научная книга теоретически найдет, отформатирует и вернет оглавление, которому когда-либо было отправлено сообщение.

0 голосов
/ 26 июня 2009

Если вам нужна информация об объектно-ориентированном программировании (то есть о значении классов, объектов, методов и т. Д.), То я бы посоветовал не использовать Objective-C. Objective-C на Mac в значительной степени опирается на структуру Cocoa. Платформа Cocoa обширна и выполняет много «волшебства», что усложнит понимание основ ООП.

Легче всего начать с языка, используемого для веб-разработки. С этими языками проще разобраться с болтами ООП.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...