Saya telah beralih dari C# ke Java untuk sementara waktu. Saya ingin merangkum apa yang menurut saya perbedaan antara sintaksis Java dan C#. Jika Anda memiliki pendapat berbeda, saya ingin bertanya kepada semuanya , dia merasa bahwa sintaksnya kira-kira sama dengan C# (Saya harus mengatakan C# Kurang lebih sama dengan Java, lagipula, C# Microsoft sengaja meniru kebiasaan sintaksis Java)
Bill Gates pernah berkata: “Java adalah bahasa pemrograman yang paling menonjol”
Lebih dekat ke rumah, mari kita jelajahi perbedaan sintaksis antara Java dan C#. . .
1. Namespace dan paket
Untuk mengatur kelas-kelas yang mengimplementasikan fungsi serupa secara bersama-sama, C# memperkenalkan konsep namespace (namespace)
Setara dengan ini di Java disebut paket
2. Perbedaan kontrol akses kelas
C# hanya memiliki dua tipe: publik dan default (sama seperti internal)
public dapat diakses oleh semua kelas (dalam proyek yang sama dan dalam proyek yang berbeda)
internal (default ke internal ketika tidak ada karakter kontrol yang ditambahkan sebelum kata kunci class), menunjukkan bahwa kelas hanya dapat diakses di proyek yang sama
Hanya ada dua jenis Java: publik dan default
public dapat diakses oleh semua kelas. Secara default (jika tidak ada karakter kontrol yang ditambahkan sebelum kata kunci class), hanya dapat diakses oleh semua kelas dalam paket yang sama.
3. Kontrol akses anggota kelas
Ada empat tipe di C#: public, protected, private (default), internal (perhatikan bahwa internal dan default berbeda di sini)
public dapat diakses oleh semua kelas
protected hanya dapat diakses oleh subkelas
private (yaitu, secara default ketika tidak ada karakter kontrol yang ditulis) hanya dapat diakses di dalam kelas
internal dapat diakses oleh kelas-kelas dalam proyek yang sama
Java juga memiliki empat tipe: publik, terlindungi, pribadi, dan default
public dapat diakses oleh semua kelas
protected dapat diakses oleh kelas lain dalam paket yang sama atau oleh subkelas dalam paket berbeda
Privat hanya dapat digunakan di dalam suatu kelas dan dapat diakses oleh kelas lain dalam paket ini secara default. Jika subkelas dan kelas induk berada dalam paket yang berbeda, subkelas tersebut tidak dapat mengakses anggota kontrol akses default di kelas induk.
4. Pewarisan kelas dalam C# diimplementasikan melalui titik dua:, dan perluasan digunakan di Java.
Antarmuka diimplementasikan melalui titik dua: di C# dan diimplementasikan di Java.
Kelas tersegel diimplementasikan menggunakan tersegel di C# dan final di Java.
Konstanta diimplementasikan sebagai const di C# dan final di Java
Properti di C# diimplementasikan menggunakan blok kode set dan get. Di Java, bidang yang mirip dengan C# umumnya digunakan untuk mewakili properti, atau diimplementasikan menggunakan konstruktor penyetel dan pengambil.
Ada konsep kelas parsial di C# tetapi tidak di Java
Ada atribut readonly yang dimodifikasi di C# yang bersifat read-only, tetapi tidak di Java.
Ada metode virtual virtual dan override yang dimodifikasi serta metode override di C#, tetapi tidak di Java. Metode di kelas induk default di Java semuanya virtual.
Ada konsep blok kode{} statis dan{} tersinkronisasi di Java, namun tidak di C#.
Ada konsep label (seperti labelA:) di Java, tetapi tidak di C#
Di C#, subkelas menggunakan base.method() untuk memanggil metode kelas induk, dan di Java, super.method() digunakan.
Di C#, is digunakan untuk menentukan apakah suatu instance termasuk dalam kelas tertentu, dan di Java, instanceof digunakan.
Di C#, foreach(int i in array) digunakan untuk melintasi setiap elemen dalam array, dan di Java, for(int i : array) digunakan