Je suis passé de C# à Java depuis un moment. Je voudrais résumer ce que je pense être la différence entre la syntaxe de Java et C#. J'espère que vous comprendrez si vous avez des opinions différentes. J'ai appris Java pour la première fois, j'ai senti que la syntaxe de Java est à peu près la même que celle de C#. La même chose (il faut dire que C# est à peu près la même que Java. Après tout, le C# de Microsoft imite intentionnellement les habitudes grammaticales de Java)
Bill Gates a dit un jour : "Java est le langage de programmation le plus remarquable"
Retour aux choses sérieuses, explorons les différences de syntaxe entre Java et C#. . .
1. Espace de noms et package
Afin d'organiser des classes qui implémentent ensemble des fonctions similaires, C# introduit le concept d'espace de noms (espace de noms)
La chose correspondante en Java est appelée package (package)
2. Différences dans le contrôle d'accès aux classes
C# n'a que deux types : public et par défaut (identique à l'interne)
public est accessible à toutes les classes (dans le même projet et dans des projets différents)
interne (dans Quand il y a il n'y a pas de caractère de contrôle avant le mot-clé class, la valeur par défaut est interne), indiquant que la classe n'est accessible que dans le même projet
Il n'y a que deux types de Java : public et par défaut
public accessible à tous classes
Par défaut (quand il n'y a pas de caractère de contrôle avant le mot-clé class) il n'est accessible qu'à toutes les classes du même package
3 Contrôle d'accès des membres de la classe
Il existe quatre types en C# : public. , protégé, privé (par défaut), interne (Notez qu'interne et par défaut sont différents ici)
public accessible à toutes les classes
protected ne peut être consulté que par les sous-classes
private (c'est-à-dire, par défaut lorsque aucun symbole de contrôle n'est écrit) accessible uniquement aux classes Accès interne
interne accessible aux classes du même projet
Java a également quatre types : public, protégé, privé et par défaut
public accessible par toutes les classes
protected est accessible par les deux classes du même projet Accessible par d'autres classes, il est également accessible par les sous-classes de différents packages
private ne peut être utilisé qu'à l'intérieur d'une classe
Par défaut, il peut être accessible par d'autres classes de ce package, si une sous-classe et la classe parent sont dans des packages différents, les sous-classes ne peuvent pas accéder aux membres de contrôle d'accès par défaut dans la classe parent
4 L'héritage des classes en C# est implémenté via deux points :, et extends est implémenté en Java.
L'interface est implémentée en C# via deux-points :, et en Java Utiliser des implémentations
Les classes scellées en C# sont implémentées avec seal, et final est utilisé en Java. Les constantes en C# sont implémentées avec. const et final sont utilisés en Java. Les propriétés en C# sont implémentées avec des blocs de code set, get et en Java Généralement, des champs similaires à ceux de C# sont utilisés pour représenter les attributs, ou des setters et des constructeurs getter sont utilisés pour les implémenter. 🎜>Il existe un concept de classe partielle en C#, mais il n'y a pas de concept en Java
Il existe un attribut modifié en lecture seule en C# qui est en lecture seule. En Java, non
Il existe des modifications virtuelles et de remplacement. méthodes virtuelles et méthodes remplacées en C#, mais pas en Java. Les méthodes de la classe parent par défaut en Java sont toutes virtuelles
Il y a des blocs de code statiques{} et synchronisés{} dans Java Concept, il n'y a pas de concept en C#
Il existe un concept de label (comme labelA:) en Java, il n'y a pas de concept en C#
En C#, la sous-classe utilise base.method() pour appeler la méthode de la classe parent, et en Java, use super.method()
En C#, is est utilisé pour déterminer si une instance appartient à une certaine classe. En Java, instanceof est utilisé
En C#, foreach(int i in array) est utilisé pour parcourir. chaque élément du tableau. En Java, for( int i : array)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!