OC的文件后缀名为.m(message)的意思,
第一个程序hello world :
打印函数NSLog();和C语言和c++的区别是,它会自动换行。
#import :包含系统的头文件。和C语言的#include 类似,但是,他会自动判断是否已经被包含,而C语言中需要用#ifndef #endif来进行管理:
定义一个类:
包含两个文件:
.h:类的声明文件,用于变量和函数的声明
@interface :声明一个类:后面跟一个类名。
@end 代表这个类结束
@interface : ":"代表继承的标志。后面跟父类名。
把成员变量写在大括号里面,然后方法名写在括号外面,
声明方法:所有在.h中声明的方法都是公共的方法:
-:说明是个动态方法:(对象的方法)
+:说明是一个静态的方法:(类的方法)
方法的参数问题:
一个冒号对应一个参数。
.m:实现.h文件中声明的方法:
@implementation +类名: (实现类中的方法)
@end结尾:
main函数中的方法实现:
1.所有的OC对象都要加一个*,所以OC的所有对象都是指针
2.创建一个对象:例如:Student *stu =[Student alloc];
3。初始化:stu =[Student init];
合成一块可以写成:Student *stu = [[Student alloc]init];
4,释放对象。
点语法:
和c++和java的语法不通,OC 的“.”实际上是调用了类中的动态的方法:。而前两者是用一个对象来操控他的参数。而在OC中,如果一个类Person ,有属性age,set 和get方法都已经声明完毕,
Person *per =[[Person alloc]init];
Per.age=23;--------->[per setAge:23] 调用了set方法:
Int age =per.age;----------->intage = [per getAge] 调用了get方法:
总结:如果“." 作为左值,调用的是set方法
如果”.“作为右值,那么调用的是get方法:
注意:如果在set方法中用self.age =age :相当于自身调用了自身,会造成死循环,不可。。。
同样,在get方法中也不能return self.age ,这样也会调用get方法,自身调用自身,死循环、。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u012989536/article/details/47426363