黑马程序员---学习笔记14:OC基础(1)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-


类:
关于类的几个名词:
1).h文件,类的声明文件,用于声明成员变量和方法,使用关键字@Interface和@end
只做方法的声明,并不做类的实现
2).m ,类的实现文件,用于实现.h文件中的方法,关键字:@implementation和@end


方法:
方法的声明和实现都必须以+或-开头
1)+表示类方法(静态方法)
2)- 表示对象方法(动态方法)

类的定义:
1)类的声明(规定当前类的类名、属性、行为)
@Interface类名:父类名

//定义类的属性

//写类的行为
@end


2)类的实现(实现具体行为)
@implementation 类名
//行为的具体实现
@end

例;车的类

@Interface Car:NSObject

@public//让这些成员变量变成公有的,这样才可以访问它,否则是私有的,同一文件也无法访问
//定义类的属性
int lunzi;//轮子数量
NSString *color;//颜色
int speed;//速度

//写类的行为
-(void) run;//定义了一个无参无返回值的对象方法
-(void)stop;
@end

//类的实现,用于实现类定义的方法,即使没有定义,也要写上这句!!!
@implementation car1
//行为的具体实现
-(void) run {
NSLog(@"车在跑");
}

-(void)stop{
LSLog(@ "车停了");


@end


在OC中用已经存在的类如何创建对象?
[Car new];
//做了三件事
//1)向计算机申,请内存空间
//2)给类中 的每个成员初始化值
//3)返回新申请空间的首地址

//理解方式(一)
//定义一个Car类型的指针变量、
//指针变量指向新申请的内存空间

//理解方式(二)
//用Car类实例化了一个实例对象,对象名称是Car1
Car *Car1=[Car new];
//方法的调用[类名或者对象名 方法名];
[car1 run];//向car1对象发送了一个run方法消息


car1->lunzi=3;
car1->speed=150;
car1->color=@"蓝色";

NSLog(@"轮子:%d,速度:%d,颜色:%@",car1->lunzi,car1->速度,car1->color);

对象方法:
1)对象方法以- 号开头
2)对象方法只能由对象来调用
3)对象方法中可以访问当前对象的成员变量
4)调用格式 [对象名 对象方法名];

类方法:
1)类方法以+号开头
2)类方法只能由类来调用
3)类方法中不能访问成员变量,因为类方法由类来调用,并没有创建存储空间来存储成员变量。
4)调用格式 [类名 类方法名]


类的成员变量 一般用下划线_开头

各种类的方法声明:
-(返回值类型 ) 方法名1:(参数类型)参数名1;//有一个参数的方法
-(返回值类型) 方法名1:(参数类型1) 参数名1 and:(参数类型2) 参数名2;
1)无参无返回值
-(void) aboutMyPhone;
2)有参无返回值
-(void)callPhone:(NSString *) telNum;
3)两个参数,无返回值
-(void) sendMassage:(NSString *)telNum andContent:(NSString *) content;

例:
-(int) sum:(int ) x and:(int ) y;//方法的声明
注意:
1)方法类型:(-)对象方法
2)方法的返回值:int 类型
3)方法的参数是:x 和 y
4)参数的类型:第一个 int 第二个 int
5)方法名: sum: and: (冒号是方法名的一部分)

类的使用:
1)创建对象
2)初始化对象的成员变量
3)调用方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值