Object C 类-对象-方法

1.什么是对象?

假如你拥有一辆卡宴车,显然他是一个对象,而且是你拥有它。在面向对象的属于中,“汽车” 是一个类, 显然你的卡宴这个对象是属于 汽车 这个类中, 所以你的卡宴就是汽车这个类的一个实例。 你的汽车是红色, 是跑车,排气量等特点,这些都是汽车本身的属性,也即类的属性,类的属性在类的定义中以成员变量来表示。你的汽车要加油,要跑,这些动作可以方法的形式实现。所以,类的独特存在就是一个实例,对实例的执行操作称为方法。

         OC中类和对象调用方法的方式:

 [ClassORInstance   Method];  ---->  左边是类或是类的实例变量,右边是要执行的方法。

综上

拥有相同(或相似)属性和行为i对象都可以抽象出一个类。

        a. 创建对象,必须要先有类;

        b. OC利用类来创建对象,对象是类的具体存在;

        c. 解决问题的方法 (类/对象)-----> 方法;

2.类的实现

类的实现主要分三部分:

  • @interface 部分              --> 用于描述类和类的方法以及描述(类对象的实例变量存储的数据);
  • @implementation 部分   --> 实现接口中声明的方法的实际代码;
  • program 部分                 -->  实现程序的预期目的;
如下以处理分数的实现为例子:
(1)@interface 部分
类名称要标准化,首先要满足语言对标示符命名的要求, 其次名称要具有自解释性。
#import  <Foundation/Foundation.h>
@interface Fraction : NSObject
{
    int Numerator;
    int Denominator;
}
-(void) print;
-(void) setNumerator: (int)n;
-(void) setDenominator: (int)d;
@end
 
 如上: 
        a. 类的名称为 Fraction (类名要以大写字母开头); 冒号后面跟着 父类NSObject (NSOject 是 基类,在NSObject.h中定义, 包含在 Foundation.h文件中, 即首句#import的作用);两个大括号中是成员变量的声明, 每创建新对象时,同时创建一组新的实例变量。
b. 因为不能直接访问分数的实例变量,故需要编写对实例变量赋值的set 方法, print 方法用来显示分数的值。
上面的三个方法声明中: "-" 表示是对象方法(“+” 表示类方法:类方法不依赖于对象,执行效率高,但是不能访问实例变量,如创建类的新实例)。
        c. 返回值: (void) : 跟在“-”/"+" 后面的小括号里是方法的返回值类型,如:-(int)CutLength; 返回整形。在方法的实现时要有return 语句,如果无返回值,则用void。
        d. 方法参数:方法名称后面加一个冒号,代表后面接参数。上面的set 方法都有一个整型的参数,(int) y用来说明参数类型 
实例的方法总是可以直接访问它的实例变量,但是不能在main函数中直接访问,故需要通过setter/ getter 方法。
           
(2)@implementation部分
对interface部分声明方法的实现:
@implementation Fraction
-(void) print
{
    NSLog(@"%i/%i",Numerator, Denominator);
}

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

-(void) setDenominator: (int)d
{
    Denominator = d;
}
@end
  与@interface 类似, 每种方法的定义通过方法的类型、返回值、和参数进行标识,后面会使用 @property  @synthesize  简单是实现set 和get 方法。
(3)program部分
这部分包含解决特定问题的代码:
int main ()
{
    @autoreleasepool {
        Fraction *myFraction;                      //表示myFraction 是一个Fraction 类型对象。
        //创建一个实例并初始化
        myFraction = [[Fraction alloc] init];      //初始化对象也可以使用[Fraction new]; 但是一般建议使用。向某个类发送alloc消息,便获得该类的新对象,并对象分配存储空间,init用来初始化类的实例变量;
        //设置分数分1/3
        [myFraction setNumerator:1];               //调用set 方法对myFraction对象中的成员变量赋值
        [myFraction setDenominator:3];
        //调用print方法 显示分数
        NSLog(@"The value of myFraction is:"); 
        [myFraction print];                        //调用print 方法
    }
    return 0;
}
 
 
 
 上面的的输出结果为1/3; 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值