1,oc简介
1)C语言的基础上,增加了一层最小的面向对象语法。
2)完全兼容C语言。
3)可以在OC代码中混入C语言代码,甚至是C++代码。
4)可以使用OC开发Mac OS X平台和iOS平台的应用程序。
2,oc语法
1)关键字
@interface、@implementation、@end @public、@protected、@private、@selector @try、@catch、@throw、@finally @protocol、@optional、@required、@class@property、@synthesize、@dynamicself、super、id、_cmd、__block、__strong、__weak、
2)字符串
(1)表示字符串的类NSString
(2)字符串以@开头。
例如:@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串。
3)其他语法
其中NSlog()与printf()函数对比:
(1)NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
(2)NSLog输出后会自动换行,printf输出后不会自动换行
(3)使用NSLog需要#import <Foundation/Foundation.h>
(4)使用printf需要#include <stdio.h>
4)终端指令
一般形式:
编译cc –c main.m
链接cc main.o –framework Foundation
运行./a.out
多个.m文件:
编译:cc –c main.m test.m
链接:cc main.o test.o –framework Foundation
运行:./a.out
m文件和.c文件混用:(没有使用Foundation框架的话,就不用-framework Foundation)
编译:cc –c main.m test.m
链接:cc main.o test.o
运行:./a.out
5)#import与#include
相同:用来拷贝某个文件的内容
不同:#include完全复制,文件内容可能被拷贝多次;#import可以自动防止文件内容被拷贝多次。
6)BOOL
Object-c 提供了BOOL 类型,Object-c 里1 为true 并被宏定义为YES,0 为false 并被宏定义为NO。
3,面向对象
OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想。区别:面向过程关注的是解决问题需要哪些步骤;面向对象关注的是解决问题需要哪些对象。
4,类的声明与实现
1)interface部分
描述类、类的数据成分以及类的方法。一般形式:
@interfac NewClassName : ParentClassName
{
memberDeclarations;
}
methoddeclarations;
@end
命名规则:以字母或下划线开头,之后可以是任何字母,下划线或者0~9 数字组合。一般情况,类名以大写字母开头,实例变量、对象以及方法的名称以小写字母开始。
方法开头的(-)号或者(+)号表示:
(-) 该方法是实例方法(对类的特定实例执行一些操作);
(+)是类方法(即对类本身执行某些操作的方法,例如创建类的新实例)
举例:
@interface Stu : NSObject
{
int num;
char name
int age;
}
- (void) learn;
@end
2)implementation部分
实现这些方法的实际代码,一般形式如下:2)implementation部分
实现这些方法的实际代码,一般形式如下:
@implementation NewClassName
methodDefinitions;
@end
其中NewClassName表示的名称与interface部分的类名相同。
例如:
@implementation Stu
- (void) learn
{
Nslog(@"学生在学习");
}
@end
3)创建对象
举例:
int main(int argc , const char *argv)
{
Stu *stu = [Stu new];
}
5,方法
1)无参数
一般形式:
-(void)methodname
例如:
// 方法声明
-/+ (double)pi;
// 方法实现
- (double)pi
{
return 3.14;
}
2)一个参数
一般形式:
-/+(return type)methodname : (parameter type) parameter
例如:
// 方法声明
- (double)square : (double)number;
// 方法实现
- (double)square : (double)number
{
return number * number;
}
3)多个参数
一般形式:
-/+ (return type) methodname : (parameter type) parameter1 otherParameter : (parameter_type) parameter2 otherParameter :......
例如:
// 方法声明
- (double)sumOfNum1:(double)num1 andNum2:(double)num2;
// 方法实现
- (double)sumOfNum1:(double)num1 andNum2:(double)num2
{
return num1 + num2;
}
4)方法调用
一般形式:
[classOrInstance method];
例如:
[stu learn]
本文介绍了Objective-C的基础概念,包括其与C语言的关系、面向对象的特点、基本语法元素如字符串处理和方法定义等,并通过示例代码展示了如何创建类和对象。
1921

被折叠的 条评论
为什么被折叠?



