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
    评论
OC(Objective-C)是一种面向对象的编程语言,它支持在中使用方法和block。方法是在中定义的方法,可以直接通过名来调用,而不需要实例化对象。而block是一种闭包,可以在代码中定义并传递给方法或函数,用于延迟执行特定的逻辑。 在OC中,可以使用方法创建和操作的实例,例如通过一个工厂方法创建对象,或者在方法中实现一些与相关的逻辑。方法通常使用“+”符号进行声明和实现。 而block可以在方法中作为参数传递,也可以在方法中定义和使用。block可以捕获其所在作用域的变量,可以在方法内部延迟执行一段代码,也可以用于实现回调等功能。block的定义和使用使用“^(){}”语法。 方法和block可以结合使用,例如可以在方法中接受一个block作为参数,并在合适的时机调用该block,以实现一些灵活的逻辑。通过方法和block的组合,可以在OC中实现更加灵活和强大的功能,例如在异步操作中使用block来回调结果,或者在工厂方法中使用block来定制对象的初始化逻辑等。 总而言之,方法和block是OC中的两个重要特性,它们可以分别用于的操作和延迟执行逻辑,也可以结合使用以实现更加灵活的功能。在实际的OC开发中,方法和block通常会被广泛使用,可以帮助开发者更加简洁和灵活地实现代码逻辑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值