1.oc objective -c,是一门面向对象的编程语言 2.oc 和 c a.oc是c的超级,oc是在c语言的基础上做了扩展,c语言所有的语法在oc中都能使用,甚至你可以再工程里加入c++语言 b.oc在c的基础上扩展了面向对象的思想 c.oc是一门运行时语言 d.oc为我们提供了丰富的类库 3.如何学好oc? a.百度(iOS)b.看苹果的官方文档(API接口文档) c.看博客 d.自己的错误总结 4.面向对象编程的三大特征:封装,继承,多态 5.类是什么?具有相同的特征和行为实物的抽象 6.对象:类的实例化 7.创建一个类 a.通过Cocoa touch 和class 模板,创建类,自动生成.h和.m文件 b.在.h文件中写类的特征和方法的声明 c.在.m文件中写方法的实现部分
8.实用类创建对象 a.开辟内存空间 b. 初始化
9.给Person对象开辟内存空间 [Person alloc] 代表给Person这个类发送了一个消息alloc [ ]代表调用方法 10.Person *person1 = [Person alloc]; person1代表创建的对象 堆区中isa指针用来指向父类 每一个对象都有一个isa指针,用来指向他的父类,之所以能掉用父类的方法,完全是因为这个isa指针
11.初始化 如果没有赋值这时默认所有的实例变量都为空nil Person *p = [[Person alloc]init];这条语句同时完成两件事,开辟内存空间并初始化
12. @interface Person : NSObject @intferface是接口 Person是类名 :继承的谁 NSObject是所有oc类中的基类
[email protected] 实例变量被@public修饰后就能在类的外部访问到这些实例变量了 14.类的外部是��️:.h和.m其它文件就叫类的外部 15.类的内部是��️:.h和.m这对文件内 16.NSString *_name;NSString不是基本数据类型,所以那它定义变量的时候需要加* 17.NSTnteger _age; NSTnteger是基本数据类型,所以在定义变量的时候不需要加* CGFloat就是基本数据类型double 18.行为的声明 a.减号(—)修饰的方法属于对象方法,这个方法只有我们定义的这个类的创建出来的对象来调用 b.用加号(+)修饰的方法属于类的方法,这个方法只能有类来调用
19.重写了init方法 -(void)init; 20. - (void)talk:(NSString *)content;//一个冒号代表有一个参数 写一个带有参数的方法时的格式< :(参数类型)参数名> 21.如果写一个方法没写实现这种现象叫空实现 22. NSLog(@"Hello! 我是%@,年龄%ld,性别%@",_name,_age,_sex);//NSLog是oc自己的控制台输出函数
23.在.m中除了可以写多个类的实现部分,还可以把一个类的声明和实现部分都写在.m文件中,此时这个类就是一个私有的类,只能在.m文件中看到,其它任何文件都无法看到