OC-002.OC中如何创建一个类
来源:互联网 发布:unity3d回合制游戏 编辑:程序博客网 时间:2024/05/01 02:34
OC中创建类:
1.需要先设计一个类名,比如人类。
2.类中包含它的属性,比如:姓名、年龄、升高等。
3.类中有一些基本的方法,比如遍历自己的属性等。
总结一个类需要:类名、类的属性、类的方法 (属性和方法可以不写,但是不写的话,创造它干什么用= =p)
OC中一个类包含两个部分:声明和实现
类的声明必须以@interface开头,必以@end结尾
类的实现必须以@implementation开头,必以@end结尾
NSObject:基类,所有类的祖先类
: NSObject 作用是让Person类具有创建对象的能力
注意点:如果一个类中只有声明没有实现,那么这个类在链接的就报错,是不可创建成功
OC中方法声明的格式
无形参: 方法类型符 (返回值类型) 方法名称
对象方法:是属于对象的,只能通过对象调用,他的 方法类型符 是 -
注意点:
1、成员的声明必须放在@interface 与 @end之间{}中,不能放在大括号外
2、方法的声明必须放在{} 与@end之间
3、@implementation 作用就是用来实现方法的
1.需要先设计一个类名,比如人类。
2.类中包含它的属性,比如:姓名、年龄、升高等。
3.类中有一些基本的方法,比如遍历自己的属性等。
总结一个类需要:类名、类的属性、类的方法 (属性和方法可以不写,但是不写的话,创造它干什么用= =p)
OC中一个类包含两个部分:声明和实现
类的声明必须以@interface开头,必以@end结尾
类的实现必须以@implementation开头,必以@end结尾
NSObject:基类,所有类的祖先类
: NSObject 作用是让Person类具有创建对象的能力
注意点:如果一个类中只有声明没有实现,那么这个类在链接的就报错,是不可创建成功
OC中方法声明的格式
无形参: 方法类型符 (返回值类型) 方法名称
对象方法:是属于对象的,只能通过对象调用,他的 方法类型符 是 -
注意点:
1、成员的声明必须放在@interface 与 @end之间{}中,不能放在大括号外
2、方法的声明必须放在{} 与@end之间
3、@implementation 作用就是用来实现方法的
4、如果你类只有声明没有实现那么链接就会报错
@interface LSPerson : NSObject //创建一个Person类,最好前面加自己特有的缩写,方便跟其它程序员创建的类似类区分,养成好的习惯很重要{/* 一定要在大括号中声明类的属性(成员变量) 命名规则:标识符规则 命名规范:必须以_开头,_后面的首字母是小写,其后的单词首字母大写 */ @public //表示属性是任何人都可以调用,一般都是需要封装的,不让其他人使用。 char *_name; //名字 int _age; //年龄}- (void) show; //声明一个无返回值,无参的show方法- (void) eat:(char *)food;//声明一个无返回值,一个参数的eat方法- (void) eat2:(char *)food using:(char *)tools;//声明一个无返回值,两个参数的eat2方法/* 1、“:”是方法名称的一部分 2、一个:对应一个形参 3、方法声明中的所有数据类型都要使用小括号括起来 4、“:”前面的文字用来描述参数的作用的,提高代码的可读性 5、“:”前面的参数说明符是可以省略的,但是开发千万不要省略的 */@end //以@end结尾,这样就声明了一个LSPerson类了/* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Person eat:using:]: unrecognized selector sent to instance 0x100208bf0' 出现这个错误原因是你给一个对象上发送它上面没有实现的方法 */@implementation LSPerson //类方法的实现写在@implementation中,以@end结尾- (void) show{ //show方法的实现 NSLog(@"age = %d,name = %s",_age,_name);//对象方法中可以直接访问,该对象的成员变量}- (void) eat:(char *)food{ //eat方法的实现 NSLog(@"吃了 %s",food);}- (void) eat2:(char *)food using:(char *)tools{//eat2方法的实现 NSLog(@"使用%s吃%s",tools,food);}@end//-----------------以上完成了一个类的声明和实现,接下来需要创建一个类,来使用方法int main(int argc, const char * argv[]) { @autoreleasepool {/* [类名 new] 作用 通过类来创建一个对象 1、为Person这个对象在堆中分配内存 2、初始化成员变量 3、返回指向刚刚创建出来的对象的指针*/ LSPerson *per = [LSPerson new];//在内存的堆中开辟空间,创建一个per的对象,指向LSPerson类 per->_name = "tom"; //只有上面写了@public才能进行直接赋值,封装后通过setter方法赋值 per->_age = 10; [per show]; //per对象调用show方法 打印 age = 10,name = tom [per eat:"apple"];//打印 吃了apple [per eat2:"apple" using:"knife"];//打印 使用knife吃apple } return 0;}
0 0
- OC-002.OC中如何创建一个类
- OC 创建一个类
- 使用 OC 创建一个类
- OC简介,OC特性,面向对象简介,创建一个类
- 用Xcode创建一个OC的类
- OC基础 -- 类创建一个对象
- oc如何封装一个类(未完待续)
- OC-003.如何去创建一个NSString的对象
- OC中类的创建简单介绍
- oc中创建类和对象
- OC创建类
- Swift中如何使用OC中的类
- OC 定义一个类
- 如何在一个项目中是OC和Swift开发
- OC 如何定义类
- OC一个简单的模型的创建
- oc集合类的创建
- OC-类的创建练习
- IOS之Objectivc-c获取本地存储路径
- pod 环境安装
- 工厂类理论复习
- 隐式Intent
- 截取两个字符串中间的值
- OC-002.OC中如何创建一个类
- Android 属性动画(Property Animation)
- 10_6检测子进程状态变化的处理函数。所以确实有这种子进程 错误
- 互联网时代的用户阅读习惯是什么样的?
- Apache JMeter--压力测试工具
- 【Struts2】(7)ModelDriven和类型转换器
- 整合大量开源库温习基础项目(四)伸缩实现OverscrollScale以及MaterialLoadingProgressBar
- CSS3颜色格式和透明度
- 创建数据库,并定义ContentProvider接口