OC的方法声明
方法:是用来完成特定功能的代码片段
声明格式:—(void)method: (int) arguments;
“—”方法类型 (void)返回类型 method:方法名 (int)参数类型 arguments参数名
“—”表示实例方法,“+”表示类方法
参数:
形式参数:在方法被调用时用于接受外界输入的数据
实参:调用方法时实际传给方法的数据
返回值:方法在执行完成后返还给调用它的环境的数据
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
OC中方法的调用
OC语言中采用特定的语言调用类或者实例(对象)的方法称为发送消息或方法调用。
OC中方法的调用:
【类名或对象名 方法名】;
对象名.方法名; (点语法)
命名规则:
oc类的声明和实现
类的声明是通过@interface来声明一个类
结构:
@interface 类的名称 ;父类的名称
{
实例变量
}
方法的声明
@end
实现
@implementation 类的名称
方法的实现
{
//code
}
@end
类的声明放在“类名+.h”文件中
类的声明主要由两部分组成:实例变量和方法
声明实例变量的格式:变量类型 变量的名称
实例变量
实例变量可以使用oc语言中任何一种数据类型(包括基本类型和指针类型)
在声明实例变量的时候不能为其初始化,系统默认会初始化
实例变量的默认作用域范围是整个类
oc类声明和实现:
类声明:
@interface NewClassName:ParentClassName
{
实例变量;
....
}
方法的声明;
...
@end
类的实现:
@implementation NewClassName
方法的实现
{
//code
}
@end
类的声明放在"类名 + .h"文件中。
如:Person.h文件。
类的声明主要由两部分组成:实例变量和方法。
声明实例变量的格式:变量类型 变量名称。
如:int age;
实例变量:
实例变量额可以使用oc中任何一种数据类型(包括基本类型和指针类型)
在声明实例变量的时候不能初始化,系统会默认初始化。
实例变量的默认作用域是整个类。
Boolean 类型默认是false,所有指针类型默认是nil。
oc方法声明:
-(void) method : (int) arguments;
"-"表示实例方法,"+"表示类方法,返回类型为空,方法名为“method:”(冒号一定不能省略),最后这个方法的参数是一个整型的参数,arguments是参数的名称。
oc中进行方法调用中传递参数时,遵循值传递的原则:基本数据类型传递的是数据值本身,指针类型传递的是对象的指针,而不是对象的本身。
oc中方法的调用方式有两种:
1.[类名或者对象名 方法名];
2.对象名.方法名;
实例:
[ClassOrInstance method];
[ClassOrInstance method:arg1];
[ClassOrInstance method1:arg1 method2:arg2];
[[ClassOrInstance method:arg1] otherMethod];//嵌套发送消息。
oc基本概念——指针:
*oc语言中出基本类型之外的变量类型称为指针类型。
*oc中的对象是通过指针对其操作的。
如何在内存中区分类和对象?
*类是静态的概念,存放在代码区
*对象是alloc出来的,存放在堆区,类的每个实例变量在不同的对象中都有不同的值(静态变量除外)
*方法也只是在被调用的时候,程序运行的时候才占用内存。
/*
声明了一个NSString类型的指针变量,但它并没有指向任何一个对象
*/
NSString *s; //-->nil
/*
使用alloc方法创建了一个NSString
类型的对象,并用s指向它,以后可以通过s完成对其的操作。
*/
s = [[NSString alloc] initWithString @"Hello World"]; // s--> 堆内存地址(譬如:ox10000258)
oc中对象的创建和使用:
1.oc中对象通过指针来声明,如:ClassA *object;
2.oc中对象的创建,使用alloc来创建一个对象。编译器会给object对象分配一块可用的内存地址。然后要对对象进行初始化即调用init方法,这样这个对象才可以使用。如:
Person *person = [Person alloc];
person = [person init];
同一类的每个对象有不同的实例变量的存储空间。
同一类的每个对象共享该类的方法。
方法嵌套的形式来调用,如:
ClassA *object = [[ClassA alloc] init];
学员评论
一_缕_残_魂2013-07-01
hjc_allen2012-12-19
你感兴趣的课程