Ich bin seit einiger Zeit von C# auf Java umgestiegen. Ich würde gerne zusammenfassen, was meiner Meinung nach der Unterschied zwischen der Syntax von Java und C# ist. Wenn Sie andere Meinungen haben, möchte ich alle fragen, wann Haihan zum ersten Mal Java gelernt hat Er hatte das Gefühl, dass die Syntax in etwa der von C# entsprach (ich sollte sagen, dass C# in etwa die gleiche wie in Java ist, schließlich imitiert Microsofts C# absichtlich die Syntaxgewohnheiten von Java).
Bill Gates sagte einmal: „Java ist die herausragendste Programmiersprache“
Lassen Sie uns näher zu Hause die Syntaxunterschiede zwischen Java und C# untersuchen. . .
1. Namespaces und Pakete
Um Klassen zu organisieren, die ähnliche Funktionen gemeinsam implementieren, führt C # das Konzept des Namespace (Namespace) ein.
Das Äquivalent dazu wird in Java als Paket bezeichnet
2. Unterschiede in der Zugriffskontrolle von Klassen
C# hat nur zwei Typen: public und default (identisch mit internal)
Auf public kann von allen Klassen zugegriffen werden (im selben Projekt und in verschiedenen Projekten)
intern (standardmäßig intern, wenn vor dem Schlüsselwort „class“ kein Steuerzeichen hinzugefügt wird), was angibt, dass auf die Klasse nur im selben Projekt zugegriffen werden kann
Es gibt nur zwei Arten von Java: öffentlich und standardmäßig
Auf public kann standardmäßig von allen Klassen zugegriffen werden (wenn vor dem Schlüsselwort class kein Steuerzeichen hinzugefügt wird).
3. Zugriffskontrolle für Klassenmitglieder
In C# gibt es vier Typen: öffentlich, geschützt, privat (Standard), intern (beachten Sie, dass intern und standardmäßig hier unterschiedlich sind).
Auf public kann von allen Klassen zugegriffen werden
Auf protected kann nur von Unterklassen zugegriffen werden
Auf private (d. h. standardmäßig, wenn keine Steuerzeichen geschrieben werden) kann nur innerhalb der Klasse zugegriffen werden
Auf internal kann von Klassen im selben Projekt zugegriffen werden
Java hat außerdem vier Typen: öffentlich, geschützt, privat und standardmäßig
Auf public können alle Klassen zugreifen
Auf protected kann von anderen Klassen im selben Paket oder von Unterklassen in anderen Paketen zugegriffen werden
Private kann nur innerhalb einer Klasse verwendet werden und ist standardmäßig für andere Klassen in diesem Paket zugänglich. Wenn sich eine Unterklasse und die übergeordnete Klasse in unterschiedlichen Paketen befinden, kann die Unterklasse nicht auf die Standardzugriffskontrollmitglieder in der übergeordneten Klasse zugreifen.
4. Die Klassenvererbung in C# wird über Doppelpunkt: implementiert und Extends wird in Java verwendet.
Die Schnittstelle wird durch Doppelpunkt in C# implementiert und in Java implementiert.
Versiegelte Klassen werden mithilfe von „sealed“ in C# und „final“ in Java implementiert.
Konstanten werden in C# als const und in Java als final implementiert
Eigenschaften in C# werden mithilfe von Set- und Get-Codeblöcken implementiert. In Java werden im Allgemeinen Felder verwendet, die denen in C# ähneln, um Eigenschaften darzustellen, oder sie werden mithilfe von Setter- und Getter-Konstruktoren implementiert.
In C# gibt es ein Konzept einer partiellen Klasse, in Java jedoch nicht
In C# gibt es ein schreibgeschütztes geändertes Attribut, das schreibgeschützt ist, in Java jedoch nicht.
Es gibt virtuelle und überschriebene, modifizierte virtuelle Methoden und überschriebene Methoden in C#, aber nicht in Java. Die Methoden in der Standard-Elternklasse in Java sind alle virtuell.
Es gibt Konzepte für statische {} und synchronisierte {} Codeblöcke in Java, jedoch nicht in C#.
In Java gibt es ein Konzept für Labels (z. B. labelA:), in C# jedoch nicht.
In C# verwendet die Unterklasse base.method(), um die Methode der übergeordneten Klasse aufzurufen, und in Java wird super.method() verwendet.
In C# wird „is“ verwendet, um zu bestimmen, ob eine Instanz zu einer bestimmten Klasse gehört, und in Java wird „instanceof“ verwendet.
In C# wird foreach(int i in array) verwendet, um jedes Element im Array zu durchlaufen, und in Java wird for(int i : array) verwendet