Object-C和Java的关键字对比
Object-C和Java的关键字对比
Class Interface
// 导入UIKit/UIKit,这个和Java关键字import差不多。
#import <UIKit/UIKit.h>
// @interface相当于Java关键字class;:相当于Java关键字extends;<>相当于Java关键字implements,里面是实现的一系列protocol;protocol相当于Java中的interface;{}中声明了一些变量。
@interface MyClass : SuperClass <Protocol1, Protocol2> {
// 声明基本变量valid
BOOL valid;
// 声明指针变量topView
UIView *topView;
}
// @property相当于Java中的get和set方法;atomic相当于Java关键字synchronized,而non atomic的意思则与之相反;assign是直接赋值。
@property (nonatomic, assign) BOOL valid;
// retain相当于[tempValue retain];[value release];value = tempValue;,这样,当tempValue和老的value是同一个对象时,不会出错;copy相当于NSObject *newValue=[tempValue copy];[value release];value = newValue;;IBOutlet要和NIB文件配合使用。
@property (nonatomic, retain) IBOutlet UIView *topView;
// 定义方法refresh;+相当于Java关键字static,-则与之相反。
– (void) refresh;
// @end相当于Java Class结尾的}
@end
Class Implementation
// 导入MyClass,这个和Java关键字import差不多。
#import "MyClass.h"
// 增加方法
@interface MyClass ()
– (void) fetchList;
@end
// 实现MyClass
@implementation MyClass
// 生成属性
@synthesize valid;
@synthesize topView;
// 实现方法
– (void) dealloc {
[valid release];
[topView release];
[super dealloc];
}
– (void) refresh {
}
– (void) fetchList {
}
// @end相当于Java Class结尾的}
@end
参考文章:
http://cocoadevcentral.com/d/learn_objectivec/
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW1
- [转帖]处死吴英为何难以服众?
- Object-C属性标签assign,retain,copy区别