Alt 06.Şubat.2018
  #1
abulbl - ait Kullanıcı Resmi (Avatar)
Site Kurucusu
Reklam
Java ve C# Dilleri Arasındaki Farklar


1) Java’da pointer (işaretçi) ve pointer aritmetiği işlemleri yoktur. Buna karşın C#, unsafe block yapıları ile pointer işlemlerine izin verir, her ne kadar bazı kısıtlamalar olsa da.

2) Java, switch yapılarında sadece integer ve char tiplerinde işlem yapar. Her ne kadar enumaration yapısının Java’ya eklenmesi ile bu kısıtlama bir nevi aşılsa da, doğrudan String tipi ile switch komutu kullanılamamaktadır. Ancak C# ile, string tipleri ile de işlem yapılabiliyor. Java 7 ile, bu eksikliğin kapatılması planlanıyor.

3) Partial class yapısı, sınıfların, interfacelerin ve Java’da bulunmayan struct yapısının biden fazla kaynak dosyaya bölünebilmesini sağlar. Partial class özelliği C# da mevcut iken, Java’da bu tür bir özellik bulunmamaktadır.

4) C++ da bulunan virtual method özelliği C# ile de karşımıza çıkıyor. Java’da tüm sınıf methodları otomatik olarak virtual olarak tanımlıdır. Bu sayede, herhangi bir sınıfı genişlettiğinizde (extends) super sınıfın methodlarını herhangi bir ekleme gerektirmeden, doğrudan override edebiliyoruz. Ancak C# da bu böyle değil aynen C++ da olduğu gibidir. C# ile, herhangi bir sınıfın methodunu override etmek için super classda bu method virtual olarak deklare edilmelidir. Java’da final methodlar tanımlayarak, methodların override edilmesini önleyebiliyoruz.

5) Preprocessor (Önişlemci) direktifleri C# ile kullanılabiliyor. Bu sayede, kodun belirli bölgelerini belirli durumlar için derlenmesini sağlayabiliyoruz. Ancak Java’da preprocessor özelliği bulunmuyor.

6) Generic tipler Java ve C# dillerinde mevcut. Ancak Java’da, generic tipler primitive tiplerle kullanılamazken, C# ile kullanılabiliyor.

7) C# da goto komutu varken, Java’da yoktur.

8 ) C# bazı kısıtlamalar dahilinde operator overloading işlemine izin verirken Java, izin vermez.

9) 4. maddedeki özellike doğrultusunda C# da method override işlemini yapabilmek için, override anahtar sözcüğünü kullanmak gerekiyor. Override anahtar sözcüğü kullanılmadan yapılan işlemler C# da, yeni bir method olarak ele alınır. Ancak Java ile herhangi bir anahtar sözcük gerektirmeden doğrudan super class methodlarını override edebiliyoruz.

10) Java daki her primitive data type ın C# da bir karşılığı vardır. Ancak C#, Java’ya oranla çok daha fazla primitive data type sunar. Java’daki tüm primitive typeların aynı isimle karşılığı C# da da bulunmaktadır. Ancak Java’daki byte ın karşılığı C# da sbyte dır. C# byte veri tipi unsigned dır. Bunun haricinde C# Java’da olmayan işaretsiz tamsayı değerleri de sunar. ulong, ushort, uint ve decimal tipler Java’da yoktur.

11) C#, Java’da olmayan method pointerlar sunar. Delegate adı verilen bu yapı ile C# da, methodlar parametre olarak başka methodlara geçirilebiliyor. Delegateler, C# da event handling (olay yönetimi) ve callbackler için kullanılıyor.

12) C# da Java’da bulunan checked exception sistemi yoktur. C# sadece, çalışma zamanında yönetilen unchecked exception sistemini destekler.

13) C#, Java’da setter ve getter methodlar ile yapılabilen instance field işlemlerini Properties adı verilen bir mekanizma ile yapılmasını sağlar. Bu sayede ekstra getter setter methodlar yazılmasına gerek kalmıyor. //TODO

14) C#, Java’da bulunmayan ve indexer adı verilen bir yapı ile [] operatörünü overload ederek, sınıf örnekleri üzerinde array tarzı işlemler yapılabilmesini sağlar. //TODO

15) C# da, C/C++ da bulunan struct yapısı mevcut ve veri tipi olarak kullanılırken Java’da bu yapı bulunmuyor.

16) C# Exception tanımlamak ve yakalamak gibi bir zorunluluk yok. Java, ortaya çıkış felsefesi gereği (robust application) buna izin vermez.

17) Java’da C# da bulunan static class yapısı yoktur. Static sınıflar, instance field, instance constructor gibi yapılara izin vermez. Başka bir sınıf tarafından genişletilemez.

18) C# da iterasyon işlemini kolaylaştırmak için, Java’da bulunmayan yield adında bir anahtar sözcük bulunmaktadır. Ancak tam olarak ne işe yaradığını bilmiyorum. //TODO


« önceki Konuya git | sonraki Konuya git »

Şuan bu sayfada bulunan kişiler: 1 kişi (0 üye ve 1 ziyaretçi)
 
Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok
BB kodu Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Seçenekler
Stil



Tüm Zamanlar GMT +2 Olarak Ayarlanmış. Şuanki Zaman: 13:41.

Bize Yazin - Webmaster Forumu - Arşiv - Yukarı git
Powered by vBulletin™ Version 3.8.9 Beta 1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.
Telefon zil sesleri | Prezeci.com