1.最基础的set 和 get

准备工作

Person.h

@interface Person : NSObject

{

NSString *_hobby; // ObjC建议成员变量带"_"

@protected // 受保护的 本类以及子类可以访问

NSString *_name;

NSString *_gender;

@private // 私有的 只有本类可以访问

NSInteger _age;

NSInteger _weight;

}

#pragma mark --- 声明setter getter方法 ---

// setter

- (void)setName:(NSString *)name;// name将形参传给成员变量

// getter

- (NSString *)name; //也可以写成 - (NSString *)getName;

// 对于实例变量,只有写了setter和getter方法,才能对它赋值,取值(KVC,runtime 除外) ,

person.m

@implementation Person

// setter (设置器) 赋值

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

_name = name;

}

参数:(NSString *)name,是传过来的一个参数,可以是per.name = @"nihao";中的@"nihao",也可以是[per setName:@"nihao"];(消息发送机制)中的@"nihao"

_name = name; setter方法的本质就是将传过来的值赋给实例变量,只是赋值

// getter (访问器) 取值

- (NSString *)name{

return _name;

}

return _name; getter方法的本质就是取值(访问实例变量)的时候,我们的per.name 就是 _name;就是上面setter传过来的值,可以取值了.

总结:在一般的setter,getter方法中,setter是赋值操作,只有写了setter方法,才能写出赋值,per.name = @"**";

      getter是取值方法,我们想知道per.name是什么,就要写getter方法.

      如果值写了setter未写getter,就会只能赋值,不能取值.即无法打印per.name的值

       如果值写了getter未写setter,就会只能取值,不能赋值.此时如果不用其他方法赋值,那么per.name = nil; 

关于setter 和 getter方法的一些总结(初级)的更多相关文章

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

    在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特 ...

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

    如果将synthesize省略,并且我们自己实现setter和getter方法时,系统就不会生成对应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和 ...

  3. 【Java基础】setter与getter方法

    //下面代码实现设置和获取学生姓名和成绩. class lesson5homework { public static void main(String[] args) { TestCode TC=n ...

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

    假设将synthesize省略,而且我们自己实现setter和getter方法时,系统就不会生成相应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和 ...

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

    假设synthesize省略,而且我们自己实现setter和getter方法时,系统就不会生成相应的setter和getter方法,还有实例变量 1,当把语义特性声明为assign时,setter和g ...

  6. JavaScript的setter与getter方法

    作者:http://hawkzz.com 以前在写项目过程一直都没有使用过Javascript的setter与getter方法,所以对其是一种要懂不懂的概念:今天看书看到这个知识点,还是模模糊糊的,于 ...

  7. Swift 之属性setter、getter方法

    Swift 之属性setter.getter方法 Swift中的属性分为两种属性,一种就是计算型属性 一种就是存储型属性,开始我虽然知道这两种属性,但是了解并不深对于他的setter和getter方法 ...

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

    本分享是面向有意向从事iOS开发的伙伴们.或者已经从事了iOS的开发人员.假设您对iOS开发有极高的兴趣,能够与我一起探讨iOS开发.一起学习,共同进步.假设您是零基础,建议您先翻阅我之前分享的iOS ...

  9. 第十二篇:随手记一下javaBean的setter,getter方法的命名问题

    今天测试新写的一个系统表的完整Ibatis配置和调用,因为经验少,到处撞墙...其他的坑爹问题就不提了 测试sqlMapClient.queryForList("...",para ...

随机推荐

  1. git branch查看不到分支的名字解决办法

    git branch查看不到分支的名字解决办法 <!-- 1. 先初始化 --> git init; <!-- 2. 接着创建瑶瑶的专属分支 --> git checkout ...

  2. Scrapy学习(一)、Scrapy框架和数据流

    Scrapy是用python写的爬虫框架,架构图如下: 它可以分为如下七个部分: 1.Scrapy Engine:引擎,负责控制数据流在系统的所有组件中流动,并在相应动作发生时触发时间. 2.Sche ...

  3. ID生成 雪花算法

    /** * ID生成 雪花算法 */ public class SnowFlake { public static SnowFlake getInstance() { return Singleton ...

  4. What’s up with the Graph Laplacian

    What's up with the Graph Laplacian? 来源 作者:Jeremy Kun blog: Math ∩ Programming 在数学上图和与图关联的某些矩阵的代数性质有很 ...

  5. 设置iterm可配色

    设置终端和ls可配色 终端输入vim ~/.bash_profile 添加如下export #enables colorin the terminal bash shell export export ...

  6. 第九周总结&实验报告七

    小结:这周请了一天的假,所以回来的时候有些知识点跟不上,不过在第二节课学到了关于IO的知识很重要,对于这次的实验也有些吃力,这周的知识点主要集中在书上,在各种不同条件下学习运用什么样的代码.   一. ...

  7. 胜利点20191010-5 alpha week 1/2 Scrum立会报告+燃尽图 03

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/8747 一.小组情况组长:贺敬文组员:彭思雨 王志文 位军营 杨萍队名:胜 ...

  8. HearthBuddy 第一次调试

    HearthBuddy https://www.jiligame.com/70639.html 解压缩包,打开hearthbuddy.exe直接运行就可以:不用替换mono.dll直接可用:不需要校验 ...

  9. Java-Thread 线程

    一.进程与线程的概念 进程和线程都是一个CPU工作时间段的描述,只是关注点不同. 进程(Process): 资源(CPU,内存等,文件,网络等)分配的基本单位.系统中有很多进程,它们都会使用内存.为了 ...

  10. 搭建SVN服务器时报错:0x80004002

    一.错误信息 Cannot query proxy blanket: no such interface supported (0x80004002) 二.解决方案 这个错误只会在有NVIDIA独立显 ...