首页 > 代码库 > [Objective-c 基础 - 1.1] OC类
[Objective-c 基础 - 1.1] OC类
Obj-C中没有包得概念,使用前缀进行区分
自带类用NS开头命名
关键字使用@开头
A. 第一个OC程序
1. 导入Foundation框架的主头文件
#import <Foundation/Foundation.h>
自动过滤重复引入的文件
2. 源代码和头文件
(1) .h : 类的声明文件
(2) .m : 类的实现文件
3.使用终端编译链接OC程序
例如:编译链接 02OC.m
cc 02OC.m -framework Foundation
系统默认带的是C函数库,必须加上 framework 参数,引入Foundation框架
B.OC和C的差异
1.BOOL类型
BOOL只有YES 和 NO 两个值,实际是 1 和 0
2.面向对象
(1)面向过程:关心步骤
(2)面向对象:只关心结果
C. OC中的类
1.在同一个.m文件中入门体验:
#import <Foundation/Foundation.h>
//类的声明
@interface Car : NSObject
{
//@public 可以让外部指针访问内部的成员变量
@public
int wheels;
int speed;
}
//OC方法中任何数据类型都必须用()括起来
- (void) run;
@end
//类的实现
//类的声明
@interface Car : NSObject
{
//@public 可以让外部指针访问内部的成员变量
@public
int wheels;
int speed;
}
//OC方法中任何数据类型都必须用()括起来
- (void) run;
@end
//类的实现
1 @implementation Car 2 - (void) run 3 { 4 NSLog(@"车子跑起来"); 5 } 6 7 @end 8 9 int main()10 {11 Car *c = [Car new];//创建对象,分配内存空间12 c->wheels = 4;13 c->speed = 250;14 NSLog(@"车子有%i个轮子,时速是%i", c->wheels, c->speed);15 [c run];16 17 return 0;18 }
2.常见错误
(1)声明中不能赋初值,不能使用static等C语言中得修饰符
(2)不能嵌套声明、定义
(3)方法和函数要分辨开,C语言中的是函数,类中的是方法,方法也不能使用static等修饰符
(4)使用类之前,要先声明,类似于函数
ps:继承NSOject 让类具有实现对象的功能
在声明中定义的方法全是公共方法
数据类型都要小括号括起来
1.声明:
1 @interface Student : NSObject2 {3 int age;4 }5 //‘-‘ is used to define dynamic method, ‘+‘ is used to define static method6 - (int) getAge;7 - (void) setAge:(int)age;8 @end
2.定义
类的实现使用关键字@implementation, @end
xx.m
1 #import "Student.h" 2 3 @implementation Student 4 - (int) getAge 5 { 6 return age; 7 } 8 - (void) setAge:(int)newAge 9 {10 age = newAge;11 }12 @end
3.创建对象
所有OC对象都是指针
(1)分配空间
//allocate the memory by static method, accept the obj by pointer
Student *stu = [Student alloc];
Student *stu = [Student alloc];
ps:OC中只能用指针间接操作对象
[Objective-c 基础 - 1.1] OC类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。