2009-06-04 9 views
1

J'ai écrit des logiciels .NET pendant des années mais j'ai commencé à me familiariser un peu avec Java. Bien que la syntaxe soit similaire, la méthodologie est souvent différente. Je demande donc un peu d'aide pour ces traductions de concepts.Equivalent Java des constructions .NET

Propriétés

Je sais que les propriétés sont tout simplement Abstraite get_/set_ méthodes - même en C#. Mais, quelles sont les conventions de nommage communément acceptées? Utilisez-vous 'get_' avec un sous-code ou simplement 'get' par lui-même.

Constructors

en C# le constructeur de base est appelée automatiquement. Est-ce vrai aussi en Java?

Events

Comme les propriétés, les événements dans .NET sont extraites des méthodes de add_/remove_/Fire_ qui travaillent sur un objet délégué. Y a-t-il un équivalent en Java? Si je veux utiliser une sorte de modèle d'abonné, définissez-vous simplement une interface avec une méthode Invoke/Run et collectez des objets ou existe-t-il un support intégré pour ce modèle?

Mise à jour: Une carte plus:

le formatage de

Y at-il un équivalent à String.Format?

Répondre

3

Java from a C# developer's perspective

Bien que pour vous son dans l'autre sens :)

+0

Tout en donnant un aperçu décent des différences, cet article contient quelques erreurs, en particulier concernant les types de valeur. – CodesInChaos

+0

J'imagine que c'était un article intéressant à un moment donné, mais la pourriture des liens semble l'avoir rendu inutile maintenant. Dommage que tu n'aies pas copié/collé les points les plus pertinents. : ( – GrandOpener

+0

mis à jour l'URL du même article sur un site différent.Comme vous pouvez le voir, il serait plutôt économique de copier coller les points pertinents. – Richard

1

Wikipedia a une belle ici comparaison de la profondeur: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

+0

Cette page, bien que informative, ne répond pas à ses questions spécifiques. Il ne détaille pas le comportement des constructeurs java ni les conventions des propriétés du bean java, et ne concerne pas la gestion des événements. – Jherico

1

Une propriété de haricot en java est un obtenir précédé, suivi du nom de haricot commençant par une lettre majuscule. Par exemple, la propriété 'color' serait associée aux méthodes 'getColor()' et 'setColor (int color)' (en supposant que la propriété est de type int). Il y a un cas particulier pour les propriétés booléennes, le getter sera appelé 'is' ... comme dans 'isWhite()', 'isBlack()'. Le setter reste le même.

Lorsqu'une classe est créée dans Java, tous ses constructeurs de classe parents sont appelés dans l'ordre, parents avant enfants.

Les événements Java sont spécifiques à un modèle d'événement donné et ne constituent pas une partie essentielle du langage. Examinez la documentation de Swing ou SWT pour obtenir des informations sur les modèles d'événement de ces kits d'outils GUI.

3

Pour répondre à vos questions:

Propriétés

Par convention, Java utilise "get" ou "set" suivi du nom de la variable en cas de chameau supérieure. Par exemple, "getUserIdentifier()".booléens utilisent souvent des "is" au lieu de "get"

Constructors

En Java, les constructeurs superclasse sont appelés d'abord, descendant dans la hiérarchie de type.

Events

Par convention (ce qui est celui que vous aurez le moins d'accord sur ... différentes bibliothèques font un peu différemment), Java utilise des méthodes nommées comme « addEventTypeListener(EventTypeListener listener) » et « removeEventTypeListener(EventTypeListener listener) », où EventType est un nom sémantique pour le type d'événement (comme MouseClick pour addMouseClickListener) et EventTypeListener est une interface (généralement de premier niveau) qui définit les méthodes disponibles sur les récepteurs - évidemment, une ou plusieurs de ces références est essentiellement un "feu" méthode.

En outre, une classe d'événement est généralement définie (par exemple, "MouseClickEvent"). Cette classe d'événement contient les données sur l'événement (peut-être les coordonnées x, y, etc.) et est généralement un argument pour les méthodes "fire".

0

apporteurs de propriété et setters pouvez aller par convention de nommage selon que vous désirez, ou que votre organisation a normalisé. Une bonne convention de nommage est simplement une convention courante parmi ceux qui l'utiliseront/la verront. Cela dit, la plupart des membres de la communauté Java utilisent 'getSomething/setSomething' comme convention de dénomination sur les getters et les setters. Les constructeurs de base sont appelés automatiquement, tout comme C#.