83 votes

@interface et @protocol explication?

Je voudrais savoir quelle est la @interface dans l'objectif C? est-ce juste là où le programmeur veut déclarer les variables, le nom de classe ou le nom de méthodes ...? Je ne suis pas sûr que ce soit comme interface en Java. Et à propos du protocole @ dans l'objectif C également. Il semble que l'interface en Java plus. Quelqu'un pourrait-il me donner des explications détaillées, s'il vous plaît? Je l'apprécie vraiment.

94voto

John Nolan Points 16633

Une interface est l'endroit où vous définissez les attributs et les opérations de la classe. Vous devez également définir la mise en œuvre.

Un protocole est comme une interface pour Java.

par exemple

 @protocol Printing
    -(void) print;
@end
 

peut être mis en œuvre

en déclarant (ce qui prête à confusion dans l'interface)

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

La confusion pour les développeurs Java est que les accolades {} ne sont pas la fin de l'interface, par exemple

 @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
 

30voto

Claptrap Points 21299

probablement bon si vous jetez un oeil à cela + je pensais que c'était une grande aide pour comprendre

15voto

zoul Points 51637

L' @interface en Objective-C n'a rien à voir avec les interfaces de Java. Il déclare simplement qu'une interface publique de la classe, son API publique. (Et variables membres, comme vous l'avez déjà observé.) Java interfaces de style sont appelés protocoles en Objective-C et sont déclarées à l'aide de l' @protocol directive. Vous devriez lire L'Objective-C, Langage de Programmation par Apple, c'est un bon livre court et très accessible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X