[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第三章 类,对象和方法

Part 1. 类,对象,方法的概念及相互关系

:

具有归纳性,抽象意义的事物。(比喻:汽车)

对象

属于某类的一个特定的实例,某类的独特存在。(比喻:你的车,你朋友的车)

方法

每个对象包含一些数据,方法提供访问和改变这些数据的手段。

  1. 类方法:对类执行的方法。(比喻:找出一家制造厂制造了多少款汽车)

  2. 实例方法:对实例执行的方法。(比喻:驾驶;加油;洗车;维修)

:抽象的概念;
对象:属于某抽象概念的具体实例;
方法:对于某具体事例的操作;

方法的语法:方法的本质上是向类或实例发送信息,消息的接受者成为接受者

  1. 类方法的语法:

    • [Class method];
    • [类名称 方法名称];

    类方法举例:从类中获得一个对象。
    例:

    yourCar = [Car new_car];
    /*向Car类发送一条信息从汽车厂获得一辆新车,存储到yourCar中。*/
  2. 实例方法的语法:

    • [Instance method];
    • [实例(对象)名称 方法名称];

    实例方法举例:对对象的具体操作,影响对象的状态
    例:

    [yourCar drive];  //开车
    [yourCar wash];   //洗车
    [yourCar getGas]; //加油
    
    currentMileage = [yourCar odometer]; 
    //观察里程表,里程数存储在currentMileage变量内

Part2. @interface;@implementation;@program;三个部分

@interface 部分:描述类,和类的方法, 也可以为类声明实例变量。
@implementation 部分:添加实例变量, 实现在接口中声明方法的实际代码。
@program 部分:实现程序的预期目的。

@interface部分

@interface部分的职能
1. 定义新类:告诉编译器该类来自何处,命名父类。
2. 定义处理该类的对象的时候用的各种操作或方法的类型。

命名:富有意义的名称可以显著增强程序的可读性。

  • 类:大写字母开头。例子:AddressBook
  • 对象,方法,实例变量:小写字母开头。例子:currentEntry/current_Entry

@interface部分语法:

@interface NewClassName: ParentClassName
      propertyAndMethodDeclarations;
@end

@interface部分实例:

@interface Fraction : NSObject   //新类的名称是Fraction

-(void) print;                   //实例方法,无返回值,打印
-(void) setNumerator: (int) n;   //实例方法,无返回值,向该方法传第一个名为n的整型参数,作为分子
-(void) setDenominator: (int) d; //实例方法,无返回值,向该方法传第一个名为d的整型参数,作为分母

@end
  • 不能直接访问分数的实例变量(内部表示),所以必须编写方法来设置分子和分母,并打印。

  • 返回值
    实例方法:-;对类的实例执行一些操作。
    类方法: +;创建类的新实例。


@implementation部分

@implementation部分的作用

  • @interface中声明方法 (都有什么方法?)
  • @implementation定义他们 (什么样的方法?)

@implementation部分的语法

@interface NewClassName
{
     memberDeclarations;  //哪种类型的数据存储到次类 实例变量
}

methodDefinations;
@end

@implementation部分的实例

  • 实例变量声明部分
{
    int numerator;   // 实例变量
    int denominator; //如果有两个类,则这两个类都有各的numerator和denominator。   
}
  • 方法声明部分
-(void) print
{
    NSLog(@"%i/%i", numerator, denominator);
}

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

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

//methodDefinations; 的内容和 @interface 中声明的部分类似。

@program 部分

//==================建立对象===================// 

Fraction *myFraction;  

/*myFraction 是 Fraction对象的引用 myfraction不存储      Fraction的数据,而是存储了一个引用(内存地址)。*/


//===========创建一个分数实例,并初始化===========//  

myFraction = [Fraction alloc];

/*为新分数分配内存存储空间,请求Fraction执行alloc方法。 向某个类发送alloc信息就是获得该类的新实例(对象).alloc保证对象的所有实例变量都变成初始状态。*/

myFraction = [myFraction init];

/*init方法用于初始化类的一个实例变量。init 方法返回一个值,即被初始化的对象,将返回值存储到Fractiond的变量myFraction中*/

//================设置分数为1/3================//  

[myFraction setNumerator: 1];       
/* 向myFraction发送 setNumerator 消息,并提供一个值为1的参数 方法调用。1 存储在 变量n 中,由实例变量numerator存储这个值 */

[myFraction setDenominator: 3];
/* 向myFraction发送 setDenominator 消息,并提供一个值为3的参数 方法调用。1 存储在 变量d 中,由实例变量denominator存储这个值 */


//==============使用打印方法打印分数==============//      
NSLog(@"The value of myFraction is:");
[myFraction print];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值