OC入门、面向对象语法
1. #import的用途:
跟#include一样,拷贝文件的内容
可以自动防止文件的内容被重复拷贝
2. OC程序的编译连接
编译: cc –c 文件名.m
链接: cc 文件名.o -framework Foundation
3. OC中所有的对象都要通过指针来访问。
4. 所有变量类型都必须用 ( ) 括起来。
5. 成员变量命名以下划线 _开头。
6. get方法方法名跟成员变量名一致。
7. 对象方法以– 开头;
类方法以 + 开头。
注:带参数的方法中冒号:也是方法名的组成部分。
8. 在类对象中存储类方法和对象方法列表,成员变量存储在对象中。
9. 类方法中不能访问成员变量(实例变量)。
10.类方法不依赖于对象,执行效率高。当方法内部不需要使用成员变量时尽量用类方法。
11.self是指向方法调用者的指针。
利用 “self -> 成员变量名” 访问当前对象内部的成员变量。
利用 [self 方法名] 可以调用其他对象方法/类方法。
12.OC中不允许子类和父类拥有相同名称的成员变量。但是子类可以重写父类方法。
13.OC只允许单继承。
14.super作用:直接调用父类中的某个方法
super处在对象方法中,就会调用父类的对象方法。
super处在类方法中,就会调用父类的类方法。
使用场合:子类重写父类的方法时想保留父类的一些行为。
15.多态的代码体现:父类型的指针指向子类对象。
局限性:不能直接调用子类特有的方法,必须强制转为子类型变量后才能直接调用子类特有的方法。
16.OC中字符串以@开头。
@”hello everyone”
17.OC字符串创建与输出:
NSString *str = @”itcast”;
NSString *newStr = [NSString stringWithFormat:@"My ageis %d and no is %d and name is %@", age, no, name];
NSLog(@”我在%@上课”,str);
注:NSLog输出C语言字符串的时候不能有中文!
18.字符串length方法返回的是字符串的字数(空格算一个字):
NSString *name = @”哈哈jack”;
//size==6
intsize = [name length];
19.成员变量作用域:
@public :在任何地方都能直接访问对象的成员变量。
@private :只能在当前类的对象方法中直接访问。(@implementation中默认是@private)
@protected :可以在当前类及其子类的对象方法中直接访问。(@interface中默认是@protected)
@package :只要处在同一框架中就能直接访问对象的成员变量。介于private和public之间。
@interface和@implementation中不能声明同名的成员变量。