IOS学习笔记三 类 属性 方法

对象是类的独特表示,每个对象都包含一些使用的信息,方法提供改变和访问这些数据的手段。
程序在逻辑上分为以下三部分
一 @interface  用于描述类和类的方法,类的声明 
1.定义新类时,首先需要告诉Object-c编译器该类来自何处,必须为它的父类命名。
2.必须定义该类对象使用时,需要用到的方法类型

@interface NewClassName : ParentClassName 
    propertAndMethodDeclarations;
@end;


实例:

@interface Fraction : NSOject 
-(void) print;
-(void) setNumerator : (int) n;
-(void) setDenominator : (int)d;
@end


新类名字为Fraction,其父名为NSObject ,NSObject 类在 NSObject.h中定义,导入foundation.h 文件时,程序自动包含这个类
方法:-(void) print;
开头的负号(-)通知Object-c 编译器,该方法是一个实例方法,此外如果用(+)则表示类方法,类方法是对类本身执行某些操作的方法,不需要实例即可调用。

1.返回值 
申明方法时,需要告诉编译器是否有返回值,如果有返回值,则需要注明是返回值的类型。返回值类型在正号和负号后的括号中注明

2.参数
参数通过参数名去的 括号 指明。


二@implementation 用于描述数据,类对象的实例变量存储的数据,并实现类声明的代码
@implementation 包含@interface 声明部分的实现,格式如下:

@implementation NewClassName
{
    memberDeclarations
}
methodDefinitions
@end



NewClassName 表示名称和 @interface 名称相同,可以在父名称后使用冒号,如同@interface 部分使用冒号一样,但通常不这样做
@implementation Fraction:NSObject
memberDeclaration 部分指定了那种类型的数据将要存储到Fraction中,以及数据的名称,是类的实例变量
methodDefinitions 部分是实现@interface声明方法。

实例:

@implementation Fraction

{
    int numerator;
    int denominator;
}


-(void) print
{
    NSLog(@"%i/%i",numerator,denominator);
}


-(void) setNumerator:(int) n
{
    numerator=n;
}


-(void) setDenominator:(int) d
{
    denominator=d;
}

@end

复制代码



三 program部分  程序目录的实现功能

实例:

int main(int argc,char * argv[])

{

    autoreleacepool{

        Fraction *myFraction

        //创建一个实例

        myFraction = [Fraction alloc];

        myFraction = [myFraction init];


        //设置参数

        [myFraction setNumerator:1];

        [myFraction setDenominator:1];

        
        //调用打印方法

        NSLog(@"The value of myFraction is:");
        
        [myFraction print];

    }

}



说明:
Fraction *myFraction
表示创建了一个 Fraction 对象 myFraction ,* 表示myFraction 是 Fraction 对象的引用(或指针),变量myFraction 并不存储Fraction的数据,而是存储的一个引用,表面对象数据在内存中的位置,申明myFraction 时,它的值未定义,并且没有默认值。

myFraction = [Fraction alloc];

alloc 是 cllocate 的缩写,为新对象分配内存存储空间,alloc 方法保证对象所有实例变量都成初始状态,并返回存储数据的位置(对数据的引用),赋给实例

myFraction = [myFraction init];

init 方法用于初始化类的实例变量,init方法返回初始化的对象,并将返回值存储到myFraction变量中。
alloc init 方法通常组合在一起

myFraction=[[Fraction alloc]init];

通常把创始和初始合并到一行

Fraction *myFraction = [[Fraction allo] init];


注意:
在Xcode4.2之前,需要给对象发送release消息,通知系统释放内存对象,这在内存管理中成为手工引用计数,4.2之后,依靠系统来释放内存对象,实现了自动应用计数( automatic  reference counting)







你可能感兴趣的:(IOS学习笔记三 类 属性 方法)