概述
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
oc的类和对象
一、类和对象的定义
1、类(class):是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。
类的内部状态:指类集合中对象的共同状态。
类的运动规律:指类集合中对象的共同运动规律。
类概念的两种方法:1、由特殊到一般的归纳法
如:车、船、飞机,都可以把人从a点带到b点,所以都为交通工具。
2、由一般到特殊的演绎法
如:车—>小车、汽车、货车,根据不同的特征分成不同的小类
2、对象(object):即现实社会中各种各样的实体,可以是具体的事物,也可以是抽象的事物。
如:猫、桌、椅、1、2、3、法律、法规等。
对象的属性:即对象的内部状态;如:猫有名字、颜色、体重等内部状态
对象的方法(事件):即对象的运动规律;如:猫有吃饭、睡觉、抓老鼠等的运动规律
3、类和对象之间的关系
类(class):是具有相同类型的对象的抽象;定义一个类就可以创键这个类的多个对象
对象(object):是类类型的变量;是系统中基本运动的实体;
类(class)的构成:类的名称:类名
类的属性:一组包含数据的属性
类的方法:允许对属性中包含的数据进行操作的方法
二、类的声明和实现
1、类的声明文件:后缀为.h的文件,用于声明成员变量、方法。使用关键字:@interface和@end。
注:.h中的方法只是做一个声明,并不对方法进行实现。
声明一个类:@interface NewClass:ParentClassName
{ 实例变量;
}
方法的声明;
@end
例:
- @interface Tree : NSObject //定义一个树的类
- { NSString *_name; //定义树名变量
- int _age; //定义树的年龄
- }
- +(NSString *)name; //类方法的声明
- -(int)age; //对象方法的声明
- -(void)setName:(NSString*)name setAge:(int)age;//有参方法声明
- @end
类的实现文件:后缀为.m的文件,用于实现.h中声明的方法。使用关键字:@implementaion和 @end。
实现一个类:@implementaion NewClassName
方法的实现
{
代码;
}
@end
例:
- @implementation Tree //树这个类的实现
- +(NSString *)name{ //类方法的实现
- return @"白杨树";}
- -(int)age{ //对象方法的实现
- return _age;}
- -(void)setName:(NSString*)name setAge:(int)age{ //有参方法实现
- _name=name;
- _age=age;
- }
- @end
2、方法的声明和实现:都必须以+或者-开头。
+表示类方法(静态方法)
1)类方法以+开头;+(返回值类型)类方法名;如:+(void)car;
2)类方法只能由类调用;
3)类方法中不能访问实例变量(成员变量),因为类方法由类调用,并没有创建存储空间来存储 类中的成员变量;
4)调用格式:[类名 类方法名];
5)类方法的好处:不依赖于对象,执行效率更高;能用类方法解决的问题,尽量使用类方法;
6)适用场合:当方法内部不需要使用到成员变量时,可以改为类方法。
-表示对象方法(动态方法)
1)对象方法以-开头;
-(返回值类型)对象方法名;如:-(void)name;
-(返回值类型)方法名:(参数类型)参数名称 方法名:(参数类型)参数名称;
如:
- -(void)setName:(NSString*)name setAge:(int)age;
2)对象方法只能由对象来调用;
3)对象方法中可以访问当前对象的成员变量;
4)调用格式:[对象名 对象方法名];
在.h中声明的所有方法作用域者是public类型,不能更改。
3、成员变量(实例变量)
成员变量常用作用域:@public全局都可以访问
@protected只能在类内部和子类中访问
@private只能在类内部访问
三、方法的调用
1、创建一个对象访问变量
Tree *tree =[Tree new]; //Tree->类名
//tree->Tree类型的指针变量
//new->使用类名调用new方法
注:new在内存中做的三件事:1、开辟存储空间
2、初始成员变量
3、返回指针地址
2、方法调用的格式:
1)[类名或者对象名 方法名];如:[tree age];
2)对象名.方法名
3)[指针变量 方法名:实际参数 方法名:实际参数];
- int main(int argc, const charchar * argv[]) {
- @autoreleasepool {
- Tree *tr=[Tree new]; //创建一个对象访问变量
- [Tree name]; //调用类方法
- [tr age]; //调用对象方法
- [tr setName:@"桂花树" setAge:5];//有参方法调用
- NSLog(@"树名:%@tt树龄:%d",[Tree name],[tr age]);
- }
- return 0;
- }
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------
最后
以上就是羞涩夕阳为你收集整理的黑马程序员-ios学习笔记 oc 类和对象的全部内容,希望文章能够帮你解决黑马程序员-ios学习笔记 oc 类和对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复