Java ogrenmeye calısıyorum. Ayrıntı sorularda kendisine danışabilecegim detaycı bir arkadaş var mı?
Ornek soru: C dili le programlama yaparken "int main (void) {...}" şeklinde programımızı yazıyoruz. Javadaysa bu main fonksiyonumuz bir class ın içinde tanımlanıyor. Bu durum bana garip geliyor. Javada aslında main fonksiyon yerine main bir class var ve main fonksiyon dediğimiz şey de bu main class içindeki en kapsamlı/üst fonksiyon mu?
Ornek soru 2: C dili ile programlama yaparken "int main (void) {...}" yazıyoruz. Bu demek ki main fonksiyonumuz input almayacak (void olduğu için) ve integer return edecek. Peki "int main(int argc, char *argv[])" ne anlama geliyor? Integer ve karakter (string?) input edecek ama nereden edecek? Galiba komut isteminden (linuxta terminal) programı çalıştırıken girilen parametreleri algılamak için boyle yazıyoruz. Peki bu main fonkiyonu ikinci bir main fonksiyon ile çağırıp int ve char parametlerini bu ikinci main fonksiyondan almak mumkun mu?
Ornek soru 3: Constructor denilen şeye ne gerek var? Zaten fonksiyon tanımladığımızda ne iş yapmasını istediğimiz belli değil mi? Compiler bu constructor ı neden otomatikman tanımlamıyor? Syntax'ta constructor ın gorulmesinin sebebi ne?
Şimdiden teşekkurler.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Son paragafla ilg olarak: Bir pakette (Java package) onlarca sınıf ve her bir sınıfa ait (sembolik rakam olarak) 100 metod ve (sembolik rakam) 30 değişken (Java'daki ifadesiyle 'field') varsa o 100 metod ve değişkeni akılda kimse tutmaz, sadecehttps://docs.oracle.com/javase/7/docs/api/ 'de o uygulamada kullanılabilecek sınıflara ve içeriğine bakar ve uygun bir sınıfı projeye dahil edip (=import) IDE'nin onları otomatik olarak getirmesini sağlayıp uygun metodları kullanır.
Örneğin Internetteki sayfaları çekip konsola yazdıran bir HTTP istemcisi yapacağım diyelim, java.net paketindeki HttpURLConnection sınıfını import ederim, sayfayı çekmeden önce sayfa var mı yok mu kontrol için
if ( urlConnection.getResponseCode(); == HttpURLConnection.HTTP_OK)
{
System.out.println("sayfa var");
// etc etc...}
tarzında birşeyler yazarım, oradaki getResponseCode metodu ve HTTP_OK değişkenini aklımda tutamam, duruma göre tahmin ederim yani Oracle docs'taki başlıklara göre veya IDE'min getirdiği seçenekler arasından uygun olan bir tanesini seçer ve öyle devam ederim, vs. vs..
Evet Jar compressed edilmis bir dosya turu. API, programlanabilir herhangi bir komponentin arayuzu. Yani Java arabaysa, direksyon, kontak, el freni vs API. Programlayabildigin herhangi bir seyin sana bakan yuzu. Arka planda ne oldugunu encapsule etmek icin. Jar ile hic bir alakasi yok.https://docs.oracle.com/javase/7/docs/api/ --> Java 7 API 'si mesela. Class 'lar ve metodlarin ne yaptigi, nasil cagrildigi burada dokumente edilmis. Herhangi bir programlama dili ogrenirken en degerli sey bu kisim.
Primitive type'lari obje haline getirebilirsin. Buna autoboxing deniliyor. Tam tersi islem de unboxing. Ornegin:
int x = 9; Integer y = x;
Su durumda compilera, y Objesini primitif bir tipe esitlemesini soyledin. Arka planda JVM autoboxing yapar.
Her seyin bir object olmasi bir programlama yaklasimi. Makine kodu seviyesine indikten sonra zaten ortada obje mobje kalmaz : ) Registerlar, instructionlar vs.
Java'da primitif data tiplerinin bulunmasi tercihini muhtemelen performans kaygisi ile yaptilar. Zira ayni datanin primitif hali daha az memory tuketir, surekli "autobox" , "unbox" yaparsan program yavaslar. Bunlar tabi dikkate alinacak yavasliklar degil ama boyle bir tercih yapmalarinin sebebi bu olabilir. Bilmiyorum acikcasi, tahmin yurutuyorum.
Birden fazla main metodu varsa derleyiciye degil, jar'i olusturacak olan "build" komutuna soyluyorsun. Derleyici icin degisen bir sey yok. Command Line'dan derleme icin javac,jar build etmek icin de "jar" komutu kullaniliyor. Main class ile ilgilenen kisim "jar" komutu. "javac" icin bu bilgi bir sey ifade etmiyor. Onun olayi baska.
Ornek soru:
C dili le programlama yaparken "int main (void) {...}" şeklinde programımızı yazıyoruz. Javadaysa bu main fonksiyonumuz bir class ın içinde tanımlanıyor. Bu durum bana garip geliyor. Javada aslında main fonksiyon yerine main bir class var ve main fonksiyon dediğimiz şey de bu main class içindeki en kapsamlı/üst fonksiyon mu?
Ornek soru 2:
C dili ile programlama yaparken "int main (void) {...}" yazıyoruz. Bu demek ki main fonksiyonumuz input almayacak (void olduğu için) ve integer return edecek. Peki "int main(int argc, char *argv[])" ne anlama geliyor? Integer ve karakter (string?) input edecek ama nereden edecek? Galiba komut isteminden (linuxta terminal) programı çalıştırıken girilen parametreleri algılamak için boyle yazıyoruz. Peki bu main fonkiyonu ikinci bir main fonksiyon ile çağırıp int ve char parametlerini bu ikinci main fonksiyondan almak mumkun mu?
Ornek soru 3:
Constructor denilen şeye ne gerek var? Zaten fonksiyon tanımladığımızda ne iş yapmasını istediğimiz belli değil mi? Compiler bu constructor ı neden otomatikman tanımlamıyor? Syntax'ta constructor ın gorulmesinin sebebi ne?
Şimdiden teşekkurler.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Guest-288644A72 -- 8 Ocak 2018; 4:57:41 >