黑马程序员---Objective-C基础学习---get和set方法

Objective-C中得get和set方法

set方法

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

2.命名规范:

1> 方法名必须以set开头

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

3> 返回值一定是void

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

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

- (void)setAge:(int)newAge;

get方法

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

2.命名规范:

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

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

3> 不需要接收任何参数

- (int)age;

- (void)study;

定义一个Student类,拥有一个成员变量age和对应的get\set方法。

1.Student.h

 1 #import <Foundation/Foundation.h>
 2
 3 @interface Student : NSObject
 4
 5 {
 6 // 成员变量尽量不要使用@public
 7 int age;
 8 }
 9
10 - (void)setAge:(int)newAge;
11 - (int)age;
12
13 @end

1> 在第7行定义了一个成员变量age,是@protected权限的,所以外界不能直接访问它

2> 在第10、11行分别声明了age变量的set方法和get方法

2.Student.m

 1 #import "Student.h"
 2
 3 @implementation Student
 4
 5 - (void)setAge:(int)newAge {
 6     age = newAge;
 7 }
 8
 9 - (int)age {
10     return age;
11 }
12
13 @end

1> 在第5行实现了set方法

2> 在第9行实现了get方法

3.main.m

把定义好的Student类放到main函数中使用

 1 #import <Foundation/Foundation.h>
 2 #import "Student.h"
 3
 4 int main(int argc, const char * argv[])
 5 {
 6     @autoreleasepool {
 7         Student *stu = [[Student alloc] init];
 8
 9         // 设置age的值
10         [stu setAge:10];
11
12         // 取出age的值
13         int age = [stu age];
14
15         NSLog(@"age is %i", age);
16
17         [stu release];
18     }
19     return 0;
20 }

1> 在2行包含Student的头文件

2> 在第7行创建Student对象,在第17行释放Student对象

3> 在第10行调用set方法设置age的值

4> 在第13行调用get方法获取age的值

5> 在第15行输出age的值,输出结果如下:

2015-05-09 22:03:57.345 a.out[2643:707] age is 10

这就是OC传统的get方法和set方法的简单使用。

时间: 2024-08-26 09:01:31

黑马程序员---Objective-C基础学习---get和set方法的相关文章

【黑马程序员】-Java基础学习-多线程

------- android培训.java培训.期待与您交流! --------- 首先讲一下进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小. 线程和进程一样分为五个阶段:创建.就绪.运行.阻塞.终止. 多进程是指操作系统能同时运行多个任务(程序). 多线程是指在同一程序中有多个顺序流在执行.

【黑马程序员】-Java基础学习-输出一个空心菱形

1 package test; 2 3 /** 4 * 内容是输出一个空心菱形 5 * @author 瞎猫碰到死老虎 6 * 7 */ 8 9 public class linXing { 10 11 public static void main(String[] args) { 12 int n=15; 13 lingxing(n); 14 15 } 16 17 //输出一个n行的菱形 18 public static void lingxing(int n){ 19 //先输出上半部分

黑马程序员—张老师基础加强7-动态代理

代理: 要为已经存在的多个具有相同接口的目标类的各个方法增加一些系统功能. 例如:异常处理,日志和计算方法的运行时间,事物管理等,怎么做 如 在运行前后增加计算时间的方法.show(){ sop(); } 编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码. 动态代理: 要为系统中的各种接口的类增加代理功能,那需要太多代理类. jvm可以在运行期间动态生成出类的字节码,这种动态生成的类往往被调用作代理类, 即动态代理类. jvm生成动态类

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员-张老师基础5-泛型

泛型: 泛型只是提供给编译器.在编译完之后,生产字节码文件时就擦除类型信息,<>泛型就不在了 泛型的术语: 整个Arraylist<E>:称为泛型类型. Arraylist<E>中的E称为类型变量或类型参数 整个Arraylisst<Integer>称为:参数化的类型 Arraylist<Integer>中的Integer称为类型参数的实例. Arraylist<Integer>中的<>是typeof Arraylist称

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu

黑马程序员——Java集合基础知识之Collection

集合基础知识--Collection Java中集合框架由常用的Collection接口和Map接口组成,而Collection接口又有两个子接口,是List接口和Set接口,常用的集合框架由这三个类组成. List接口的功能方法 List的使用最为简单,创建集合,通过add方法添加元素,get方法获取元素,通过迭代器获取元素.List接口存放的数据无序的,添加速度快,但是查询速度慢,因为查询的时候必须遍历,每次都重头开始,效率较低.常用实现类有ArrayList,LinkedList. Lis

黑马程序员-C语言基础:指针类型与指针和数组、字符串的关系

//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值: 指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节,比

黑马程序员-C语言基础:数组和字符串

数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4]=13};//这种写法也可以,直接给其中角标为3和4的赋值 int args[] = {12,23,32};//中括号中没写数组大小,在大括号中一定要写具体数值 int args['A'] = {2,34,5}; 错误写法: int args[];//这样编译器不知道给你开辟多大的内存空间 int

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量: