今天OC的第一天学习 主要是为了熟悉OC的操作和一些代码操作
1.OC的输出方法
比printf多了一个换行
NSLog(@"这是OC的第一节课");
@符是OC关键字的标志
2.C语言基本数据类型intfloatchar
OC常用基本数据类型
NSInteger 整形
CGFloat 浮点型
NSString
定义一个字符串,如果有*就代表这是一个对象
NSString *string =@"今天你吃了吗";
输出字符串
格式化输出占位符只要你是对象都可以用%@来占位
NSLog(@"%@",string);
// 基本数据类型用什么来当占位符
NSInteger number =5;NSLog(@"%ld",number);CGFloat score = 10.5;NSLog(@"%f",score);#pragma mark -- 用类实例出一个对象 ( 创建一个对象 )
3.创建对象分两个过程
1.分配内存空间(堆区开辟空间需要管理的)
2.对对象进行初始化
创建一个人的对象
根据使用方式来命名的方法
减号方法(实例方法)(对象方法)使用对象来调用
加号方法(类方法)使用类名来调用
如何调用方法?
OC当中调用方法使用中括号来调用
Person *p = [Person alloc];
[p init];// 对对象进行初始化Person *jDragon = [[Person alloc] init];
new这个方法就相当于开辟空间并初始化
Person *p1 = [Person new]; 使用new的方法无法直接给其初始化赋值
3.调用SayHi方法
[jDragon SayHi];
给实例变量赋值 (给对象赋值)
jDragon->_name = @"姜龙";jDragon->_sex = @"男";jDragon->_age = 25;
前面如果有中文的话没提示
NSLog(@"姓名:%@性别:%@年龄:%ld",jDragon->_name, jDragon->_sex, jDragon->_age);
instancetype表示返回一个对象类型
void *无类型指针可以转化为任何类型的指针
id表示一个对象类型 (可以声明一个对象)instancetype是不行的只能做返回值
4. 利用自定义初始化方法创建一个对象
Person *p1 =[[Person alloc] initWithName:@"姜龙" sex:@"男" age:18];
// 介绍一下自己
[p1 SayHi];Person *p2 = [[Person alloc] initWithName:@"周杰伦" sex:@"男" age:18];Person *p3 = [[Person alloc] initWithName:@"晴天" sex:@"女" age:17];[p2 SayHi];[p3 SayHi];
下面是类的特征和行为的代码
.h接口文件
@interface(接口文件特征)后面类名 : (继承自)父类NSObject
#import<Foundation/Foundation.h>
@interface Person :NSObject
{
1.添加一个关键字进行修饰表明实例变量的可见度
@public关键字代表公开的意思
声明的实例变量(特称)要写一大括号
只要是特征名字要加下划线
@publicNSString *_name; // 姓名NSString *_sex; // 性别NSInteger _age; // 年龄
}
2.中间写声明或者实例变量(特征)行为的声明
行为(方法)
void sayHi(); // C语言声明函数
打招呼
- (void)SayHi;
重写初始化方法 重写的是父类的方法
重写的话一定要跟父类的方法名字一样返回值一样 参数一样只有方法的实现是不一样的
- (instancetype) init;
自定义的初始化方法
- (instancetype)initWithName:(NSString *)name
sex:(NSString *)sex
age:(NSInteger)age;
#import"Person.h"
@implementation Person
自定义的初始化方法
- (instancetype)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age;{ // 对实例变量(特征)进行赋值 _name = name; _sex = sex; _age = age; returnself;}一般重写的初始化方法写在最上面
-(instancetype)init{// 需要一个返回值// self关键字在本类中表示本类的对象 return self;}
中间写行为(方法)的实现部分
打招呼的实现
-(void)SayHi{ // 介绍一下自己打印一下实例变量(特征) NSLog(@"我是%@性别%@今年%ld",_name,_sex,_age); }