正如你可能已经从这个问题中猜到的那样 - 我在Obj-C之旅的开头正确。
我希望那里的某些人知道一些描述类,对象和方法之间关系的图表 - 并且他们愿意分享。
我遇到的问题是,仅仅查看教科书中的代码并不能完全解释它 - 至少对我来说。
感谢阅读!
此致 斯潘塞。
答案 0 :(得分:7)
没有图表,但这是我希望在开始之前阅读的教程: http://www.cocoadevcentral.com/d/learn_objectivec/
简单英语,所有基本概念。
答案 1 :(得分:2)
类就像任何语言的类一样。它们是 说明 。
对象就像名词一样。它们是类的 实例 。也就是说,如果您有一本通用书籍(该类)的描述,并且您根据该描述创建了一个词库,则同义词库将成为该对象。
方法或多或少的功能。如果对象是名词,则消息为 动词 。
[ScienceBook getTableOfContents]; //this would like return a table of contents.
此处,对象ScienceBook
正在发送getTableOfContents
消息(方法)。所以现在,科学书籍理论上会找到,格式化并返回发送信息的目录。
答案 2 :(得分:2)
在某种程度上,图表可能对回答您提出的问题没有帮助。
考虑这样的事情可能会有所帮助:
“类”提供某些东西的原型或定义。例如,“人”或“汽车”。 “class”的常见同义词是“type”。
“对象”是类的具体示例或实例。例如,您是“人物”的实例,而您的汽车是“汽车”的实例。
“方法”是类的行为,动作或属性。但是,方法通常仅在对象的上下文中有意义。 “人” - > “吃”没有意义,但“你” - > “吃”是。
这些是面向对象的基本概念,不是Objective-C特有的。如果您对与语言无关的概述感兴趣,我推荐David West的“Object Thinking”。即使它来自Microsoft Press,它也涵盖了概念而不是任何特定语言。
答案 3 :(得分:2)
我来自一个相当强大的C ++背景,但我绝对记得当我开始时,我很难理解这个概念,直到找到一种方法将它与物理对象联系起来。
您可以使用几乎可互换的单词类和对象。将对象视为容器,如桶。桶这个词就是你的“班级”。它是您给对象类型的名称。
水桶有一定的目的......携带东西。它可能是水......或者也许是沙子。所以也许你想填补空缺。这是你对桶做的事情,所以在objective-c中,这将是你的方法。你可以写一些类似的东西:
- (void) fillWith:(elementType)something;
所以在这种情况下,“某些东西”可能代表你希望填充你的桶的东西。
您的课程可能如下所示:
typedef enum items {
CRAYONS,
MARKERS,
SAND,
WATER } elementType;
@class Bucket {
elementType item;
}
- (void) fillWith:(elementType)something;
@end
这是one link一些Objective-c样本。还可以尝试苹果开发中心。
答案 4 :(得分:0)
如果您正在了解面向对象编程的信息(即类,对象,方法等的含义),那么我建议不要使用Objective-C。 Mac上的Objective-C在很大程度上依赖于Cocoa框架。 Cocoa框架庞大并且执行了许多“魔术”,这将使得更难理解OOP的基础知识。
更容易开始的地方是用于Web开发的语言。用这些语言更容易找到OOP的细节。