类与对象
1.什么是对象
对象是现实生活中的一个具体存在。看得见、摸得着,拿过来就可以直接使用。
2.什么是类
物以类聚,人以群分。
类是对一群具有相同特征或者行为的食物的一个统称,抽象的,不能直接使用
3.案列
食物、水果、苹果、烟台苹果,小明早上吃的那颗苹果
交通工具、车、自行车、二八大杠,小明骑着二八大杠去遛弯。
1.类和对象之间的关系
类是模板。类的对象是根据这个模板创建出来的。
类中有什么,对象中就有什么,绝不可能多,也绝不可能少。
类是制造月饼的模子,模子不可以吃,所以类不能直接使用。
对象根据模子制造出来的月饼,模子上有什么,月饼上就有什么,不会多也不会少。
月饼可以吃,所以对象可以使用。
2.如何设计一个类
类的作用:用来描述一群具有相同特征和行为的事物。
设计类的三要素
1)类的名字。你要描述的这类事物叫什么名字
2)这类事物具体有的相同的特征。这类事物拥有什么
3)这类事物具有的公共的行为。这类事物会做什么
3.如何找到类
名称提炼法:分析整个业务流程,分析出现了哪些名词。这些名词就是你要找到的类。
例1:三辆坦克发射了六枚炮弹打中三架飞机。
坦克类
特征:型号、大小、颜色、重量、材质、射程
行为:行驶、发射
炮弹类
特征:型号、大小、威力、颜色、重量、
行为:飞、爆炸
飞机类
特征:型号...
行为:飞...
例2:小明在公交车上牵着一只叼着热狗的狗
人类
特征:姓名、性别 。。。
行为:搭公交、遛狗。。。
公交车
特征:品牌、价格。。
行为:行驶
热狗
特征:大小、颜色。。。
行为:散发味道
狗
特征:颜色、品种。。。
行为:吃热狗。。。
1.如何定义类
1)类的三要素
2)定义类的语法
a.位置。直接写在源文件之中,不要写在main函数之中
b.类的的定义分为两个部分
->类的声明
@interface 类名 : NSObject
{
这类事物具有的共同的特征,将他们定义为变量
}
功能就是一个具体的方法,将方法的声明写在这里
@end
->类的实现
@implementation 类名
将实现的方法写在这里
@end
3)注意
a.类必须要有声明和实现
b.类名用你描述的事物的名称来命名,
类名的每一个单词的首字母必须要以大写开头
c.用来表示这类事物是共同的特征的变量必须定义在@interfacede的大括号之中。
d.定义在大括号之中用来表示这类事物的共同的特征的变量也叫做属性、成员
变量、实例变量、字段。。。。。
e.为类定义属性的时候,属性的名词必须以_开头
语法是固定的。
@interface 类名 : NSObject
{
这类事物具有的共同的特征定义为变量
数据类型 变量名1;
数据类型 变量名2;
数据类型 变量名3;
。。。。
}
功能就是一个具体的方法,将方法的声明写在这里
@end
@implementation 类名
@end
4)类的定义。
5)类是无法直接使用的,如果非要使用这个类的话,就必须先找到这个类中的一个
具体的存在,再使用这个对象
类和对象的关系:类中有的东西,这个类的对象也有,不多也不少。对象可以直接
使用。
如何创建一个类的对象
语法: 类名 *对象名 = [类名 new];
Person *p1 = [Person new];
根据Person这个类的模板,创建一个对象名字叫做盘p1
p1对象的特点:
1)可以直接使用
2)类中定义的东西,这个对象中也有,不多不少
6)如何使用对象
如何访问对象的属性:
1)默认的情况下,对象的属性是不允许被外界直接访问的
如果允许对象的属性被外界访问,那么就在声明属性上加上@public关键字
2)访问对象的属性方式:
对象名 -> 属性名 = 值;
对象名 -> 属性名;
(*对象名).属性名 = 值;
#import <Foundation/Foundation.h>
//类的声明
@interface Person : NSObject
{
//允许对象的属性被外界访问
@public
NSString *_name;
int _age;
float _height;
}
@end
//类的实现
@implementation Person
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//创建类对象
Person *p1 = [Person new];
//访问对象的属性
p1->_name = @"jack";
p1->_age = 19;
p1->_height= 178.5f;
NSLog(@"%@",p1->_name);
}
return 0;
}
到此结束!!!
自我监督 共同努力