20 Mayıs 2011 Cuma

Java'daki final keyword'ü ve C#'taki karşılığı?

Arkadaşlar merhaba, çok kısa ama sanırım bir o kadar da yararlı bir yazı olacak. Java'da final keyword'ünün nerelerde kullanıldığına ve C#'taki karşılığına dair bilgi paylaşacağım. Beni bu yazıyı yazmama, çevremde tanık olduğum, final keyword'ü ile ilgili kavram karmaşasında kalmış arkadaşlar yöneltti. Peki nedir bu final keyword'ü ve herşeyden önemlisi ne işe yarar? Çok basitçe hemen açıklayalım.

Öncelikle .NETçiler için belirteyim, daha sonra iki tarafa da yabancı olan arkadaşlar için açıklamayı genişletebiliriz.

1. Java'da method ve classlar'da kullanılan final'ın C#'taki karşılığı sealed keyword'üdür.
2. Java'da fieldlarda kullanılan final'ın C#'taki karşılığı ise const (constant) veya readonly keywordleridir.

final veya sealed, bir method için belirtilmiş ise o methodun override edilmesini (ezilmesini), bir class için belirtilmişse başka bir class tarafından extend edilmesini (türetilmesini) engeller arkadaşlar. Bu kadar basit. Field'la beraber kullanıldığında ise o değişkenin değeri asla değiştirilemez, sabit kalır.

classlarda
java: public final class sampleClass{}
c#:   public sealed class sampleClass{}

methodlarda
java: public final void sampleMethod(){}
c#:   public sealed void sampleMethod(){}

fieldlarda
java: public final string name="Mustafa Güven" //asla başka bir değer ile değiştirilemez
c#:   public const string name="Mustafa Güven" //

1 yorum:

  1. Bir çok sitede araştırdım ve kafamın daha çok karışmasına sebep oldu. Fakat burada çok kısa ve öz bir şekilde açıklanmış. Teşekkürler gerçekten çok açıklayıcı bir makale.

    YanıtlaSil