2013-12-25 3 views
3

Я читал учебник о программировании с объективом C. Я получил общее представление о том, что такое инкапсулирование данных, но детали этого еще не ясны. Может ли кто-нибудь мне помочь? Я изучаю это самостоятельно, поэтому сталкиваюсь с небольшими проблемами в том, чтобы сделать мою концепцию понятной. Спасибо и извините заранее, если это глупый вопрос.Как я могу очистить концепцию инкапсулирования данных?

+0

Какие детали вы не можете понять? OO-программирование - большая тема. –

+0

Инкапсулирующие данные - основная тема, на которой я сосредоточен. в том, что getter и setter, разница между методом Dot и методом доступа. – Sami

ответ

3

Инкапсуляция просто означает, что доступ к внутреннему состоянию объекта разрешен только через определенный интерфейс. В случае Objective-C это включает методы и свойства. Вы можете прочитать свойство в одном из двух способов:

[foo prop] 
foo.prop 

Они в значительной степени то же самое, с формой является немного более удобным, особенно когда сцепление аксессоров (например, foo.bar.baz.prop против [[[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 
Смежные вопросы