一 OC
1.OC 与 C 的区别:
1⃣OC 是 C 语言的超集, OC 是在 C 语言的技术上结合smalltalk的优点 ,开发出来语言, OC 兼容所有的 C 语言的语法.
2⃣OC 扩展了 面向对象的思想
3⃣.运行时特性
4⃣.有丰富的类库
2. 面对象编程
OOP(Objective Oriented Programming)
- 带*都是对象类型用 NSString
浮点的就是 CGF 整型数字就是 NSInteger
4.OC的三大特性:封装,继承,多态
核心:类和对象
// 类:具有相同特征和行为的事物的抽象
// 对象:类的具体化,实实在在的东西,能摸得到看得到事物
// 类和对象的关系:类是对象的类型,对象是类的实例;
4.类在 OC 中得实现:
1⃣类是创建出来的(相当于一种新的数据类型);
通过cocoa touch class 模板创建,会生产一对.h .m 文件;
2⃣.h 文件中写的是类的声明,包括类的特征和行为的声明(方法的声明);
3⃣.m 文件中写的是行为的实现(C 语言中叫函数,在 OC 里叫方法的实现);
4⃣ 行为的声明
//-(减号)是 OC 中对象方法的标志;
//+(加号)是 OC 中类方法的标志;
二 创建
1. 开辟内存空间
2.初始化: 用 alloc 申请内存 []中括号的作用是调用方法 调用的 alloc 的方法
PS: 创建奥迪对象 P
Audi *p = [[Audi alloc]init];
// 是实例变量赋值
p->_type = @"A6";
p->_price = 300000;
p->_color = @"black";
NSLog(@"型号:%@ 价格:%.2f 颜色:%@", p->_type,p->_price,p->_color);
[p run];
打印的结果就不写了
// 一个类可以创造很多对象
Audi *au=[[Audi alloc]init];
au ->_type = @"A6";
au ->_price = 300000;
au ->_color = @"black";
NSLog(@"型号:%@ 价格:%.2f 颜色:%@", au->_type,au->_price,au->_color);
[au stop];
Audi *au2= [[Audi alloc]init];
NSLog(@"型号:%@ 价格:%.2f 颜色:%@", au2->_type,au2->_price,au2->_color);
三 .H 文件
1..h 文件中写的是类的声明,包括类的特征和行为的声明(方法的声明);
ps: {
// 特征
@public
NSString *_type;
CGFloat _price;
NSString *_color ;
}
//行为
- (void) call;
- (void) message;
- (void) playgame;
注意: //一对. h .m 文件中可以放多个类
//.h 只能放类的声明 .m 文件中可以同时放类的声明和实现
2. 调用自己 用 -(id)init{}
PS: -(id)init{
_type = @"奥迪 A10";
_price = 500000;
_color = @"金色";
return self;// 谁调用 就返回他自己
}
3.有参数的
PS - (void)say:
(NSString *)something{
字符串类型用%@ 占位符
NSLog(@"%@",something);
}
- NSLog 与printf 的区别
1⃣NSLog打印时自动换行 不加\ n ;
2⃣NSLog 能打印 OC 中得对象 printf不行;