黑马程序员—OC语言基础—类与对象

———————— Java培训、Android培训、iOS培训、.Net培训 、期待与您交流! ———————
OC的类与对象是极其重要的概念,要想学好OC语言,就必须把类与对象搞清楚了,不然后面程序很难写好。
一、面向对象(Object Oriented)和面向过程(Procedure Oriented)思想
面向对象:关注解决问题需要哪些对象
面向过程:关注解决问题需要哪些步骤

二、类和对象
举个简单的例子来理解类与对象的区别:
比如,我们现在有一个汽车的图纸,图纸中有汽车的各项属性(轮胎个数、时速等),也有行为实现(跑、加速、刹车等),这时要按照这张图纸造出两台属性不同的汽车,就可以按照这个图纸设计出这两台车子。在这个例子当中,汽车图纸就是我们所谓的类,而造出的两台汽车则是所谓的对象。

三、如何设计类
类的设计,只关心3样东西:
a.事物名称(类名):人(Person)
b.属性:身高(height)、年龄(age)
c.行为(功能):跑(run)、打架(fight)

总结:
(1)类就是模板,对象则是具体的一两个
(2)拥有相同(或类似)属性和行为的对象都可以抽象出一个类

四、类的设计
1.类名:
1)类名的第一个字母必须大写
2)不能有下划线
3)多个英文单词就用驼峰标识法
2.属性
3.行为(功能)
总结:利用面向对象语言解决问题,首先设计类,根据需求设计类,再利用类,再按照需求创造相应数量的对象。

五、类的声明与实现
1.类的声明
类的声明是声明对象的属性和行为。
例如:
@interface Person : NSObject
{
    @public
    int age;
    double height;
}
- (void)eat;
@end
分析上面程序:
1)@interface是类的声明,Person为类名,NSObject为基类,如果不写NSObject就不具备创建对象的能力。
2)@public是让外部的指针间接访问对象内部的成员变量。
3)int age;和double height;是定义了两个成员变量。
4)- (void)eat;是对象的行为,也成为方法,只要是OC对象的方法,必须以 - 减号开头,OC方法中任何数据类型都必须用小括号( )括住,且( )只用来括住数据类型。
5)@end与@interface、@implementation对应出现,不可或缺!
2.类的实现
用来实现@interface中声明的方法
例如
@implementation Person
- (void)eat
{
    NSLog(@"吃了一顿饭");
}
@end
分析:
1)@implementation是方法的实现,实现的是@interface中的方法声明的。后面的Person是要实现的类。
2)@end不能少,一一对应。
接下来我们写一个简单的main函数来调用这个类,
例如:
int main()
{
//创建一个新对象
    Person *p = [Person new];
//给新对象的成员变量赋值
    p->age = 20;
    p->weight = 70;
//给p所指向的对象发一条eat消息,这就是OC中重要的消息机制
    [p eat];
//输出对象的年龄与体重
    NSLog(@"人的年龄为%d,体重为%d", p->age, p->weight);
    return 0;
}
分析:
1)[Person new];就是新建一个新对象。
2)访问成员变量的符号使用->,之后会学到getter和setter的访问方法是用.点语法,两者不要混淆了。
3)消息机制[p eat];这是OC一个很重要的特性,消息机制是给对象p发送一条eat消息,一旦发送就会调用对象的eat方法,去对象的实现中找eat方法,然后执行eat方法的代码。也就是后面会提到的SEL方法。

总结:
1.类就是模板,对象则是具体的一两个
2.利用面向对象语言解决问题,首先设计类,根据需求设计类,再利用类,再按照需求创造相应数量的对象。
3.类的声明是声明对象的属性和行为。
4.用来实现@interface中声明的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值