OC之成员变量封装

简介:

#import<Foundation/Foundation.h>

@interface Student : NSObject

{

    // 成员变量尽量不要用@public

    // @public

    int age;

    //@public

    // 只读(readonly):只允许外界访问我的no,不允许外界修改我的no

    int no; // 只需要提供get方法

}

 

/*

 set方法

 1.作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤

 2.命名规范:

 1方法名必须以set开头

 2set后面跟上成员变量的名称,成员变量的首字母必须大写

 3)返回值一定是void

 4一定要接收一个参数,而且参数类型跟成员变量类型一致

 5形参的名称不能跟成员变量名一样

 */

- (void)setAge:(int)newAge;

/*

 get方法

 1.作用:返回对象内部的成员变量

 2.命名规范:

 1肯定有返回值,返回值类型肯定与成员变量类型一致

 2方法名跟成员变量名一样

 3不需要接收任何参数

 */

- (int)age;

- (void)study;

@end

 

 

@implementation Student

// set方法的实现

- (void)setAge:(int)newAge

{

    // 对传进来的参数进行过滤

    if (newAge <= 0)

    {

        newAge = 1;

    }

    age = newAge;

}

 

- (int)age

{

    return age;

}

 

 

- (void)study

{

    NSLog(@"%d岁的学生在学习",age);

}

@end

 

int main()

{

    Student *stu = [Student new];

    //stu->age =-10;

    //stu->age = 10;

    [stu setAge:10];

    NSLog(@"学生的年龄是%d", [stu age]);

    //[stu study];

    return 0;

}

目录
相关文章
|
文字识别
Postman调用阿里云云市场的通用文字识别接口
购买了阿里云云市场的接口后,会提供两种接口认证方式:简单身份认证(AppCode)和签名认证,因签名认证相对复杂,可以参考之前的文章,本篇文章简单介绍在postman中通过AppCode调用阿里云云市场的通用文字识别接口
1196 1
Postman调用阿里云云市场的通用文字识别接口
|
存储 缓存 自然语言处理
python 模版引擎 Mako 源码阅读
Mako 是用Python编写的模板引擎。从概念上讲,mako是一种嵌入式Python(即Python Server Page)语言,模版被编译成Python代码,使用python解释器执行。mako用于外网热门网站 reddit.com ,同时也是Pylons和Pyramid Web框架默认模板语言。学习mako,可以帮助我们加深对python编译和执行的理解。
709 0
python 模版引擎 Mako 源码阅读
|
存储 负载均衡 Java
Nifi 架构 | 学习笔记
快速学习 Nifi 架构
406 0
Nifi 架构  |  学习笔记
|
弹性计算 负载均衡 网络协议
阿里云轻量级服务器使用心得
对于 网络 和其他服务器对比 快照功能使用心得
阿里云轻量级服务器使用心得
|
缓存 虚拟化 数据安全/隐私保护
tuxera ntfs for mac功能介绍及怎么使用教程
用了 Mac,我们在使用移动硬盘的时候可能会遇到一个无法传输数据(如拷贝文件)的问题,这是因为部分移动硬盘是 NTFS 格式的,而 Mac 的磁盘不是这个格式,因此就会导致二者之间无法拷贝文件。有一个解决方法就是使用 Tuxera NTFS For Mac,有了它,我们就可以比较顺利地拷贝文件了。
1620 0
|
移动开发 搜索推荐 大数据
移动开发前沿 | 厂商和App快速接入统一推送UPS指南
什么是统一推送?统一推送的意义和价值在哪里?为何统一推送标准得以被纳入到CMS中?开发者又该如何接入统一推送?
752 0
移动开发前沿 | 厂商和App快速接入统一推送UPS指南
|
API
Navigator和导航栏之间的区别以及用法场景的分析
区别:    1.navigator是属于小程序组件中的,导航栏是属于小程序API中的    2.navigator组件是用在axml页面中跳转的导航,它有4种类型(见下表);导航栏API是用在js中实现页面跳转的    3.
1093 12
|
流计算 网络协议 Apache
咱们从头到尾讲一次 Flink 网络流控和反压剖析
文章将从网络流控的概念与背景、TCP的流控机制、Flink TCP-based 反压机制(before V1.5)、Flink Credit-based 反压机制 (since V1.5)、总结与思考等几个方面进行分享。
|
SQL 监控 关系型数据库
云数据库POLARDB优势解读系列文章之④——物理复制
日志是数据库的重要组成部份,按顺序以增量的方式记录了数据库上所有的操作,日志模块的设计对于数据库的可靠性、稳定性和性能都非常重要。 可靠性方面,在有一个数据文件的基础全量备份后,对运行中的数据库来说,日志文件的重要性大于数据文件,只要操作记录到日志中并完成落盘,就等于操作完成,无须等待数据文件落盘。
8234 0