Objective-C新手:有人知道解释类、对象和方法的图表吗?

Objective-C新手:有人知道解释类、对象和方法的图表吗?,objective-c,Objective C,正如您可能已经从问题中猜到的,我正处于Obj-C旅程的开始 我希望有人知道一些描述类、对象和方法之间关系的图表,并且愿意与大家分享 我遇到的问题是,仅仅看教科书中的代码并不能完全解释它——至少对我来说是这样 谢谢你的阅读 问候,, 斯宾塞。类就像任何语言中的类一样。它们是描述 [ScienceBook getTableOfContents]; //this would like return a table of contents. 物体就像名词。它们是类的一个实例。也就是说,如果你对一本普通

正如您可能已经从问题中猜到的,我正处于Obj-C旅程的开始

我希望有人知道一些描述类、对象和方法之间关系的图表,并且愿意与大家分享

我遇到的问题是,仅仅看教科书中的代码并不能完全解释它——至少对我来说是这样

谢谢你的阅读

问候,,
斯宾塞。

类就像任何语言中的类一样。它们是描述

[ScienceBook getTableOfContents]; //this would like return a table of contents.
物体就像名词。它们是类的一个实例。也就是说,如果你对一本普通书(类)有一个描述,并且你根据这个描述制作了一个同义词表,那么这个同义词表就是这个对象

方法或多或少都是函数。如果对象是名词,则消息是动词

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

在这里,对象
ScienceBook
被发送一条
getTableOfContents
消息(方法)。因此,从理论上讲,这本科学书将查找、格式化并返回曾向其发送信息的目录。

在某种程度上,图表可能对回答您提出的问题没有多大帮助

这样想可能会有所帮助:

“类”为某些事物提供了原型或定义。例如,“人”或“车”。“类”的一个常见同义词是“类型”

“对象”是类的具体示例或实例。例如,您是“Person”的一个实例,而您的汽车是“car”的一个实例

“方法”是类的行为、动作或属性。但是,方法通常仅在对象的上下文中才有意义。“人”->“吃”没有意义,“你”->“吃”有意义


这些都是面向对象的基本概念,并不特定于Objective-C。如果您对语言不可知的概述感兴趣,我推荐David West的“”。尽管它来自Microsoft Press,但它涵盖了概念而非任何特定语言。

没有图表,但这是我希望在开始之前阅读的教程:


<>简单的英语,所有的基本概念。

< P>我来自一个相当强大的C++背景,但我可以肯定地记得,当我开始的时候,我很难掌握这个概念,直到我找到了一种方法把它与物理对象联系起来。p> 类和对象这个词几乎可以互换使用。把一个物体想象成一个容器,比如一个桶。bucket这个词就是你的“类”。它是您为所拥有的对象类型指定的名称

水桶有一个特定的用途…用来装东西。可能是水,也可能是沙子。所以也许你想把桶装满。这将是你对桶所做的事情,所以在objective-c中,这将是你的方法。你可以写一些类似的东西:

- (void) fillWith:(elementType)something;
所以,在本例中,“某物”可能是表示您希望用其装满您的桶的对象的某物

您的类可能如下所示:

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


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

@end

以下是一些objective-c样本。也可以试试苹果开发中心。

如果你想了解面向对象编程的信息(即类、对象、方法等的含义),那么我建议不要使用Objective-C。Mac上的Objective-C严重依赖Cocoa框架。Cocoa框架非常庞大,执行了大量的“魔术”,这使得理解OOP的基本原理变得更加困难


一个更容易开始的地方是用于web开发的语言。使用这些语言可以更容易地了解OOP的细节。

只是好奇,但让我们知道您当前的经验将更容易为您确定答案。对不起!我没看到你发表评论!我在高中时做过基础课程,对C++有很短的“曝光”,还有一些其他的小块。事实上,我对我所问的概念非常满意——在ObjC中,似乎您需要以一种相当违反直觉的方式声明事物。我本以为一旦声明了方法和变量,就应该是它了——所以我在实现部分弄糊涂了,试图弄清楚我应该做什么。我不得不说,我被你和这个网站上其他人的慷慨所震惊。谢谢银河牛仔!我真的很感激你的建议。干杯,斯宾塞。非常感谢Justicle的帮助!你好,本尼迪克特-谢谢。我正在学习Objective-C作为一种独立语言,稍后将学习Cocoa。干杯,斯宾塞。把框架元素从它们的底层语言中分离出来越来越困难了(几乎是必然的)。例如,Visual Basic和C#几乎与.Net密不可分。你很少会说Ruby没有“on-Rails”。Python和PHP或多或少是独立存在的,尽管它们可以使用高质量的框架,这使它们成为新开发人员很好的潜在语言。在这两种方法中,我建议使用Python,因为它会减少坏习惯,并且在不久的将来很可能(希望)取代PHP。