我是黑马-----OCget、set点语法

先定义一个Student类:

 1 @interface Student : NSObject{
 2     int _age;
 3 }
 4 -(void)setAge:(int)newAge;
 5 -(int)age;
 6 @end
 7
 8 //实现
 9 @implementation Student
10 //set方法
11 -(void)setAge:(int)newAge{
12     _age = newAge;
13 }
14 -(int)age{
15     return _age;
16 }
17 @end
1 Student *stu = [[Student alloc] init];
2 //设置age的值
3 [stu setAge:10];
4 //取出age的值
5 int age = [stu age];
6 NSLog(@"age is %i", age);

点语法访问age属性:

 1 Person *p = [Person new];
 2 /*
 3 调用set方法
 4    [p setAge:20];
 5    [p setName:@"小明"];
 6 点语法:xcode的特性,xcode帮我们做代码替换
 7 对象.属性名
 8 注意,此时(p.age)并不是直接访问实例变量,
 9 而是xcode 看到点语法(p.age)后会代换成
10 p.age-------->[p setAge:20]
11 */
12 p.age = 20;
13 p.name = @"小明";

点方法可以设置变量属性也可以获取变量属性~

点语法注意:

  点语法的本质是方法的调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。

切记点语法的本质是转换成相应的set和get方法,如果没有set和get方法,则不能使用点语法。

@property关键字:

  可以免去我们手动写get、set方法。

使用:

1 //@property 类型名  方法名
2 @property  int age;
3 //相当于进行了age的set和get方法的声明

@property的使用

  1)使用格式:

    @property 数据类型名  方法名(去掉set)

  2)作用

    实现get和set方法的声明

 1 @property  int age;
 2 /*
 3 -(void)setAge:(int)age;
 4 -(int)age;
 5 */
 6 @property  NSString *name;
 7 /*
 8 -(void)setName:(NSString *)name;
 9 -(NSString *)name;
10 */

@synthesize作用:

  生成get和set方法的实现部分

1 @implementation Person
2 @synthesize age;
3 @synthesize name;
4
5 @end
1 //@synthesize 帮我们实现了 实例变量的get和set方法
2 @synthesize age;
3 /*
4 相当于:
5 -(void)setAge:(int)age{
6   self->age = age;
7 }
8 */

@property增强使用:

  在xcode4.4以后做的增强

  帮助我们生成get和set方法的声明

  帮助我们生成get和set方法的实现

 1 @interface Person : NSObject
 2 //@property 的增强
 3 //xcode4.4后  可以只使用@property 而不使用@synthesize
 4 //声明和实现了_age ,_name的get和set方法
 5 //操作的是带有下划线的实例变量
 6 //如果我们当前类,没有下划线的实例变量,则系统会帮我们生成。
 7 @property int age;
 8 @property NSString *name;
 9
10 -(void)test;
11 @end
时间: 2024-12-28 02:30:21

我是黑马-----OCget、set点语法的相关文章

黑马程序员——点语法、description、SEL、id使用

黑马程序员——点语法.description.SEL.id使用 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 点语法介绍与使用 **p.age;** 对象.属性名 注意:此时,(对象.属性名)并不是直接访问实例变量.而是看到点语法后,会帮我们自动替换成p.age=18-替换->  [p setAge:18]; ************************* int a=p.age;//调用get方法 注意:当看到p.age出现在等号右

我是黑马-----Swift基本语法

变量及常量: 如果要定义一个变量等于1,只需要写 var = 1,Swift会自动做出类型推断. 如果要定义一个常量PI等于3.14,只需要写let PI = 3.14,常量只能被赋值一次. 输出语句: 可以直接使用printf函数来输出一段任意类型的信息: prinft("Hello Swift"); 字符串连接: 如果两个变量都是字符串,可以直接用+号连接: var hello = "Hello" var word= "Word" var s

黑马程序员 01-点语法

———Java培训.Android培训.iOS培训..Net培训.期待与您交流! ——— 1.利用点语法替换set方法和get方法 1> 方法调用 Student *student1 = [Student new]; [stu setAge: 20];       //调用set方法 int age = [stu age];   //调用get方法 2> 点语法 stu.age = 20; int age = stu.age; 2.点语法的本质 1> 点语法的本质还是方法调用(调用set

黑马day09 mysql基本语法

一.sql语句 1.操作数据库 (1)创建数据库 CREATE  DATABASE  [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name  |   [DEFAULT] COLLATE collation_name ~创建一个名称为mydb1的数据库. create database

黑马程序员——Java语法基础

一.关键字 1.定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有的字母都为小写. 2.分类 (1)用于定义数据类型的关键字:byte.short.int.long.float.double.char.boolean.class.interface.void (2)用于定义数据类型值的关键字:true.false.null (3)用于定义流程控制的关键字:if.else.switch.case.default.for.while.do.continue.break.ret

我是黑马-----Foundation框架字符串

1)了解Foundation框架: Foundation框架它提供了字符串.集合.I/O等很多和其他语言一样的标准库一样的功能. Foundation本身就是一个巨大的库,这里无法罗列出Foundation提供的每个雷和方法. 2)Foundation框架使用字符串: NSString 的快捷语法: 1 NSString *someString = @"this is a string"; 本质上,编译器一旦遇到@并紧跟着包含在“”之中的字符串就会创建一个静态的包含所提供字符串的NSS

黑马day19 javaScript基本语法

1.javaScript介绍: 发展历史: *1995年网景公司推出了一款新的产品:LiveScript.这个网景公司很厉害的,微软还没推出浏览器的时候网景公司就推出了自己的浏览器.但是自己推出的LiveScript没有流行的发展. *网景公司看到Java很获,于是就联合SUN公司推出了一款产品:JavaScript...于是真的就火了起来. *微软看到JavaScript很火,自己心里很不情愿,于是自己推出了自己的Jscript..于是这世界就凌乱了.... *最后 联合SUN公司,微软公司和

黑马程序员---OC---点语法、属性作用域、@property与@synthesize、id、构造方法、分类

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------                                    点语法 点语法的本质是方法调用:调用对象成员变量的setter和getter 是编译器特性,编译器帮忙转的 p.age = 25;       // 等价于 [p setAge:25]; int a = p.age;     // 等价于 int a = [p age]; // 访问成员变量不能用点语法,而是 p->_a

我是黑马-----iosC语言高级第一部分

C语言的构造类型: 构造类型是由若干个成员组成的,每个成员都是一个基本数据类型. 构造数据类型可以嵌套,构造里面还有构造. 结构体可以作为函数的参数来传递,方便了书写. 定义结构体的方法:  1 Struts 结构名{ 2 成员列表 3 };  声明列子: 1 Struts student{ 2 int num; 3 char name; 4 char sex; 5 int score; 6 }; 定义:  1 Struts student stu:  结构数组,改数组每个元素都是一个相同类型的