Kayıt Ol

Giriş

Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Giriş

Kayıt Ol

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu. Fusce viverra neque at purus laoreet consequa. Vivamus vulputate posuere nisl quis consequat.

Temel Java Dersleri – Metot Yapısı 2 ve Main Metot

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Temel Java Dersleri serimize bu dersimizde , bir önceki metot dersinin devamı niteliğinde ve  o derse ek bilgilerek vererek devam ediyoruz. Bu dersimizde metot yapısının yanı sıra java main metot‘dan da bahsedeceğiz.

Bir önceki dersimizde metotların nasıl tanımlandığını, nasıl çağırıldığını , parametre dönen ve parametere dönmeyen(void) metotlardan ek olarakta overload metotlardan bahsettik. Bu dersimde hem önceki derslere örnek vererek hemde main metottan bahsederek devam edeceğim.

Main Metot

Biliyorsunuz ki, main metotu ilk dersimizden bu yana kullanıyoruz ve ilk derslerimizde ilerleyen derslerde bahsedeceğimizi söylemiştik. İşte o bahsedeceğimiz ders bu ders:) Öncelikle main metot nasıl tanımlanır onu gösterelim.

Bir java programının başlatılabilmesi için main metot olması şarttır. Bir önceki dersimizde bir metot’u nasıl çağırıcağımızı göstermiştik. Bir metotu çağırarak o metotu başlatmış oluyoruz ve içinde gerekli işlemleri yapıyoruz. Main metotta aynı mantık. Java programının başlaması ve işlemleri yapması için JVM (Java Virtual Machine) tarafından çağırılır main metot. JVM hakkında bilgi edinmek için tıklayınız. Basitçe şöyle anlatabiliriz, siz bir java uygulamasını bilgisayarınızda başlatmak için çift tıkladınız, işte bu anda JVM programınızı başlatmak için yazmış olduğunuz kodlarınız arasından main metotu çağırır ve programınızı main metottan başlatır. İşte bundan dolayı bir programda sadece bir main metot olabilir.Birden fazla olması durumunda JVM hangisini çağıracağını bilemeyeceği için compile error verir kodlarınız ve derlenemez.

Main metot her zaman public static modifier’ı ile başlar ve bir parametre geri dönmez. Dolayısıyla void metottur. Metotun adı main‘dir Parametre olarakta String tipinde array alır.

Not : Arrayleri  ve modifier’ları (public,private,protected,static ..) ilerleyen derslerimizde öğreneceğiz.

Metot Yapısı

Yukarıda da belirttiğim gibi metotlarla ilgili bir önceki dersimizde temel kullanımlar anlatıldı. Ben bu dersimde bir iki örnek daha verip hem konuyu pekiştirmiş olacağım hemde overload metotlarda bir kaç özellikten bahsedeceğim.

Metotlar dönüş tiplerine göre ikiye ayrılıyordu. Parametre dönenler ve parametre dönmeyen(void) metotlar . Metot tanımlaması yaparken bunuda(paramtre dönecekse tipini, dönmeyecekse void) tanımlıyoruz. Aşağıda parametre dönmeyen(void) metota örnek veriyorum.

Yukarıdaki metot tanımlaması void metota örnektir. Void olan bir metot geriye bir değer dönmemektedir.

Aşağıdaki örnek ise void olmayan yani geriye bir parametre dönen metota örnektir.

Yukarıdaki metotta ise return komutu ile geriye String değer dönülmektedir. Zaten metot tanımlaması yaparkende geriye String değer döneceği bilgisini veriyoruz.  Bu  metot geriye herhangi bir değer dönmezse veya String dışında bir veri geriye döndürürse kodumuz  hata verecektir.

Return komutunu kullanırken dikkat edeceğimiz bir husus ise eğer return komutunu if yapısı içinde kullanıyorsak , kesinlikle else ‘de ekleyip return komutunu else’de eklememeiz gerekmektedir. Aşağıda yanlış bir kullanımı göstereceğim.

Yukarıdaki kod yanlış bir kullanımdır ve hata verecektir. Çünkü  return komutuna erişemeyebilir ve geriye bir değer dönemez. Böyle bir durumda zaten kullandığımız ide bizi uyaracaktır ve kodun en sonuna return eklememizi isteyecektir. Yukarıdaki kodun doğru kullanımı şu şekildedir ve hata vermeyecektir.

Çünkü her durumda return komutu çalışacaktır.

Ek olarak şundan bahsetmek istiyorum. Return komutu sadece parametre dönen metotlarda değil void metotlarda da kullanılabilir. Nasıl olacak o iş ve ne işimize yarayacak dediğinizi duyar gibiyim 🙂 Kısaca şöyle anlatayım. Bir metotunuz var ve belli işlemler yapıyor. Ama siz belli koşullarda artık metottan çıkılmasını istiyorsunuz. Bu durumda aynı döngülerden break komutu ile çıktığımız gibi metotlardan da return komutu ile çıkabiliriz

Örneğin:

Overload metotların ne olduğunu bir önceki dersimizde bahsetmiştik. Overloading olayı javanın bize sunduğu güzelliklerden birisi. Aynı metot adı ile farklı parametreler ile aynı işlemi yapacak metotları çağırabiliriz. Örneğin toplama işlemi yapan bir metotumuz var . Adı da topla metotu olsun. Bu metotu hem int, hem double parametre alacak şekilde set edelim.

Biz topla(3,4) (int değer döneni çağırır) veya topla(3.0 , 4.0)(double değer döneni çağırır) şeklinde metotları çağırdığımızda hangi metotun çağırılcağına compiler karar vermekte ve uygun olan metotu çağırmaktadır. Mesala topla(3 , 4.0) şeklinde çağırdığımızda metotu double değer dönen metot çağırılacak ve 3 değeri otomatik olarak 3.0 değerine döndürülecektir.

Sayalım ki elimizde aşağıdaki gibi iki metot bulunmakta.

Yukarıdaki metotlardan ilkini topla(3 , 4.0) seklinde ikincisini ise topla(3.0 , 4) şeklinde çağırabiliriz. Peki topla(3 , 4) şeklinde çağırsak topla metotunu hangisini çağıracak compiler ? İşte burada compiler hangisini seçeceğine karar veremiyeceği için error verecektir. Bu nedenle overloading yaparken metotları compiler’ın karar veremeyeceği durumları iyi düşünerek parametre seçimleri dikkatli yapılmalıdır.

Son olarak şu unutulmamalıdır ki bir metota gönderdiğimiz argümentler (javada metota gönderilen parametreler argüment olarak adlandırılır) değerleri metotta hangi işlem yapılırsa yapılsın değişmeyecektir.Ne demek istediğimi aşağıdaki kodda anlayacaksınız.

Çıktısı:

Gördüğünüz gibi gönderdiğimiz argümentler metotta farklı işlemlerede girse değerleri değişmedi çünkü metot’un içindeki x, y yeni değişkenler oluyor ve metot çağrılırken gönderilen parametrelerle ilgisi bulunmuyor.

Arkadaşlar bu dersimde anlatmak istediklerim bu kadar. Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Temel Java Dersleri için tıklayınız..

Yazar Hakkında

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı, Anti Fenerbahçeli, Koyu Galatasaraylı