一:OC语言概述
链接地址:OC概述和常用快捷键
二:简单的OC类和点语法应用
知识点:
1:@代表OC中的关键字
2:import代表导入文件:<>代表导入系统自带头文件,""代表导入自己自带头文件(也就是自己定义的.h文件)
3:OC中类的两个文件-.h和.m文件
.h,类的声明文件,用于声明变量和方法,关键字@interface,@end
.m,类的实现文件,用于实现.h中的方法,关键字@implemention,@end
4:成员变量要声明在继承类后面的{}中
5:OC中的点不是访问成员变量而是调用了set和get方法
6:self相当于java中的this,但是set,get方法中不要用self容易死循环
7:set方法中一个:代表一个参数
8:方法声明的时候 +代表类方法(静态方法) —代表类方法(动态方法)
main函数和.h文件的用例如下:
#import <Foundation/Foundation.h>
#import "Student.h"//引用自己创建的类
int main(int argc, const char * argv[]) {
//@autoreleasepool代表自动释放池,后面再说
@autoreleasepool {
//创建一个类,alloc代表分配内存,init方法进行初始化
Student *stu = [[Student alloc]init];
[stu setAge:24]; //调用了set方法
int age = [stu age];//调用了get方法
/* 重点!!!!!!!!!!!!!
上面两句用点语法的话相当于:
stu.age = 24;
int age2 = stu.age;
注意:
OC中的.代表的是调用set和get方法而不是调用成员变量
点语法要看情况是set方法还是get方法,规则就是在 = 前面是set方法,在 = 后面是get方法(有返回值类型)
*/
NSLog(@"age为:%i",age);
[stu setAge:20 andName:@"renwenyi"];
}
return 0;
}
.h文件示例如下:
#import <Foundation/Foundation.h>
//@interface代表声明一个类,后面接类名
//:代表继承
//注意:成员变量要定义在下面的{}中
@interface Student : NSObject
{
//定义成员变量的时候最好以_开头
int _age;
NSString * _name;
}
//age的get方法声明
-(int)age;
//age的set方法声明
-(void)setAge:(int)age;
//name的get方法声明
-(NSString *)name;
//name的set方法声明
-(void)setName:(NSString *)name;
//两个参数的对象方法声明
-(void)setAge:(int)age andName:(NSString *)name;
@end
9:点语法要看情况是set方法还是get方法,规则就是 =前面是set方法,在 =后面是get方法;用例如下(.m文件)
#import "Student.h"
@implementation Student
- (int)age
{
NSLog(@"调用了get方法");
return _age;
//不要写成 return self.age ,这样是死循环,调用了get方法
}
-(void)setAge:(int)age
{
_age = age;
NSLog(@"调用了set方法");
//self.age = age; 这样也是死循环,现在self.age 代表调用了set方法
}
-(NSString *)name
{
return _name;
}
-(void)setName:(NSString *)name //一个:代表一个参数
{
_name = name;
}
-(void)setAge:(int)age andName:(NSString *)name//两个:代表两个参数
{
_age = age;
_name = name;
NSLog(@"age = %i,name = %@",_age,_name);
}
@end