pragma mark 实例变量修饰符
pragma mark 概念
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#import "Student.h"
#pragma mark main函数
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 //人 类 (父类)
#import <Foundation/Foundation.h>
/*
实例变量修饰符
@public 就是实例变量的修饰符
#warning 修饰符
@public (公开的) [可以在本类、其他类]
> 可以在其他类中方法 被 public修饰的成员变量
> 也可以在本类中方法 被 boublic 修饰的成员变量
> 可以子类 在子类中 访问 父类中的 @public修饰的成员变量
@private (私有的) [不可以在其他类 不可以在子类 只能在本类]
> 不可以在其他类中访问 被 private修饰的成员变量
> 可以在本类中 访问被 private修饰的成员变量
> 不可以 在子类中 访问父类中 被private修饰的成员变量
@protected (受保护的) [不可以在其他类 可以在子类 只能在本类]
> 不可以 在其他类中访问 被 protected 修饰的成员变量
> 可以 在本类中访问 被protected修饰的成员变量
> 可以子类 在子类中 访问 父类中的 @protected修饰的成员变量
注意: 默认情况下 所有的实例变量都是protected
@package (包:可以在本类、其他类) [相当于 访问当前的包]
> 介于 public 和 private之间的
如果是 其他包中访问 那么 就是private的
如果是 当前代码所在的包中 访问就是public的
// 实例变量修饰符作用域 : 从现在的位置开始, 一直知道下一个修饰法的出现
// 如果没有遇到下一个字节变量修饰符, 那么修饰后面所有的实例变长;
*/
person.m
#import "Person.h"
@implementation Person
- (void)eat
{
NSLog(@"%i",_age);
}
@end
Student.h //学生类 (人类的子类)
#import <Foundation/Foundation.h>
#import "Person.h"
@interface Student : Person
- (void)test;
@end
Student.m //学生类 (人类的子类)
在student里面查找
#import "Student.h"
@implementation Student
- (void)test
{
#warning public
NSLog(@"%i",_age); // 在子类当中 可以访问 父类的 成员变量
// NSLog(@"%f",_height);
}
@end