黑马程序员-ios学习笔记 oc 类和对象
2015-07-26 04:52
405 查看
------<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
例:
[objc] view
plaincopy
@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
例:
[objc] view
plaincopy
@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;
-(返回值类型)方法名:(参数类型)参数名称 方法名:(参数类型)参数名称;
如:
[objc] view
plaincopy
-(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)[指针变量 方法名:实际参数 方法名:实际参数];
[objc] view
plaincopy
int main(int argc, const charchar * argv[]) {
@autoreleasepool {
Tree *tr=[Tree new]; //创建一个对象访问变量
[Tree name]; //调用类方法
[tr age]; //调用对象方法
[tr setName:@"桂花树" setAge:5];//有参方法调用
NSLog(@"树名:%@\t\t树龄:%d",[Tree name],[tr age]);
}
return 0;
}
------<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
例:
[objc] view
plaincopy
@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
例:
[objc] view
plaincopy
@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;
-(返回值类型)方法名:(参数类型)参数名称 方法名:(参数类型)参数名称;
如:
[objc] view
plaincopy
-(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)[指针变量 方法名:实际参数 方法名:实际参数];
[objc] view
plaincopy
int main(int argc, const charchar * argv[]) {
@autoreleasepool {
Tree *tr=[Tree new]; //创建一个对象访问变量
[Tree name]; //调用类方法
[tr age]; //调用对象方法
[tr setName:@"桂花树" setAge:5];//有参方法调用
NSLog(@"树名:%@\t\t树龄:%d",[Tree name],[tr age]);
}
return 0;
}
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------
相关文章推荐
- Android Native 绘图方法
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- setAttribute 与 class冲突解决
- JavaScript中的类(Class)详细介绍
- javascript面向对象包装类Class封装类库剖析
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- JavaScript更改class和id的方法
- 一篇入门的php Class 文章
- 深入C++中struct与class的区别分析
- 一步一步学习PHP(5) 类和对象
- Javascript学习笔记5 类和对象
- js中设置元素class的三种方法小结
- c++中typename和class的区别介绍
- Objective-C的内省(Introspection)用法小结
- php class类的用法详细总结
- Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法