pragma mark 實(shí)例變量修飾符
pragma mark 概念
pragma mark 代碼
#import <Foundation/Foundation.h>
#pragma mark 類(lèi)
#import "Person.h"
#import "Student.h"
#pragma mark main函數(shù)
int main(int argc, const char * argv[])
{
Person *p = [Person new];
// p->_age = 24;
// p->_height = 1.77; // Prtson does not have a memeber name2"lujhit";
// p->_name = @"lyh";
Student * s = [Student new];
NSLog(@"----");
return 0;
}
Person.h //人 類(lèi) (父類(lèi))
#import <Foundation/Foundation.h>
/*
實(shí)例變量修飾符
@public 就是實(shí)例變量的修飾符
#warning 修飾符
@public (公開(kāi)的) [可以在本類(lèi)、其他類(lèi)]
> 可以在其他類(lèi)中方法 被 public修飾的成員變量
> 也可以在本類(lèi)中方法 被 boublic 修飾的成員變量
> 可以子類(lèi) 在子類(lèi)中 訪問(wèn) 父類(lèi)中的 @public修飾的成員變量
@private (私有的) [不可以在其他類(lèi) 不可以在子類(lèi) 只能在本類(lèi)]
> 不可以在其他類(lèi)中訪問(wèn) 被 private修飾的成員變量
> 可以在本類(lèi)中 訪問(wèn)被 private修飾的成員變量
> 不可以 在子類(lèi)中 訪問(wèn)父類(lèi)中 被private修飾的成員變量
@protected (受保護(hù)的) [不可以在其他類(lèi) 可以在子類(lèi) 只能在本類(lèi)]
> 不可以 在其他類(lèi)中訪問(wèn) 被 protected 修飾的成員變量
> 可以 在本類(lèi)中訪問(wèn) 被protected修飾的成員變量
> 可以子類(lèi) 在子類(lèi)中 訪問(wèn) 父類(lèi)中的 @protected修飾的成員變量
注意: 默認(rèn)情況下 所有的實(shí)例變量都是protected
@package (包:可以在本類(lèi)瞳筏、其他類(lèi)) [相當(dāng)于 訪問(wèn)當(dāng)前的包]
> 介于 public 和 private之間的
如果是 其他包中訪問(wèn) 那么 就是private的
如果是 當(dāng)前代碼所在的包中 訪問(wèn)就是public的
// 實(shí)例變量修飾符作用域 : 從現(xiàn)在的位置開(kāi)始, 一直知道下一個(gè)修飾法的出現(xiàn)
// 如果沒(méi)有遇到下一個(gè)字節(jié)變量修飾符, 那么修飾后面所有的實(shí)例變長(zhǎng);
*/
person.m
#import "Person.h"
@implementation Person
- (void)eat
{
NSLog(@"%i",_age);
}
@end
Student.h //學(xué)生類(lèi) (人類(lèi)的子類(lèi))
#import <Foundation/Foundation.h>
#import "Person.h"
@interface Student : Person
- (void)test;
@end
Student.m //學(xué)生類(lèi) (人類(lèi)的子類(lèi))
在student里面查找
#import "Student.h"
@implementation Student
- (void)test
{
#warning public
NSLog(@"%i",_age); // 在子類(lèi)當(dāng)中 可以訪問(wèn) 父類(lèi)的 成員變量
// NSLog(@"%f",_height);
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者