Objective-C学习记录

OC新建一个类会生成两个文件一个是 .h文件,一个是 .m文件。

.h头文件一般定义的是这个类的类型

@interface 类名:NSObject{
    定义属性
}
定义方法
@end

.m文件 一般是实现文件,类似于C++中的.cpp文件

@implementation

实现方法

@end

OC中定义类没有实用{},而是使用@关键字进行划分区域的。 

函数:

//格式为:方法说明(返回类型)方法名:(参数类型)参数名称
-(void) HelloWorld:(BOOL)ishellworld{
    //执行内容
}

前面带有减号(-)的方法为实例方法,必须使用类的实例才可以调用,对应的有+号,代表类的静态方法,不需要实例化即可调用,类似于java中的static关键字的作用。

self:指向自己的指针,类似于this

nil相当于null。

Objective-C的内存需要自己管理,添加了ARC机制后编译器帮助了Objective-C添加release释放代码,Java是通过垃圾回收机制管理的

类的声明:

@interface Person:NSObject{}  

@interface:相当于Class    类名后面的冒号相当于Java中的extends  和kotlin用法一样

创建对象:

Person *p = [Person new];

Person *p = [Person alloc] init];

两种方式都可以,new方法的内部也会分开调用alloc方法来分配内存空间(返回分配的对象),使用init方法来对对象进行初始化 。两者的区别:1.采用new方式只能采用默认的init方法完成初始化;
                              2.采用alloc的方法可以用自定义的构造方法完成初始化;

我们在创建一个对象的时候会调用alloc方法,当对象被销毁的时候会调用dealloc方法,这个和C++中的析构函数一样,Java中有垃圾回收器,所以没有此类方法,但是有一个finalize方法,其实这个方法就是在垃圾回收器回收对象的时候调用,和这个dealloc功能差不多,但是在Java中我们并不提倡使用这个方法,因为会造成GC的回收发生错误。

默认初始化完毕,所有成员变量的值都为0,用完对象需要释放内存

[lisi release];

 调用对象的属性:

//对象->属性名

lisi -> age;

//(*对象名).对象属性

(*lisi).name;

调用方法:

//[对象名 方法名]

[Person eat]

//[对象名 方法名:参数]

[Person eat:@"吃虾"]

[Person run:5]

在头文件中声明属性:

@property和@synthesize   编译器会自动补出其get和set方法

//在头文件中声明属性  .h

@property int age;

//在m文件中实现

@synthesize age;

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值