实例和初始化之间的区别

时间:2015-07-17 05:38:49

标签: ios swift cocoa-touch

我希望我的fisrt帖子不会出现故障 我是一个想要正确理解基本概念的三重诺言者

我得到了所有类的内容,但不清楚实例和内容之间的区别(初始化)

我能这样想吗?:

小型建筑开发场地的设计获得批准。 (蓝图)那就是班级,当然

'实例'将是一辆从卡车上工厂买来的单位

但是,如果测量员来了,并且将其空间分配出去,那么初始化就是这样的。在网站上 ? (我在Swift之前开始使用Objective-C,并且只是看了一下swift,你可以告诉)还是别的什么?

因为Swift文档告诉我一个' var'或者“让我们”#39;对象需要赋值,它不能为零。 当我看到很多像

这样的材料时,这很奇怪
var X : Int
let str : String

我认为没有值,他们说他们明确希望看到X = 5或str ="棉花"

所以tat为init()留下了两个可能的类比:

var X : Int // like the building has the bounds set out, it's just not filling the space?
Var X = 5  // like the building is in place, but still empty and not in habitation

没有要求进行任何重要的讨论,这是更多的权利'?如果有的话

2 个答案:

答案 0 :(得分:1)

相当简单,&#34;实例化&#34;或&#34;初始化&#34; (同样的事情)就是当你创建一个类的实例时。因此,使用类似的比喻,@Entity public class Entity { @Id private Long id; @Lob() private Blob blob; } public interface Repository extends CrudRepository<Entity, Long> { } 是房子的蓝图,Class是施工人员建造房屋时,Initialization (init)是您居住的房屋。

在上面的示例中,这将是Instance。施工人员刚刚建造var x = 5并将其设置为x。现在,您可以使用5的实例执行任何操作,例如将其更改为x。第一个告诉每个人6将成为x的示例是Int的用途。

答案 1 :(得分:1)

该类是您对象的蓝图。例如。 MyObject包含这些变量x,y和z,并且具有这些方法foo1,foo2,foo3。类的实例是包含x,y和z值的单个对象的实例化(创建),并且可以使用这些方法foo1,foo2,foo3。

类的init执行类所需的任何初始化,通常为构造的对象变量赋值,x = 3,y = 4和z = 5.在构造对象时你想要完成的任何事情都应该完成在init中。

在swift中,如果你创建了一个变量但是没有用一个值初始化它,例如var x:int,并尝试使用该变量,您将收到编译器错误。该对象已实例化但未初始化。如果需要变量包含nil,则必须使用可选标记(?),var x:int? =没有。变量x现在是可选的类型。