OC基础(四)setter和getter方法

setter和getter方法整体声明和实现虽然后面可以用@property代替,但是在后面的iOS开发中,setter方法或getter方法单独使用的频率比较高,应用比较广泛!

@Interface Person:NSObject

{

  NSString *_name;

  int _age;

  Sex _sex;      //此处枚举类型,属于基本数据类型,不用加“*”

  float _height;

}

@end

一、setter方法就是给属性赋值的方法

书写格式:

1、在类的声明中:- (void) +(set+属性去掉"_",首字母大写) : (数据类型/对象/类) + (属性去掉"_");

注意事项:

(1) setter方法一定是对象方法

(2) 一定没有返回值

(3) 一定以set开头, 并且set后面跟上需要设置的成员变量的名称去掉下划线, 并且首字母大写

(4) 一定有参数, 参数类型一定和需要设置的成员变量的类型一致, 并且参数名称就是成员变量的名称去掉下划线

举例:

- (void) setName: (NSString *)name;

- (void)setAge: (int)age;

- (void)setSex:(Sex)sex;

- (void)setHeight: (float)height;

2、在类的实现中:大括号内可以添加其它内容,但是必须实现 属性 =(去掉"_"的属性)

- (void) setName: (NSString *)name{

  _name = name;

}

- (void)setSex:(Sex)sex{

  _sex = sex;

}

二、getter方法就是获取成员变量值得方法

书写格式:

1、类的声明中 :- (数据类型/对象/类)+(属性去掉“_”)

注意事项:

(1) getter方法一定是对象方法

(2)一定有返回值, 而且返回值一定和获取的成员变量的类型一致

(3)方法名称就是获取的成员变量的名称去掉下划线

(4) 一定没有参数

举例:

- (NSString *)name;

- (int)age;

- (Sex)sex;

- (float)height;

2、类的实现中:在类的实现中可以添加其它内容,但是必须有 return + 属性

- (NSString *)name{

  return _name;

}

- (Sex)sex{

  return _sex;

}

其它应用:

1、一个属性可以只有getter方法, 没有setter方法, 这种属性我们称之为只读属性

2、一个属性也可以只有setter方法, 没有getter方法, 这种属性我们称之为只写属性

3、如果既有setter方法又有getter方法, 那么这种属性我们称之为可读可写的属性

4、一个属性也可以没有getter和setter, 这种属性我们称之为私有属性

5、setter方法和getter方法的声明和实现可以直接用下面代替(写在类的声明里面)

@property(nonatomic,assin)NSString * name;

@property(nonatomic,assin)Sex sex;

时间: 2024-10-13 00:34:27

OC基础(四)setter和getter方法的相关文章

【Java基础】setter与getter方法

1 //下面代码实现设置和获取学生姓名和成绩. 2 class lesson5homework 3 { 4 public static void main(String[] args) 5 { 6 TestCode TC=new TestCode(); 7 TC.StudentTest();//调用测试类 8 } 9 } 10 class Student 11 //设置,获取student值及分别表明name和score值是否正确的Boolean类型的rn和rs 12 { 13 private

OC中实例变量可见度、setter、getter方法和自定义初始化方法

在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特点如下: 具体的使用示例如下: 编程时默认的可见度是@protectde,为什么不使用@public呢? 因为OC是面向对象编程,使用@public关键字,暴漏了类内部的细节,从而不符合面向对象语言的三大特性之一——封装 实例变量经过@protectde修饰之后,我们就不能在该类和其子类外操作,例如

iOS开发核心语言Objective C —— 面向对象思维、setter和getter方法及点语法

本分享是面向有意向从事iOS开发的伙伴们.或者已经从事了iOS的开发人员.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础,建议您先翻阅我之前分享的iOS开发分分钟搞定C语言系列.然后在開始Objective C语言的学习,假设您遇到问题也能够与我探讨,另外将无偿分享自己整理的大概400G iOS学习视频及学习资料.都是干货哦.能够新浪微博私信?关注极客James.期待与您的共同学习和探讨.! 由于时间有限,每天在工作之余整理的学习分享.难免有不足之

关于setter 和 getter方法的一些总结(初级)

1.最基础的set 和 get 准备工作 Person.h @interface Person : NSObject { NSString *_hobby; // ObjC建议成员变量带"_" @protected // 受保护的 本类以及子类可以访问 NSString *_name; NSString *_gender; @private // 私有的 只有本类可以访问 NSInteger _age; NSInteger _weight; } #pragma mark --- 声明s

如果将synthesize省略,语义特性声明为assign retain copy时,自己实现setter和getter方法

如果将synthesize省略,并且我们自己实现setter和getter方法时,系统就不会生成对应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和getter时方法内部实现 - (void)setName:(NSString *)name{ _name = name; } - (NSString *)name{ return _name; } 2,当把语义特性声明为retain时,setter和getter方法内部实现 - (void)set

OC基础4:类和方法

1.类的声明(@interface)要放在以它自己名字命名的class.h文件中,而类的定义(@implementation)要放在相同名字的class.m文件中: 2.import本地文件和import系统文件的格式是不同的:导入本地文件要用双引号,导入系统文件要用< 和> :如下: #import <Foundation/Foundation.h> #import “calss.h” 3.程序主要分三个部分:class.h.class.m和main.m,其中:导入系统文件在cl

java中封装类Feild和使用setter和getter方法访问封装的类Feild

class Person { private String name; private int age; public void setName(String name) //定义访问name的方法 { if (name.length() > 6 || name.length() < 2) { System.out.println("您设置的人名长度不合要求!"); } else { this.name = name; } } public String getName()

OC基础-变量可见对与方法

实例变量的可见度: public(公有的)       实例变量可以在类的外部和内部操作      访问方式:对象名->属性名. protected(受保护的,默认的)    实例变量只能在该类和其子类中操作    访问方式:除类本身和其之类外,其他的不可以直接访问 private(私有的)     实例对象只能在该类访问       访问方式:除本类外不可以直接访问 方法: 类型:类方法,实例方法. 类方法:只能能使用,例如:+(id)alloc ,注意:类方法中不可以使用实例变量. 实例方法

假设synthesize省略,语义属性声明assign retain copy时间,为了实现自己的setter和getter方法

假设synthesize省略,而且我们自己实现setter和getter方法时,系统就不会生成相应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和getter时方法内部实现 - (void)setName:(NSString *)name{ _name = name; } - (NSString *)name{ return _name; } 2,当把语义特性声明为retain时,setter和getter方法内部实现 - (void)setN