第04天OC语言(05):property修饰符
第04天OC语言(05):property修饰符
lyh2017iOS 发表于5个月前
第04天OC语言(05):property修饰符
  • 发表于 5个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

  • 不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么? > 设置类的成员变量的一些访问修饰符

#####学习前:你必须会什么? > 了解什么是封装。什么是可读、可写。


#####一、本章笔记

 一、
 格式
 @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

标签: OC语言
共有 人打赏支持
粉丝 2
博文 354
码字总数 137380
×
lyh2017iOS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: