iOS战记 ----OC基础语法之战(二)

iOS战记  ----OC基础语法之战(二)

                                                                                         一个机械设计者的转行之战。


一位记者在某一个iOS开发公司采访一个健步如飞的老大爷。
记者问:大爷,你身体这么棒,保持年轻的秘诀是什么?
大爷回答说:一周工作七天每天加班只睡两个小时。
记者:大爷您今年高寿啊?
大爷:你大爷!!!我今年24~~~~~~~~~~~~~


下面讲解OC中的具体的类,还有对象的创建和实现方法:

<1>先创建一个Person类

</pre><p></p><p></p><pre name="code" class="objc">#import <Foundation/Foundation.h>

@interface Person : NSObject

{

//    @public
//    @protected
//    @private
//    public(公有的):实例变量可以在类的外部和内部操作
//    protected(受保护的,默认的):实例变量只能在该类和其子类内操作
//    private(私有的):实例对象只能在该类内访问
    
//    所谓的内部,指的是相应类的@implementation 和@end之间

//实例变量的声明方法
    NSString *_name;
    NSInteger _age;
    NSString *_gender;
}
<pre name="code" class="objc">//属性的声明方法
//@property NSString *_gender;

//初始化方法
-(id)initWithName:(NSString *)na;

//当前类具有的行为。
-(void)sayHi;


//设置器(赋值方法)
-(void)setName:(NSString *)na;

//访问器(取值方法)
-(NSString *)getName;

//    便利构造器
+(instancetype)personWithName:(NSString *)na;

 

注意1):这里要注意我后面写的方法传入的参数写成na而不是写成name,是因为我开始学的时候容易把这个传入的参数和声明实例变量的名字容易混淆。后来慢慢习惯了声明实例变量的时候变量名字前加"_"。

注意2):我声明的属性写法是简写,是为了和上面的实例变量对比,其实实际的写法为:@property (nonatomic, copy) NSString *gender;

为了一些基础差和零基础的人的好理解,可以先按我代码写的初步理解。

<2>在Person类的.m中实现方法

#import "Person.h"

@implementation Person

//属性的实现
//@synthesize _gender = ge;

-(id)initWithName:(NSString *)na
{
    self = [super init];
    if (self) {
        _name = na;
    }
    return self;
}

-(void)setName:(NSString *)na
{
    _name = na;
}

-(NSString *)getName
{
    return _name;
}
//便利构造器
+(instancetype)personWithName:(NSString *)na
{
    Person *person = [[Person alloc]initWithName:na];
    return person;
}

@end

注意1):self是给本对象发送消息,super是给本对象的父类对象发送消息。

注意2):上面的 便利构造器中的  personWithName:(方法名)⭐️⭐️⭐️⭐️必须有,后面会有一个匿名函数:block,它是可以没有函数名的。


总结:

   OC中的方法分两种:类⽅方法和实例方法。
   类方法:只能类使⽤,例如:+(id)alloc
    ⭐️⭐️⭐️⭐️注:类方法中不能使⽤ 实例变量⭐️⭐️⭐️⭐️
   实例方法:只能对象使用,例如: -(void)sayHi
    
   ⭐️⭐️⭐️⭐️id是泛型,只对对象类型⭐️⭐️⭐️⭐️
    id 创建类型不加*号,其他都加星号*。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值