C öğrenen Java geliştiricileri için yol haritası#
C# ve Java'nın birçok benzerliği vardır. C# dilini öğrendikten sonra Java'da programlamadan edindiğiniz bilgilerin çoğunu uygulayabilirsiniz:
- Benzer söz dizimi: Hem Java hem de C# C dil ailesindedir. Bu benzerlik, C# okuyabileceğiniz ve anlayabileceğiniz anlamına gelir. Bazı farklılıklar vardır, ancak söz diziminin çoğu Java ve C ile aynıdır. Küme ayraçları ve noktalı virgüller tanıdıktır. gibi
if
else
switch
denetim deyimleri aynıdır. ,while
vedo
...while
döngü deyimlerifor
aynıdır. veinterface
için aynı anahtar sözcüklerclass
her iki dilde de bulunur. 'denpublic
private
erişim değiştiricileri aynıdır. Yerleşik türlerin çoğu bile aynı anahtar sözcükleri kullanır:int
,string
vedouble
. - Nesne odaklı paradigma: Hem Java hem de C# nesne odaklı dillerdir. Polimorfizm, soyutlama ve kapsülleme kavramları her iki dilde de geçerlidir. Her ikisi de yeni yapılar ekledi, ancak temel özellikler hala uygun.
- Kesin olarak yazılan: Hem Java hem de C# türü kesin olarak belirlenmiş dillerdir. Değişkenlerin veri türünü açık veya örtük olarak bildirirsiniz. Derleyici tür güvenliğini zorlar. Derleyici, kodu çalıştırmadan önce kodunuzda türle ilgili hataları yakalar.
- Platformlar arası: Hem Java hem de C# platformlar arasıdır. Geliştirme araçlarınızı en sevdiğiniz platformda çalıştırabilirsiniz. Uygulamanız birden çok platformda çalıştırılabilir. Geliştirme platformunuzun hedef platformunuzla eşleşmesi gerekmez.
- Özel durum işleme: Hem Java hem de C# hataları göstermek için özel durumlar oluşturur. Her ikisi de özel durumları işlemek için blokları kullanır
try
finally
-catch
- . Özel durum sınıfları benzer adlara ve devralma hiyerarşilerine sahiptir. Bir fark, C# öğesinin denetlenen özel durumlar kavramına sahip olmamasıdır. Herhangi bir yöntem (teoride) herhangi bir özel durum oluşturabilir. - Standart kitaplıklar: .NET çalışma zamanı ve Java Standart Kitaplığı (JSL) ortak görevler için destek içerir. Her ikisi de diğer açık kaynak paketleri için kapsamlı ekosistemlere sahiptir. C# dilinde paket yöneticisi NuGet'tir. Maven'a benzer.
- Çöp Toplama: Her iki dil de çöp toplama aracılığıyla otomatik bellek yönetimi sağlar. Çalışma zamanı, başvurulmayacak nesnelerden belleği geri alır. Bir fark, C# değerinin tür olarak
struct
değer türleri oluşturmanıza olanak tanır.
Benzerlikler nedeniyle C# dilinde neredeyse hemen üretken olacaksınız. İlerledikçe C# dilinde Java'da bulunmayan özellikleri ve deyimleri öğrenmeniz gerekir:
- Desen eşleştirme: Desen eşleştirme, karmaşık veri yapılarının şekline göre kısa koşullu deyimleri ve ifadeleri etkinleştirir. deyimi, bir değişkenin
is
bir desen olup olmadığını denetler. Desen tabanlıswitch
ifade , bir değişkeni incelemek ve özelliklerine göre kararlar almak için zengin bir söz dizimi sağlar. - Dize ilişkilendirmesi ve ham dize değişmez değerleri: Dize ilişkilendirmesi, konumsal tanımlayıcıları kullanmak yerine bir dizeye değerlendirilen ifadeler eklemenize olanak tanır. Ham dize değişmez değerleri, metindeki kaçış dizilerini en aza indirmek için bir yol sağlar.
- Null atanabilir ve boş değer atanamayan türler: C#, son eki bir türe ekleyerek
?
null atanabilir değer türlerini ve null atanabilir başvuru türlerini destekler. Null atanabilir türler için, ifadenin başvurularını kaldırmadan önce denetlemezseniznull
derleyici sizi uyarır. Null değer atanamayan türler için, bu değişkene birnull
değer atayabilecekseniz derleyici sizi uyarır. Null değer atanamayan başvuru türleri, oluşturan System.NullReferenceExceptionprogramlama hatalarını en aza indirir. - Uzantı yöntemleri: C# dilinde, bir sınıfı veya arabirimi genişleten yöntemler oluşturabilirsiniz. Uzantı yöntemleri, bir kitaplıktan veya belirli bir arabirimi uygulayan tüm türlerden bir türün davranışını genişletir.
- LINQ: Dil tümleşik sorgusu (LINQ), depolama alanına bakılmaksızın verileri sorgulamak ve dönüştürmek için ortak bir söz dizimi sağlar.
- Yerel işlevler: C# dilinde, işlevleri yöntemlerin veya diğer yerel işlevlerin içine yerleştirebilirsiniz. Yerel işlevler henüz başka bir kapsülleme katmanı sağlar.
C# dilinde Java'da olmayan başka özellikler de vardır. Ve ve gibi async
await
özellikleri ve using
birlikte olmayan kaynakları otomatik olarak boşaltmaya yönelik deyimler görürsünüz.
C# ile Java arasında küçük ama önemli farklılıklara sahip benzer özellikler de vardır:
- Özellikler ve Dizin Oluşturucular: Hem özellikler hem de dizin oluşturucular (bir sınıfı dizi veya sözlük gibi ele alır) dil desteğine sahiptir. Java'da, ve
set
ileget
başlayan yöntemler için adlandırma kurallarıdır. - Kayıtlar: C# dilinde kayıtlar (başvuru) veya
struct
(değer) türleri olabilirclass
. C# kayıtları sabit olabilir, ancak sabit olması gerekmez. - Demetlerin C# ve Java'da farklı söz dizimi vardır.
- Öznitelikler Java ek açıklamalarına benzer.
Son olarak, C# dilinde bulunmayan Java dil özellikleri vardır:
- denetlenen özel durumlar: C# dilinde herhangi bir yöntem teorik olarak herhangi bir özel durum oluşturabiliyor.
- denetlenen dizi kovaryansı: C# dilinde diziler güvenli bir şekilde birlikte değişken değildir. Ortak değişken yapılara ihtiyacınız varsa genel koleksiyon sınıflarını ve arabirimlerini kullanmanız gerekir.
Genel olarak Java'da deneyimli bir geliştirici için C# öğrenmek sorunsuz olmalıdır. Hızlı bir şekilde üretken olmak için yeterince tanıdık deyimler bulacaksınız ve yeni deyimleri hızlı bir şekilde öğreneceksiniz.