我正在阅读有关使用目标C进行编程的教程。 我对封装数据的内容有了一般的了解,但其细节尚不清楚。 谁能帮我??我正在自己学习它,因此在使我的概念清晰时面临一些问题。 如果这是一个愚蠢的问题,请提前致谢和抱歉。
答案 0 :(得分:3)
封装只是意味着只允许通过定义的接口访问对象的内部状态。在Objective-C的情况下,这包括方法和属性。您可以通过以下两种方式之一阅读房产:
[foo prop]
foo.prop
它们几乎是一样的,表单稍微方便一些,特别是在链接访问器时(例如foo.bar.baz.prop
vs [[[foo bar] baz] prop]
)。设置属性时还有两个选项:
foo.prop = 1;
[foo setProp:1];
我所知道的唯一真正的区别是虚线形式(在两种情况下)都需要知道类型,而方法形式则不需要,例如:
Foo * foo = …;
[foo setProp:1]; // OK
foo.prop = 1; // OK
id bar = foo;
[bar setProp:1]; // OK
bar.prop = 1; // Barf