@interface和@protocol解释?

我想知道目标C中的@接口是什么? 是程序员想要声明variables,类名称还是方法名称的地方? 我不确定它是否像Java中的接口。 还有关于目标C中的@protocol。 看起来像Java中的接口更多。 谁能给我详细的解释,请。 我真的很感激。

接口是定义类的属性和操作的地方。 你也必须着手实施。

协议就像一个java接口。

例如

@protocol Printing -(void) print; @end 

可以实施

通过声明(在界面中混淆)

 @interface Fraction: NSObject <Printing, NSCopying> { //etc.. 

对于java开发人员来说,令人困惑的事情是花括号{}不是接口的结尾,例如

 @interface Forwarder : Object { id recipient; } //This is not the end of the interface - just the operations - (id) recipient; - (id) setRecipient:(id) _recipient; //these are attributes. @end //This is the end of the interface 

如果你看看这个 +,可能会很好,我认为这对理解很有帮助

从文章:

@接口

C ++

foo.h中

 #ifndef __FOO_H__ #define __FOO_H__ class Foo { ... }; 

Foo.cpp中

 #include "Foo.h" ... 

Objective-C的

foo.h中

 @interface Foo : NSObject { ... } @end 

Foo.m

 #import "Foo.h" @implementation Foo ... @end 

@协议

C ++

 struct MyInterface { void foo() = 0; } class A : MyInterface { public: void override foo() { ... } } 

Objective-C的

 @protocol MyInterface -(void) foo; @end @interface Foo : NSObject <MyInterface> { -(void) foo {...} ... } @end 

Objective-C中的@interface接口与Java接口无关。 它只是声明一个类的公共接口,它的公共API。 (和成员variables一样,你已经看到了。)Java风格的接口在Objective-C中被称为协议,并使用@protocol指令来声明。 你应该阅读苹果公司的“Objective-C编程语言” ,它是一本很好的书,简短易用。