------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一,OC的基本语法
1,关键字:
@interface、@implementation、@end
@public、@protected、@private、@selector
@try、@catch、@throw、@finally
@protocol、@optional、@required、@class
@property、@synthesize、@dynamic
self、super、id、_cmd、__block、__strong、__weak、
2,字符串:
OC中的字符串以@开头,比如@"Hello"是OC中的字符串,而"Hello"则是C语言中的字符串。
OC输入字符串使用NSString函数:
NSString *str = [NSString stringWithFormat:@"Hello World"];
3,其他基本语法的使用:
基本数据类型:char、int、float、double、BOOL(YES\NO)
nil:相当于C语言中的NULL,也就是0
基本语句:循环语句(do while、while、for)、条件语句(if、if-else、switch)
注释:单行// 多行/*….*/
4,#import的用途:
跟#include一样,拷贝文件的内容
可以防止文件的内容被重复拷贝
5,NSlog函数:
NSlog函数输出语句时会自动换行
NSlog函数输出时会自动输出时间
NSLog与printf的区别
NSLog接收OC字符串作为参数,printf接收C语言字符串作为参数
NSLog输出后会自动换行,printf输出后不会自动换行
使用NSLog需要#import<Foundation/Foundation.h>,使用printf需要#include<stdio.h>
6,Foundation框架的作用
开发OC、iOS、Mac程序必备的框架
此框架中包含了很多常用的API(应用编程接口)
框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可。即#impor <Foundation/Foundation.h>
二,面向对象
1,面向对象和面向过程的不同:
面向过程关注的是解决问题需要哪些步奏,面向对象关注的是解决问题需要哪些对象
没有开发经验很难感受他们的区别,两种思想都能够达到解决问题的目的,但是解决思路不同
2,类的设计
类的三个属性:类名,属性,方法
类名:类名一般使用有意义的英文单词,通常第一个使用大写英文字母
在OC中一般有两个文件用于描述类
.h文件用于声明类的属性和方法(只声明不实现)
.m文件用于实现.h文件中声明的方法
成员变量:
一般有三种作用域
1,@public 全局访问
2,@protected 只能在类内部和子类中访问,默认的是@protected
3,@private 只能在类内部访问
方法:
‘+’表示类方法,其对类本身执行某些操作的方法
‘-’表示对象的方法,其对类的特定实例执行一些操作例如设置值、检索值和显示值等。
多个参数的方法:
一个参数的方法名: -(返回值类型) 方法名:(参数类型)参数
二个参数的方法名: -(返回值类型) 方法名:(参数类型)参数 方法名:(参数类型)参数名
例如:
- (void)myName:(NSString *)name andAge:(int)age;
方法名是
myName:andAge:
类的声明:
#import "Foundation/Foundation.h"
@interface Car :NSObject
{
int wheels;
int speed;
}
@end
NSObject目的是让Car这个类具备创建对象的能力
类的实现:@implementation Car
return 0;
@end
创建对象:
int main()
{
[Car new];
return 0;
}
在OC中,想执行一些行为,就写上一个中括号
利用类来创建对象,执行了Car这个类的new行为来创建对象
类的行为(方法):
#import "Foundation/Foundation.h"
@interface Car :NSObject
{
int wheels;
int speed;
}
@end
//方法三要素:方法名,参数,返回值(声明,实现)
//OC方法中任何数据类型都必须使用小括号()
- (void) run;
在类中实现方法(说明方法有什么作用):
@implementation Car
- (void) run {
NSLog("车子正在行驶");
}
@end