Objective-C 类,对象,属性,方法

1.Objective-C and C语言

  •  C语言面向过程的语言 ( 完成一件事件需要哪些步骤 )

  •  Objective - C 面向对象的语言(封装、继承、多态)(通过类创建对象 通过对象 或 对象之间协作 完成我们的需求)

  • Objective - C 是C语言的扩充 同时具有C语言的特性

2.Objective-C 类

  1. 类的定义:Objective-c中将具有相同特性或行为的事物归为一类
  2. 类由两部分组成:声明(关键字:@interface),实现(关键字:@implementation) .h文件中声明 .m文件中实现
  3. 类的继承:
    • 子类继承父类的所有成员变量和方法,Objective-c中只能单继承(只能有一个父类)
    • 子类可以从写父类分方法,从写之后执行子类从写的方法
    • 继承关系是一个树形的关系,所有子节点只能有一个根节点,一个根节点可以有很多子节点
    • 继承格式  :@interface 类名 : 父类名
    • 类成员变量类型:NSString 字符型  NSInteger 整形  CGFloat 浮点型

.h文件 类的声明文件

.m类的实现文件

 

3.OBjective-c 对象

  • 对象的定义:万物且对象,日常生活中我们能看到的事物都能称为对象,类比较抽象,对象是某一具体的实例。
  • 对象的创建需要分配内存空间,对分配的内存空间进行初始化。
  • Person(类)  *Per(对象) [Person alloc](person类调用alloc方法为对象分配内存空间)  init(初始化方法给对象赋值)

  • 通过对象调用方法访问成员变量(Xcode 默认是受保护类型 不能直接访问)

  • 多个参数的方法的调用(setter方法为例)

4.OBjective-c 属性

  • 为了代码的安全性,Xcode默认成员变量是受保护的,要访问成员变量得通过该类的方法间接访问,赋值的方法简称setter方法,取值的方法简称getter方法。
  • 引入属性提高了代码的开发效率,直接将成员变量的steter和getter方法封装好。
  • 属性声明的关键字 @property (封装了steter方法)  @synthesize(封装了getter方法) 开发中@synthesize可以省略不写

    属性的特性:readwrite  readonly  assign  retain  copy  nonatomic 

     assign:默认行为,使用@property NSInteger _age就使用了assign行为,就是给实例变量赋了一个值

     retain:实现了两个功能,一个是保留了赋值时传递的对象,其次是赋值前释放了以前值,使用retain可以实现上面讨论的内存管理的优点,使用时加上 @property (retain)     NSString *_name(在手动管理内存的情况下,被retain修饰的属性都要在dealloc中release一下,是产生对象的类型);

     copy:发送一条复制的消息给被传递的对象,保留它,并释放任何以前的值;

     nonactomic:非原子性,加上后可以提升访问速度,但当两个线程同时修改同一个属性时就会出现问题,在单线程的情况下使用

      atomic:原子性,在多线程的情况下有加锁解锁操作(系统默认是原子性)。

     readwrite:可读写     

     readonly:只读

3.OBjective-c 方法

  • 基本常见的方法(初始化方法 构造器方法 内存释放方法)
  • 方法调用的本质:[receiver message];系统内部会在执行代码的时候,将右侧的方法编译成一个消息(message),发送给左侧的接收者(receiver),从而实现方法的调用.
  • -号方法:动态方法,是实例方法,通过对象进行调用"  - (void)setName  "。
  • +号方法:静态方法,是类方法,通过类惊喜调用"   + (id)studentinitwithFormat:(NSString *)name  "。

方法的格式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值