黑马程序员 Object-c 类、对象、方法
一、OC类的声明@interface Student : NSObject
{
//声明实例变量
NSString *_name;
}
//声明方法
- (id)initWithAge:(NSString *)name;
- (void)eat;
- (void)say:(NSString *)message;
@end
用@interface来声明一个类,冒号表示继承关系,冒号后面是父类。NSObject是所以类的父类,@end关键字表示结束,这与Java的大括号表示类的开始和结束同,OC的大括号内是变量的声明。- 类的声明放在“类名.h”文件中,如Student.h
- 类的实现放在“类名.m”文件中,如Student.m
- 类的声明主要由实例变量和方法两部分组成
二、实例变量
- 实例变量可以是任何一种数据类型(包括基本数据类型和指针类型)
- 在声明实例变量的时候不能为其初始化,系统默认会初始化
- 实例变量的默认作用范围是整个类及子类
- 声明格式:- (void)say:(NSString *)message;
- “-”表示实力方法,“+”表示类方法(和java的静态方法差不多,都是用类名来调用),返回值类型为空,方法明为“say”,冒号后面是传入参数的类型及名称
- OC中进行方法调用传入参数时,是按值传递的原则,基本数据类型传递的是该数据值本身,指针类型传递的是对象的指针而非对象本身
四、类的实现
#import "Student.h"
@implementation Student
- (id)initWithAge:(NSString *)name
{
if (self=[super init]) {
_name=name;
}
return self;
}
- (void)eat
{
NSLog(@"吃东西");
}
- (void)say:(NSString *)message
{
NSLog(@"我想说%@",message);
}
@end
五、对象的创建和使用
- 对象通过指针来声明。如:Student *student;
- 使用alloc来创建一个对象。系统会给object对象分配一块可用的内存地址,然后调用init方法来初始化对象。
Student *student=[Student alloc];
student=[student init];
也可以用方法嵌套的形式调用Student *student=[[Student alloc] init];
六、OC中方法的调用
- 方法的调用或称为发送消息,事实上看成发送消息,更容易理解OC语言的写法。
- 方法的调用语法:[对象名 方法名];
[student say:@"hello world"];
student为对象名,say为方法名,hello world 为传入的字符串参数。
评论