Obj-C 语言学习 笔记(II)类定义与实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Obj-C 语言学习 笔记(II)类定义与实现相关的知识,希望对你有一定的参考价值。

Obj-C的类定义,与C++一样,头文件和实现文件分开。

注:本文中的例子采用Mitch Fisher, Gary Bennett, Brad Lees所编《Objective-C 初学者指南》一书中的例子。本人编译的环境为Xcode 7。

不知是否因为苹果公司在推swift,个人在.h文件里写东西的时候coding辅助跟不上。在Swift中,类的声明和实现被归在同一个.swift文件中。

 

头文件中类的声明 - 成员变量部分

//
//  Radiostation.h
//  RadioStation
//
//  Created by 王 颖豪 on 2/25/16.
//  Copyright © 2016 UTT Wangsta. All rights reserved.
//

#import <Foundation/Foundation.h>

#ifndef RadioStation_h
#define RadioStation_h

//以@interface开头标示类定义的开始,以@end结束标示类定义的结束
@interface RadioStation : NSObject
{
    /*
     *  实例变量声明在花括号{}中
     *  另一种声明方法为 @property (SomeType) someVar; 在花括号外
     *  私有成员@private,受保护成员@protected,公有成员@public
     */
    @private
    NSString *name;
    double frequency;
    NSUInteger *band;
}

 

 

头文件中类的声明 - 成员方法部分:

/*  
 *  方法的定义为 +/- (SomeType)someMessage: (SomeType)var1 secondPara: (SomeType)var2...;
 *  这里和C++有明显的区别,首先编译器默认第一个变量名为方法名。通过call这个方法的第一个变量名来调用。
 *  所以在Obj-C中方法的声明就不能像C++那样可以省去变量名。
 *  方法名的定义还有不少讲究,苹果公司为此制定了一系列的规则。详细可以关注下面这个地址:
 *  http://www.cocoawithlove.com/2009/06/method-names-in-objective-c.html
 */

// +代表类方法(静态方法),-代表实例方法
+ (double)minFMFrequency;
+ (double)maxFMFrequency;
+ (double)minAMFrequency;
+ (double)maxAMFrequency;

- (id)initWithName: (NSString *)newName atFrequency:(double)newFreq;

- (NSString *) getName;
- (void) setName: (NSString *)newName;
- (double) getFrequency;
- (void) setFrequency: (double)newFrequency;

@end


#endif /* RadioStation_h */

 

 

类的实现

//
//  RadioStation.m
//  RadioStation
//
//  Created by 王 颖豪 on 2/25/16.
//  Copyright © 2016 UTT Wangsta. All rights reserved.
//

#import "RadioStation.h"

@implementation RadioStation

+ (double)minAMFrequency{
    return 520;
}

+ (double)maxAMFrequency{
    return 1610;
}

+ (double)minFMFrequency{
    return 88.3;
}

+ (double)maxFMFrequency{
    return 107.9;
}

//使用init来初始化类
- (id)initWithName: (NSString*)newName atFrequency:(double)newFreq{
    self = [super init];
    if (self != nil){
        name = newName;
        frequency = newFreq;
    }
    return self;
}

- (NSString*) getName{
    return name;
}

- (void) setName: (NSString *)newName{
    name = newName;
}

- (double) getFrequency{
    return frequency;
}

- (void) setFrequency:(double)newFrequency{
    frequency = newFrequency;
}

@end

 

以上是关于Obj-C 语言学习 笔记(II)类定义与实现的主要内容,如果未能解决你的问题,请参考以下文章

Java学习笔记3.7.2 抽象类接口与多态 - 接口

Android学习笔记圆角矩形ImageView自定义控件的实现与使用

μCos-ii学习笔记2_任务管理

Java基础学习笔记八 Java基础语法之接口和多态

Java学习笔记3.7.1 抽象类

[Java学习笔记] Java核心技术 卷1 第六章 接口与内部类