有一定的软件编程基础 再去学习OC会比较简单 , 在思想和领悟方面会很快,现在打算学习OC,我在这里记录了一下基础的东西,希望对以后学习OC的同学有所帮助
1.、OC类
(1)OC是基于foundation框架,所有的类都继承与基类NSObject , 在OC中的关键字都是@符号开头,@interface 是用来声明一个类,@end代表结束
(2)OC中静态方法前面加+号 动态方法前加-号,成员变量声明在{}内部
(3).h文件里面写声明 .m文件写实现,把声明和实现区分开来
(4)初始化类的对象 Student *stu = 【【STudent alloc】, init】; 所有的对象前面都要加*
2、OC语法
(1)进行调用成员变量时 可以不用写get和set方法 直接可以写成stu.age=10
(2)成员变量一般都是带有下划线的
(3)变量的作用域有三种 @public @protected @private 默认的为@protected
(4)self 在动态函数里调用 ,谁调用该方法self就指向谁 ,在静态函数里面写self 就是指向当前的类名
(5)任何指针类型都可以用(id)来代替
(6)在进行分配内存空间时可以用new 关键字 Student *stu=【Student new】;不过一般不进行这样写, 一般都是 Student *stu =[ [Student alloc].init];
(7) 在进行初始化的时候首先对对象进行分配内存, 然后再初始化,最后释放
3.构造方法 和description方法
(1) 可以进行写自己的构造方法
(id)initwithAge:(int)age andno:(int)no
{
self=【super init】;//进行调用原始构造函数
if(self)
{
_age=age;_no = no;
}
return self;
}
还可以进行打印 对象 在进行输出对象时用%@ ,打印出来的是内存地址 不想要输出内存地址的话,可以重写description 方法
(2)重写description方法
-(NSString)description{ return @“aaaaa”;}
4.@proterty 和@Synthesize
(1) 当成变量很多是 如果一一进行在.h文件中写get和set 会显得比较冗余 可以用@property进行代替
例如@property int age 就像当于(int)age;} (void) setAge:(int newAge);
(2) 同样 在.m文件中可以用@Synthesize 代替
例如@Synthesize age 就像当于(int)age{return age;} (void) setAge:(int newAge){age=newAge;}
(3)他们自动生成的变量是私有的