黑马程序员——Objective-C语言知识整理——类成员变量的设置与获取

原创 2015年07月07日 12:34:44

------- android培训java培训IOS培训期待与您交流! ----------

1、传统的getter与setter方法

首先,在类的声明处定义成员变量,并声明各变量的set与get方法,最后在类的实现部分,实现各成员变量的set与get方法

2、点语法介绍

与传统的getter与setter方法不同,点语法的使用更为方便。但是使用点语法并不是直接访问实例变量的,而是由xcode工具自动替换为setter与getter方法的调用的。

点语法是xcode的特性,帮用户进行代码替换的。

3、点语法的使用

(1) 设置成员变量值

Person类含_age与_name两个成员变量。

设置成员变量的值使用:

Person *p = [Person new]; 

p._age = 18;

p._name = @"Danny";

等同于使用setter方法:

Person *p = [Person new];
[p setAge:18];

[p setName:@"Danny"];

(2) 获取成员变量值

Person类含_age与_name两个成员变量。

使用点语法获取成员变量的值:

int a = p.age;

NSString *s = p._name;

等同于使用getter方法:
int a = [p age];

NSString *s = [p name];

4、点语法使用注意

点语法使用本质是调用类的setter与getter对象方法,如果没有指定方法,不能使用点语法。

同时,注意setter与getter方法使用,防止self点语法死循环调用。

5、@property用法

编译器指令@property的使用。

使用格式:@property 类型名 方法名

相当于get与set方法的声明。

代码示例:

///////////////@property 使用

#pragma mark Person类
@interface Person:NSObject
{
	int _age;
	NString _name;
}

@property int age;
@property NSString name;

@end

6、@property使用注意

(1) 只能写在@interface与@end之间。

(2) 是用来自动生成get与set方法的。

(3) 告诉@property使用成员变量的类型

7、@synthesize使用

编译器指令@synthesize的使用。

与@property成对使用,完成类的set与get方法的声明与实现。

使用格式:@synthesize 变量名1,变量名2……(成员变量类型一致)。

相当于get与set方法的实现,并且创建实例的成员变量。

代码示例:

#pragma mark Person类的实现
@implementation Person

@synthesize age;
@synthesize name;
/* 等同于
- (void)setName:(NSString *) name{
  name = name;
}

<pre name="code" class="objc">- (void)setAge:(int) age{
  age = age;
}

- (NSString *)name{
  return name;
}

- (int)age{
return age;
}

*/

@end


8、@synthesize指定实例变量赋值

使用方法格式:@synthesize 方法名1=变量名1,方法名2=变量名2
#pragma mark Person类的实现
@implementation Person

@synthesize age=_age,name=_name;
<pre name="code" class="objc">/* 等同于
- (void)setName:(NSString *) name{
  _name = name;
}

<pre name="code" class="objc">- (void)setAge:(int) age{
  _age = age;
}

- (NSString *)name{
  return _name;
}

- (int)age{
return _age;
}

*/

@end

9、增强型的@property

增强型的@property将成员变量的get与set方法的声明与实现工作都完成了,而且默认的使用带下划线的成员变量,若不存在,则自动定义生成相关成员变量。

变量是私有的,不能被继承使用。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员——Objective-C语言知识整理——匿名类与self/super关键字

匿名类与self/super关键字的介绍与使用

黑马程序员——Objective-C语言知识整理——类方法与对象方法

类方法使用优点、对象与方法的关系、类方法与对象方法调用原则

黑马程序员——Objective-C语言知识整理——封装、继承与多态

面向对象的封装、继承与多态 NSString类简易介绍

黑马程序员Objective-C笔记:set方法,get方法,成员变量的命名

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员——7、OC语言(成员变量、构造方法)

一、成员变量

黑马程序员——OC语言------NSString、多文件开发、点语法、成员变量的作用域、@property和@synthesize

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSString的格式方法 int age = 22; NSString *str = [...

黑马程序员——【Java反射学习】方法的反射/成员变量的反射/构造函数的反射

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Class类的使用方法的反射成员变量的反射构造函数的反射Java类加载机制 1....

黑马程序员--Objective-C语言基础知识--面向对象

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 面向对象和面向过程思想objective-c语言是面向对象,c语言是面向过程的。面向对象和面向过程是两种不同解决...

黑马程序员--Objective-C语言基础知识--三大特性

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- 封装封装就是对类内部的东西进行保护,不被外界轻易访问甚至修改。封装的好处就是变量更加安全,隐藏内部实现细节开发更...

黑马程序员——Objective-C程序设计(第4版)学习笔记之13-基本的C语言特性——黑马 IOS 技术博客

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 这章,讲述了Objective-C相关联的C语言特性,大部分内容学过C语言的都...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)