java'da erişim belirteçleri kapsam alanlarına göre büyükten küçüğe şöyle sıralanıyor;

public > protected > friendly > private

friendly hiç birşey koymayınca varsayılan olarak tanımlanıyor.

Bir class'a sadece public ve friendly(yani default)erişim belirteci tanımlayabiliyoruz. Ama protected friendlyden daha kapsamlı onu neden kullanamıyoruz? Mantıken friendly kullanıyorsak ondan daha kapsamlı olan protectedi da kullanabilmemiz gerekmez mi?

   public class A ; doğru

protected class A; yanlış

          class A;  doğru

  private class A; yanlış

soruldu: 11 Tem '12, 14:49

transist%C3%B6r's gravatar image

transistör
16224
cevap kabul oranı: 0%

değiştirildi: 11 Tem '12, 15:18

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Neden bir sinifin protected olmasini isterdiniz? Paket disinda baska bir sinif tarafindan görülemesin, sadece genisleten siniflar protected ve public metotlari görebilsinler diye degil mi? Bunu zaten package private, yani friendly ile elde ediyorsunuz. Bu yüzden protected class A; seklinde bir tanimlamanin bir anlami kalmiyor, class A yazmaniz yeterli. Bunun yanisira private class A; mümkün olsaydi, bu sinifi diger siniflar göremezlerdi. Kimsenin göremedigi ve kullanamadigi bir sinifin kime faydasi olur?

Bir sinif bünyesinde (inner class) tüm erisim belirteclerini kullanarak sinif tanimlayabilirsiniz.

permanent link

cevaplandı: 11 Tem '12, 15:17

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×1
×1
×1
×1

Soruldu: 11 Tem '12, 14:49

Görüntüleme: 1,020 kez

Son güncelleme: 11 Tem '12, 15:18

powered by BitNami OSQA