三种可见度
1.@public
被public 修饰的变量可以在外部(再声明一个新的类,也能访问) 和 该类的内部(在该类的.m文件内部)被访问,这样就可以在 main 函数中访问
@public 一般是不安全的 凡是被@public 修饰的在外部都会被访问 暴露内部写的细节(内部代码的实现)有违背面向对象封装的思想(外部可访问、可修改),所以一般不用这种
2.@ protected
受保护的,只能在该类 和他的子类中可以访问(如在人类的下面的学生类)是实例变量默认的可见度
3.@private
私有的可见度 只能在该类的内部访问(子类也使用不了) 违背了继承的思想
NSObject 类是根类 是基类
总结: 三种可见度(及其区分),为了保护实例对象的封装性,我们有了setter getter 设置器,区分 self 究竟在不同的场景中代表什么?
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); //今天的学习内容是:方法 与 可见度 //三大特性:封装 继承 多态 Person *per = [[Person alloc]init]; // per ->_name = @"张俊伟";//前面可见度改为默认的了 // per ->_age = 45; // per ->_gender = @"男"; // per ->_heigth = 1.75; // per ->_weight = 125; [per setName:@"ann"]; NSString * name = [per getName]; NSLog(@"name is %@",name); [per setAge:45];//赋值 [per age];//取值 NSLog(@"%ld",[per age]); [Person methoodForTest]; [per objectMethood]; [per class];//这里返回的就是 per 指向的类 } return 0; }