Obhective-C_OC中的方法
2015-12-10 16:51
375 查看
OC方法
实例化方法
main.c
Person.h
Person.m
实例化方法
main.c
#import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" #import "Teacher.h" #import "NewStudent.h" int main(int argc, const char * argv[]) { @autoreleasepool { /* OC中的方法 设置器与访问器 便利初始化函数 以及 便利构造器 属性 */ //OC中的方法 //实例方法 // Person *personA = [Person new]; // Person *personA = [[Person alloc]init]; Person *personA = [Person alloc]; personA = [personA init]; //实例方法 //如何调用使用实例方法? [personA sayHello]; [personA sayHelloName:@"Rick" andAge:25]; //如何调用类方法? [Person sayHi]; [Person hiGuys]; } return 0; }
Person.h
#import <Foundation/Foundation.h> @interface Person : NSObject { NSString *_name ; NSInteger _age; NSString *_hobby; } /* OC中的方法 方法: 是类的功能代码,在(.h)文件中声明,在(.m)文件中实现。 语法: -|+ (返回类型) 方法名:参数列表 { //方法体 } 减号(-)表示实例方法,加号(+)表示类方法 */ -(void)sayHello; //实例方法 -(void)sayHelloName:(NSString *)name andAge:(NSInteger)age ; //实例方法 //类方法 /* 注意: 1.类方法可以调用类方法 2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法 3.类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量 4.类方法作为消息,可以被发送到类里面去,不能发送到对象里面去 */ +(void)sayHi ; +(void)hiGuys ; @end
Person.m
#import "Person.h" @implementation Person -(void)sayHello { NSLog(@"sayHello!"); } -(void)sayHelloName:(NSString *)name andAge:(NSInteger)age { NSLog(@"Hello guys!My name is %@,I am %ld years old!",_name,_age); } //类方法 +(void)sayHi { NSLog(@"sayHi!"); } /* 注意: 1.类方法可以调用类方法 2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法 3.类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量 4.类方法作为消息,可以被发送到类里面去,不能发送到对象里面去 */ +(void)hiGuys { //1.类方法可以调用类方法,通过self调用 //self 是什么? self 代表当前对象的指针 [self sayHi]; //2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法 // [self sayHello]; Person *p = [[Person alloc]init]; [p sayHello]; //3.类方法不可以使用实例变量。类方法可以使用self,因为self 不是实例变量 // NSLog(@"hi,My name is %@,age is %ld,hobby is %@",_name,_age,_hobby); } @end
相关文章推荐
- java解析XML (JDOM & DOM4J,X-stream)(二)
- 算法开始之路-栈和列的应用
- BlueTooth: 蓝牙协议栈实现模式分析
- My97DatePicker日历控件日报、每周和每月的选择
- 【SSH快速进阶】——Hibernate一对一映射(one-to-one)——主键关联映射
- 采购单入库操作
- watch os 语音输入
- php webp转jpg
- OCJP标准题库试题之————第二次
- Android selector 失效
- shell之cut
- Android的线程和线程池
- Mybatis 教程
- Linux(Centos)之安装Redis及注意事项
- XAML基础(一)
- 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是
- 校验业务与主逻辑解耦设计探讨与实践(AOP篇)
- Linux学习笔记(二十二、管道符)
- Easy UI Combotree选中项样式问题的hack
- 在Ubuntu下解决 adb devices :???????????? no permissions 方法