Objective-C程序设计第三章:类,对象和方法
2015-06-19 13:41
531 查看
这一章简单介绍了如何书写Objective-C的类,对象和方法
类的声明:
在头文件中声明类,向其中加入方法和属性。
实例方法用 - 开头
类方法用 + 开头
俩个方法的区别:
1.类别符号不同
2.实例方法可以用实例变量, 类方法不可以用实例变量
#import <Foundation/Foundation.h>
@interface Computer : NSObject
{
NSString *kaka;
int number;
}
- (void)setDoc: (NSString *)docContent;
- (void)printDoc;
- (NSString *)getDoc;
- (void)setMovie: (NSString *)movieName;
- (NSString *)getMovie;
- (void)playMovie;
+ (void)helloComputer;
@end
类的定义(又叫实现):
#import "Computer.h"
@implementation Computer
{
NSString *doc;
NSString *movie;
}
- (void)setDoc: (NSString *)docContent{
doc = docContent;
}
- (void)printDoc{
NSLog(@"The doc %@ is printing...", doc);
}
- (NSString *)getDoc{
return doc;
}
- (void)setMovie: (NSString *)movieName{
movie = movieName;
}
- (NSString *)getMovie{
return movie;
}
- (void)playMovie{
NSLog(@"We are watching movie %@", movie);
}
+ (void)helloComputer{
NSLog(@"Computer say 'hello' to you");
}
@end
为什么要有setter, getter方法?
因为无法直接访问类的实例变量。
类的创建和方法调用:
int main(int argc, const char * argv[]) {
@autoreleasepool {
[Computer helloComputer];
Computer *computer = [[Computer alloc] init];
[computer setDoc:@"真好玩"];
//[computer printDoc];
NSLog(@"I'm printing the doc %@", [computer getDoc]);
[computer setMovie:@"异形大战铁血战士"];
// [computer playMovie];
NSLog(@"I'm watch movie %@", [computer getMovie
4000
]);
}
return 0;
}
实例创建:类名 *实例 = [[类名 alloc] init];
类名 *实例 创建一个指针
[类名 alloc] 分配空间, init初始化内存空间
使用[实例名 方法名:参数]的方式调用实例方法。
类的声明:
@interface Computer: NSObject使用interface关键字,而不是传统面向对象的class。
在头文件中声明类,向其中加入方法和属性。
实例方法用 - 开头
类方法用 + 开头
俩个方法的区别:
1.类别符号不同
2.实例方法可以用实例变量, 类方法不可以用实例变量
#import <Foundation/Foundation.h>
@interface Computer : NSObject
{
NSString *kaka;
int number;
}
- (void)setDoc: (NSString *)docContent;
- (void)printDoc;
- (NSString *)getDoc;
- (void)setMovie: (NSString *)movieName;
- (NSString *)getMovie;
- (void)playMovie;
+ (void)helloComputer;
@end
类的定义(又叫实现):
#import "Computer.h"
@implementation Computer
{
NSString *doc;
NSString *movie;
}
- (void)setDoc: (NSString *)docContent{
doc = docContent;
}
- (void)printDoc{
NSLog(@"The doc %@ is printing...", doc);
}
- (NSString *)getDoc{
return doc;
}
- (void)setMovie: (NSString *)movieName{
movie = movieName;
}
- (NSString *)getMovie{
return movie;
}
- (void)playMovie{
NSLog(@"We are watching movie %@", movie);
}
+ (void)helloComputer{
NSLog(@"Computer say 'hello' to you");
}
@end
为什么要有setter, getter方法?
因为无法直接访问类的实例变量。
类的创建和方法调用:
int main(int argc, const char * argv[]) {
@autoreleasepool {
[Computer helloComputer];
Computer *computer = [[Computer alloc] init];
[computer setDoc:@"真好玩"];
//[computer printDoc];
NSLog(@"I'm printing the doc %@", [computer getDoc]);
[computer setMovie:@"异形大战铁血战士"];
// [computer playMovie];
NSLog(@"I'm watch movie %@", [computer getMovie
4000
]);
}
return 0;
}
实例创建:类名 *实例 = [[类名 alloc] init];
类名 *实例 创建一个指针
[类名 alloc] 分配空间, init初始化内存空间
使用[实例名 方法名:参数]的方式调用实例方法。
相关文章推荐
- Python动态类型的学习---引用的理解
- 土人系列AS入门教程 -- 对象篇
- 一个简单的asp数据库操作类
- 交换机升级排障实例
- C#托管堆对象实例包含内容分析
- C#实现用于操作wav声音文件的类实例
- 在线管理数据库 类
- Lua面向对象之类和继承浅析
- Lua中类的实现原理探讨(Lua中实现类的方法)
- Lua中的类编程代码实例
- javascript asp教程第十一课--Application 对象
- C#常用目录文件操作类实例
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- c# 类和成员的修饰详细介绍
- C#中实现判断某个类是否实现了某个接口
- C#类的创建与初始化实例解析
- C#基础语法:结构和类区别详解
- 深入c# 类和结构的区别总结详解
- c#结构和类的相关介绍
- VBS教程:对象-正则表达式(RegExp)对象