Hocam şurada güzel açıklamışlar: http://stackoverflow.com/questions/187453/import-package-vs-import-package-specifictype Kısaca bir performans kaybı olmamakla beraber bağımlılıkların daha net ve temiz grünmesi için tek tek import edilmesi tercih ediliyor. Aynı isimdeki classların farklı packagelerde olmasını rnek vermiş birisi ki durumu açıklayan güzel bir rnek bence. Lightsaber tarafından 26/Ağu/16 23:10 tarihinde düzenlenmiştir İnsan; insan olsaydı, insan olmazdı..

Hepinize ayrı ayrı teşekkür ediyorum beyler. Çok sağolun. Yanış biliyormuşum. Ben performansı etkiliyor diye biliyordum. Ama etkilemiyormuş. En büyük nedeni okunabilirlikmiş. Sonra da programın boyutu... Tekrar sağolun.

Aslında soracağım soru biraz sınıflarla ilgili. Package/Namespace olayı aynı mantıkla çalışıyor diye biliyorum. O yüzden onu sormuyorum. Java 'da kullanacağımız her bir sınıfı içeri alıyoruz. import java. util. ArrayList; import java. util. LinkedList; import java. util. Vector; Tek tek sınıf isimleri yazılmayıp, util 'den sonra ' ' koysakta Java tarafında nerilmiyor bu. Gereksiz yükleme yaptığı için. C# ise using System. Collections; yazıp bırakırız. Her sınıfı tek tek içeri almayız. Şimdi bu durumda C# tüm sınıfları içeri aldığından performans kaybı olmuyor mu? C# nasıl performans kaybetmeden ynetiyor bunu? Veya Java neden C# şeklinde güncellemiyor kendini. Her sınıfı tek tek almak amelelik değil mi? Bu durumun hikmeti nedir? Mod not. Kodların düzgün grüntülenmesi için etiketler değiştirildi.

Sınıfları ekleme şeklin direk olarak verimlilik ile doğrudan bağlantılı değil. Sonuç olarak tüm dillerde yazılan kodlar binary ve sonrasında assembly, sonunda 1 ve 0 lara dnüşüyor. Java'da kullanılan sistemin nerilmesinin nedeni şu, eklediğin her sınıfa ait binary oluşturulan projeye eklenir. Dolayısıyla eğer tüm sınıfı eklersen kullanmadığın binary kısımda projene eklenmiş olacaktır. Ufak çaplı projelerde tümünü eklemek çok problem yaratmayacaktır. Ancak profesyonel bir yazılım geliştiriyorken, sadece kullanacağın sınıfları eklemek gerekmektedir. Aksi takdirde oluşan çalıştırılabilir uygulamanın boyutu gereksiz yere büyüyecektir. Vir sapit qui pauca loquitur.

Java bilmiyorum. Syleyeceklerim c# için geçerlidir. Hocam ncelikle sen c# ile uygulama geliştirirken using System. Collections; dediğin zaman sınıfı içeri alma gibi bir durum olmuyor. Farklı firmalar yada kişiler aynı projede çalışırken sınıf isimleri çakışmasın diye c# dilinde isim alanları diye bir kavram var. Ve ayrıca isim arama diye bir konuda var, buda kendi içinde nitelikli isim arama ve niteliksiz isim arama olarak 2 ye ayrılır. Sen bir sınıf türünden bildirim yaptığın zaman yani Sample x; dediğin zaman derleyici burda x değişkenini aramaz ancak Sample sınıfını arayıp bulmak zorundadır. Bildirilen isimler aranmaz, kullanılan isimler aranır. Sen burda kodun tepesine using direktifi ile isim alanını yazdığın zaman derleyici acaba bu Sample sınıfı yukardaki isim alanlarından birinde mi diye bakar. Bulursa sorun yoktur. İsim alanları mantıksal kavramlardır, soyutlardır. Fiziksel olan seyler. dll uzantılı dinamik kütüphane dosyalarımızdır. . Net yazdığı tüm kodlar için en tepede System isim alanını kullanmıştır. Sen kendi projene bi isim vereceğin için. net te olan bir sınıf adını kullansan bile derleyici. netteki sınıfı System. Sınıfadı olarak degerlendırır. Senın projende ise bu Projeadin. Sınıfadın dır. Performans ile using direktiflerinin bir alakası yok yani hocam bunlar sadece programın derleme aşamasına ilişkin kavramlar. İstersen kullanmayacağın 100 tane using yaz kodun tepesine. Farklı isim alanlarında bulunan sınıflar fiziksel olarak aynı. dll içinde bulunabilir. Pek çok. net sınıfı System. Core isimli dll de bulunur ama bunların çoğunun ait olduğu namespaceler farklıdır. zetle isim alanlarının performansa etkisi olmaz, isim arama da kullanılır ve mantıksal kavramlardır. Soyuttur. Konu uzun ama zet geçmeye çalıştım. Hannibal_King tarafından 27/Ağu/16 14:50 tarihinde düzenlenmiştir