黑马程序员——Objective-C——点语法、变量的作用域
2014-12-07 15:04
393 查看
———Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
———
一、点语法
1>点语法的本质
点语法的本质是set和get方法的方法调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,如果没有set和get方法,则不能使用点语法。
2>使用注意:
a. set方法中:self.name = name;这种写法会形成死循环,因为self.name就是在调用name的set方法。
b. get方法中:return self.name;这样也会形成死循环,因为self.name是在调用name的get方法。
3>实例
二、变量的作用域
1>变量的作用域有四种:public、protected、private、package
@public (公共的)在有对象的前提下,任何地方都可以直接访问
@protected(受保护的)只能在当前类和子类的对象方法中访问 (默认就是protect)
@private (私有的)只能在当前类的对象方法中才能直接访问
@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中就可以直接通过变量名访问
2>实用注意:
a. 在类的实现即.m文件中也可以声明成员变量,但是因为在其他文件中通常都只是包含头文件而不会包含实现文件,所以在这里声明的成员变量是@private的。
b. 在@interface @end之间声明的成员变量如果不做特别的说明,那么其默认是protected的。
c. 一个类继承了另一个类,那么就拥有了父类的所有成员变量和方法,注意所有的成员变量它都拥有,只是有的它不能直接访问(private)。
3>写法:
@interface Person : NSObject
{
@public
int age;
@protected // 可以省略
double weight;
@private
NSString *name;
NSString *telephoneNumber;
@package
NSString *pk;
}
@end
———
一、点语法
1>点语法的本质
点语法的本质是set和get方法的方法调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,如果没有set和get方法,则不能使用点语法。
2>使用注意:
a. set方法中:self.name = name;这种写法会形成死循环,因为self.name就是在调用name的set方法。
b. get方法中:return self.name;这样也会形成死循环,因为self.name是在调用name的get方法。
3>实例
// 创建一个Person对象 Person *person = [Person new]; // 使用点语法对person对象的name属性进行赋值 person.name = @”gouDan”; // 和[person setName:@”gouDan”];的效果一样 // 使用点语法获取person对象的name属性值 NSString *s = person.name; // 这里是get方法,相当于[person name];
二、变量的作用域
1>变量的作用域有四种:public、protected、private、package
@public (公共的)在有对象的前提下,任何地方都可以直接访问
@protected(受保护的)只能在当前类和子类的对象方法中访问 (默认就是protect)
@private (私有的)只能在当前类的对象方法中才能直接访问
@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中就可以直接通过变量名访问
2>实用注意:
a. 在类的实现即.m文件中也可以声明成员变量,但是因为在其他文件中通常都只是包含头文件而不会包含实现文件,所以在这里声明的成员变量是@private的。
b. 在@interface @end之间声明的成员变量如果不做特别的说明,那么其默认是protected的。
c. 一个类继承了另一个类,那么就拥有了父类的所有成员变量和方法,注意所有的成员变量它都拥有,只是有的它不能直接访问(private)。
3>写法:
@interface Person : NSObject
{
@public
int age;
@protected // 可以省略
double weight;
@private
NSString *name;
NSString *telephoneNumber;
@package
NSString *pk;
}
@end
相关文章推荐
- objective-c中点语法和成员变量作用域
- 【Objective-C学习笔记】核心语法——实例变量作用域、关键字@property和@synthesize
- 黑马程序员——【OC】点语法以及成员变量的作用域
- 黑马程序员——Objective-C基础——核心语法-点语法法和成员变量的作用域
- 9、黑马程序员-OC点语法和变量的作用域
- 黑马程序员------OC基础-----点语法、id、构造方法、Category、成员变量作用域
- 黑马程序员---点语法和成员变量的作用域
- [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
- 黑马程序员—OC点语法和成员变量作用域
- 黑马程序员——OC语言------NSString、多文件开发、点语法、成员变量的作用域、@property和@synthesize
- 黑马程序员——OC基础语法—点语法和成员变量作用域
- [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
- 【Objective-C】09-OC中的点语法和成员变量的作用域
- Objective-C语言-点语法和变量作用域-@property @synthesize和id
- Objective-C—self 、super、点语法、成员变量的作用域、@property和@synthesize、id
- 黑马程序员——OC基础---核心语法(点语法,成员变量的作用域,@property和@synthesize)
- 黑马程序员——OC语言学习——Xcode开发初始化、点语法、成员变量作用域、关键字@property和@synthesize
- 黑马程序员---Objective-C 成员变量的作用域
- 黑马程序员--C#语法基础,命名规范,变量作用域等
- 黑马程序员_object c学习日记①_类的声明定义、点语法及成员变量作用域