第04天OC语言(05):property修饰符
2017-07-14 00:00
281 查看
不要等到明天,明天太遥远,今天就行动。
#####须读:看完该文章你能做什么?
设置类的成员变量的一些访问修饰符
#####学习前:你必须会什么?
了解什么是封装。什么是可读、可写。
#####一、本章笔记
#####二、code
######main.m
######Person
#####须读:看完该文章你能做什么?
设置类的成员变量的一些访问修饰符
#####学习前:你必须会什么?
了解什么是封装。什么是可读、可写。
#####一、本章笔记
一、 格式 @property (属性修饰符) 数据类型 变量名称; 如果给一个属性 同时提供了getter/setter方法,那么我们称这个属性为 可读可写属性 如果 只 提供getter方法, 那么我们称这个属性为 只读属性 如果 只 提供setter方法, 那么我们称这个属性为 只写属性 如果既没有提供getter 也没有提供setter方法,那么 我们称这个属性为私有属性 readonly : 代表只生成getter方法 不生成setter方法 readwrite : 代表即生成getter方法,也生成setter方法 (默认情况下@property 是 readwrite) 只写的系统不提供 需要程序员手动写 二、修改getter方法名称 系统默认生成的方法名称 - (void)setHeight:(int)height; - (double)height; 强制修改getter方法名称 getter=abc - (double)abc; 三、修改setter方法名称 系统默认生成的方法名称 - (void)setWeight:(int)weight; - (double)weight; 强制修改setter方法名称 setter=tiZhong: - (void)tiZhong:(int)weight; 四、程序员之间有一个约定, 一般情况下获取BOOL类型的属性的值,我们都会将获取的方法名称改为isXXX
#####二、code
######main.m
#pragma mark 05-property修饰符
#pragma mark 概念
/*
一、 格式 @property (属性修饰符) 数据类型 变量名称; 如果给一个属性 同时提供了getter/setter方法,那么我们称这个属性为 可读可写属性 如果 只 提供getter方法, 那么我们称这个属性为 只读属性 如果 只 提供setter方法, 那么我们称这个属性为 只写属性 如果既没有提供getter 也没有提供setter方法,那么 我们称这个属性为私有属性 readonly : 代表只生成getter方法 不生成setter方法 readwrite : 代表即生成getter方法,也生成setter方法 (默认情况下@property 是 readwrite) 只写的系统不提供 需要程序员手动写 二、修改getter方法名称 系统默认生成的方法名称 - (void)setHeight:(int)height; - (double)height; 强制修改getter方法名称 getter=abc - (double)abc; 三、修改setter方法名称 系统默认生成的方法名称 - (void)setWeight:(int)weight; - (double)weight; 强制修改setter方法名称 setter=tiZhong: - (void)tiZhong:(int)weight; 四、程序员之间有一个约定, 一般情况下获取BOOL类型的属性的值,我们都会将获取的方法名称改为isXXX */
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
Person *p = [Person new];
p.age = 25;
// p.name = @"lyh"; // readonly 只读属性
p.height = 1.71;
p.weight = 65.0;
NSLog(@"height = %f",[p abc]);
[p tiZhong:66.0];
NSLog(@"weight = %f",[p weight]);
[p setMarried:YES];
/*
if ([p married]) {
NSLog(@"已婚");
}
else
{
NSLog(@"未婚");
}*/
if ([p isMarried]) {
NSLog(@"已婚");
}
else
{
NSLog(@"未婚");
}
return 0;
}
######Person
>>>.h #import <Foundation/Foundation.h> @interface Person : NSObject /* 如果给一个属性 同时提供了getter/setter方法,那么我们称这个属性为 可读可写属性 如果 只 提供getter方法, 那么我们称这个属性为 只读属性 如果 只 提供setter方法, 那么我们称这个属性为 只写属性 如果既没有提供getter 也没有提供setter方法,那么 我们称这个属性为私有属性 格式 @property (属性修饰符) 数据类型 变量名称; readonly : 代表只生成getter方法 不生成setter方法 readwrite : 代表即生成getter方法,也生成setter方法 (默认情况下@property 是 readwrite) 只写的系统不提供 需要程序员手动写 */ @property int age; #pragma mark 1.修改getter方法名称 /* 系统默认生成的方法名称 - (void)setHeight:(int)height; - (double)height; 强制修改getter方法名称 getter=abc - (double)abc; */ @property(getter=abc) double height; #pragma mark 2.修改setter方法名称 /* 系统默认生成的方法名称 - (void)setWeight:(int)weight; - (double)weight; 强制修改setter方法名称 setter=tiZhong: - (void)tiZhong:(int)weight; */ @property(setter=tiZhong:) double weight; @property(readonly) NSString *name; #pragma mark 3.开发中 最常见修改getter方法名称,而修改setter名称比较少 // 是否已婚 // 程序员之间有一个约定, 一般情况下获取BOOL类型的属性的值,我们都会将获取的方法名称改为isXXX @property(getter=isMarried) BOOL married; @end >>>.m #import "Person.h" @implementation Person @end
相关文章推荐
- 第05天OC语言(07):property修饰符
- 第04天OC语言(04):property增强
- 第04天OC语言(02):property基本使用
- 第04天OC语言(16):类的本质及存储细节
- OC语言@property @synthesize和id
- 第04天OC语言(15):类工厂方法在继承中的注意点
- 第04天OC语言(19):SEL类型
- 第08天OC语言(05):NSArray和NSString转换
- 黑马程序员-OC语言-self修饰变量以及使用总结和注意事项(听课笔记)
- 第04天OC语言(14):类工厂方法基本概念
- 第04天OC语言(18):类的启动过程
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
- 第01天OC语言(05):类与对象
- 第04天OC语言(13):自定义构造方法以及成员变量名称注意点
- OC语言@property @synthesize和id
- 第03天OC语言(05):点语法
- 第04天OC语言(12):自定义构造方法在继承中的表现
- IOS之OC语言@property @synthesize和id
- 第07天OC语言(05):代理设计模式练习及规范
- OC语言——点语法和成员变量的4种作用域及property和synthesize的使用