OC 基础之——类和对象,方法

1.OC:Object-C, 面向对象的 C语言,简称OC.
OC和 C 的区别:
1⃣️OC 是 C语言的超集, OC 是在 C语言的基础上结合 samlltalk的优点,开发出来的语言.OC 兼容所有的 C语言的语法.
2⃣️OC扩展了面向对象的思想
3⃣️运行时特性
4⃣️有丰富的类库
OC的学习方法:
1⃣️百度,谷歌
2⃣️看官方文档
3⃣️写博客,写日志(印象笔记)
4⃣️OOP(Object Oriented Programming)

2.OC面向对象的三大特征:封装,继承,多态
OC的核心:类和对象是 OC 的核心.
类的概念:类就是具有相同特征和行为事物的抽象.
对象就是一个类的具体化,实实在在的东西,能摸得着看得见的事物.
万事万物皆对象.
对象是类的实例,类是对象的抽象.
OC中类是怎么实现的?

3.创建类(创建的类相当于一种新的数据类型)
1⃣️Cocoa touch Class 模板,创建类.会生成一对文件. h文件和. m文件
2⃣️.h文件中写的类的声明部分,包括类的特征和行为的声明(方法的声明)
3⃣️.m文件中写的是行为的实现(方法的实现)

4.用创建的 Person类,创建出一个对象(创建一个对象包括两步)
1⃣️开辟内存空间(使用 alloc 开辟内存空间)alloc 的作用是开辟内存,[]中括号的作用是:调用方法, alloc 创建出来的一个对象都会添加一个默认的指针(isa)
2⃣️初始化
Person *p = [[Person alloc]init];
Person *p= [Person alloc];
上面调用的alloc方法会返回分配好内存的Student对象,在等号左边用了一个指向Person类型的指针变量p来接收这个对象,注意p左边的*。所有OC对象都是用指针变量来接收的,如果你不了解指针,你记住下面这点就行了:利用类名定义一个变量时,类名后面一定要带个*号.
p = [p init];
由于init是动态方法,所以这里使用p变量来调用,并不是使用类名来调用。init会返回已经初始化完毕的对象,再次赋值给了p变量。这时候的Person对象p才能正常使用。
可以使用—>:指向操作符,对类成员变量进行操作(类成员变量必须是@public)
调用对象方法,要用中括号[];
[p eat];
5.在创建类方法的时候:
带参数的方法,参数类型是 NSString, (:)冒号也是方法的一部分.
-(void)say:(NSString *) something;
instancetype和 id都是范类型,也就是可以指任何类型.
self 是指自己,谁调用了这个方法,我就返回谁.
方法的实现写在. m文件中,@ implementation 与@ end 之间写方法的实现
(-)标识的是实例的方法(动态方法),(+)标识的是类的方法(静态方法).
在. h和.m 文件中可以放多个类.
.h文件中只能放类的声明部分,类的实现是不能放在. h文件中的.
类的声明和实现在一对. h和. m文件中,和文件名没有关系.

6.NSObject 是所有类型的基类(父类)
类的特征和方法一定要写在@ interface 和@ end 之间
NSString 是 OC中的字符串, NSString 不是基本数据类型,声明的时候要加(*)
NSInteger 是基本数据类型,在声明的时候是不需要加(*)的

7.如果一个成员的变量的作用域是@ protected, 外界不能直接访问它.为了保证数据的封装性,我们可以提供 age的 get 方法和set 方法,让外界间接访问 age.
@interface Student :NSObject
@protected
int age;
@end
-(int)age;
-(void)setAge:(int)newAge;

在 OC 方法中,一个冒号:对应一个参数.而冒号(:)也是方法名的一部分,

-(void)setAge:(int)newAge andHeight:(float)newHeight;
方法名为: setAge: andHeight:

get 和 set方法的实现:
-(int)age{
return  age;// 直接返回成员变量age
}
-(void)setAge:(int)newAge{
age =  newAge;//将参数 newAge 赋值给成员变量 age
}
-(void)setAge:(int)newAge andHeight:(int)newHeight{
age = newAge;
height = newHeight;
}
OC 中有个自动化方法:
使用@proterty 和@ synthesize关键字





















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值