180 likes | 668 Views
METOTLAR. Hazırlayan : Yrd. Doç. Dr. Barış GÖKÇE www.muhendislikegitimi.com. Metotlar. Java içerisinde aynı işlemi yapan bir veya birden fazla kod bulunduran bloklarıdır . Bir nesnenin veya sınıfın programı yürütmesi için kullandığı bir Java nesnesidir.
E N D
METOTLAR Hazırlayan : Yrd. Doç. Dr. Barış GÖKÇE www.muhendislikegitimi.com
Metotlar Java içerisinde aynı işlemi yapan bir veya birden fazla kod bulunduran bloklarıdır. Bir nesnenin veya sınıfın programı yürütmesi için kullandığı bir Java nesnesidir. Program içerisinde yürütülen kodlar bu metotlar içerisinde bulunur. Program yazarken belirli bir işi yapan kod bloğunu bir kaç kez kullanmak gerekebilir. Bunun için aynı kod bloğunu tekrar yazmak yerine bir metot olarak hazırlanır ve ihtiyaç duyulduğunda kullanılır. Böylece zamandan tasarruf sağlanır Diğer birçok dildeki fonksiyon kavramı ve işlevi ile aynıdır. http://www.muhendislikegitimi.com
Metotların yapısal olarak bir takım özellikleri vardır. Bunlar; Erişim seviyeleri Geriye değer döndürmesi Aldığı parametreler http://www.muhendislikegitimi.com
Erişim seviyeleri Public = public seviyesindeki bir metoda aynı sınıf içerisinden veya dışarıdaki sınıflardan erişmek ve değer almak mümkündür. Private = public seviyesinin tam tersi sınıf üyelerinin hiç biri bu seviyedeki bir metoda ulaşamaz. Örn. İşciler adındaki bir sınıf içerisinde maaş adında bir private bir metot tanımladınız bu metoda sınıf dışında erişmek mümkün değildir. Protected = Bu erişim seviyesi Public ve Private arasında orta seviye erişime sahip bir metottur. http://www.muhendislikegitimi.com
Metot kullanımında dikkat edilecekler… Programın başlangıç metodu olan Main metodunu iki kez kullanılamaz. Metod isimleri nümerik karakter ile başlamaz. Metod ismi büyük ve küçük harfe duyarlıdır. Metod isimlerinde boşluk kullanılmaz. Void kullanıldığı zaman geriye değer döndürmez. Metodların parametre bilgisi varsa eksiksiz girilmelidir. Bir metod bloğu içinde başka bir metod tanımı yapılamaz. Değer döndürmede return anahtar sözcüğü kullanılır. http://www.muhendislikegitimi.com
METOT TÜRLERİ Metotlar geriye (çağrıldığı yere) değer döndüren ve değer döndürmeyen metotlar olarak iki ayrılır. Geriye değer döndürmeyen metotlar bunlara void metotlar denilmektedir. Sadece bir işi yaptırmak için kullanılır. Geriye değer döndüren metotlarda bir veri tipinde çağrıldığı yere değer döndürür. http://www.muhendislikegitimi.com
Void Metotlar publicclass Metot1 { publicstaticvoid main(String[] args) { MesajGoster(); } privatestaticvoidMesajGoster() { System.out.println("Bu mesaj Metot içerisinden gösteriliyor"); } } Geri dönüş değeri olmayan metotlar “void” olarak tanımlanır. “void” tanımlı bir fonksiyon için “return” kullanılamaz. Eğer giriş parametresi yoksa parantez içi boş bırakılır. http://www.muhendislikegitimi.com
Değer Döndüren Metotlar publicclass Metot1 { publicstaticvoid main(String[] args) { System.out.println("Toplam: " + toplamsonuc()); } privatestaticdoubletoplamsonuc() { double a = 5; double b = 7; return a + b; } } Bu metotlar tanımlanırken void kullanılmaz ve bir veri tipi ile tanımlama yapılır http://www.muhendislikegitimi.com
publicclass Metot1 { publicstaticvoid main(String[] args) { System.out.println("En Buyuk Sayı: " + sonuc()); } privatestaticintsonuc() { int a = 5; int b = 6; int c = 3; intenb; if (a > b) enb = a; else enb = b; if (enb < c) enb = c; returnenb; } } http://www.muhendislikegitimi.com
Metotların Değer Alması Hem değer döndürmeyen (void) hem de değer döndüren metotlarlar farklı veri tiplerinden değişken üzerinden değer alırlar. Örneğin bir toplama işlemi metoduna klavyeden girilen sayıları değer olarak göndermek gerekiyor. http://www.muhendislikegitimi.com
Void Metotlar için Değer alma örneği • importjavax.swing.JOptionPane; • publicclass metot2 • { • publicstaticvoid main(String[] args) • { • int sayi1 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); • int sayi2 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); • sonuc(sayi1, sayi2); // bu iki değer sonuc metoduna gönderildi • } • privatestaticvoidsonuc(int a, int b) • { • intenb; • if (a > b) • enb = a; • else • enb = b; • System.out.println("En Büyük Sayı: " + enb); • } • } http://www.muhendislikegitimi.com
Değer döndüren Metotlar için Değer alma örneği importjavax.swing.JOptionPane; publicclass Metot1 { publicstaticvoid main(String[] args) { int sayi1 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); int sayi2 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); int sayi3 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); System.out.println("En Buyuk Sayı: " + sonuc(sayi1, sayi2, sayi3)); } privatestaticintsonuc(int a, int b, int c) { intenb; if (a > b) enb = a; else enb = b; if (enb < c) enb = c; returnenb; } } http://www.muhendislikegitimi.com
importjavax.swing.JOptionPane; publicclass metot2 { publicstaticvoid main(String[] args) { int sayi1 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); int sayi2 = Integer.valueOf(JOptionPane.showInputDialog("Birinci Sayıyı Girin")); String HT = String.valueOf(JOptionPane.showInputDialog("İşlem Tipini Girin T,C,B,X")); // Üçdeğerdiğermetodakarşılaştırmavematematikselişlemiçingönderildi System.out.println("Sonuc: " + sonuc(sayi1, sayi2, HT)); } privatestaticintsonuc(int a, int b, StringHesapTuru) { if (HesapTuru.equals("T")) return a + b; elseif (HesapTuru.equals("C")) return a - b; elseif (HesapTuru.equals("B")) return a / b; elseif (HesapTuru.equals("X")) return a * b; else return 0; } } http://www.muhendislikegitimi.com
C# Metot Overloading (Aşırı yükleme) Aynı metodun birden fazla versiyonun olmasıdır. Mesela toplama işlemini yapan birden fazla metodun olması. JAVA içerisinde birden fazla aynı metodu kullanmak için metot overloding (aşırı yükleme) yapısı vardır. http://www.muhendislikegitimi.com
publicclass metot3 { publicstaticvoid main(String[] args) { intsayilar[] = newint[]{3,14,35,46,57,88,91}; System.out.println(topla(2, 4)); System.out.println(topla(sayilar)); } publicstaticint topla(int i1, int i2) { return i1 + i2; } publicstaticint topla(int i1, int i2, int i3) { return i1 + i2 + i3 ; } publicstaticint topla(intdizideger[] ) { inttmp = 0; for(int s : dizideger) tmp+=s; returntmp; } } http://www.muhendislikegitimi.com
Sınırsız sayıda parametre alma Normal metot tanımlamadan belirlenen sayıda parametrelerle işlem yapılmaktadır. Bu kısıtlayıcı bir yöntemdir. Kullanıcının gönderdiği parametreler farklı olabilir. Yani kullanıcı belirsiz sayıda parametrelerle işlem yapmak isteyebilir. Bu durumlarda parantezin içerisine değişken dizi değişken olarak tanımlanır. Ör. publicstaticinttopla (int[] x) { // buraya dizi işlemi için kodlar gelir } http://www.muhendislikegitimi.com
publicclass metot4 { publicstaticvoid main(String[] args) { String isimler[] = newString[]{"Barış","Ali","Veli","Başar","Hasan"}; isim(isimler); } publicstaticvoid isim(String[] isimlerdizisi) { for(String adlar : isimlerdizisi) Yazdir(adlar); } publicstaticvoidYazdir(String isim) { System.out.println(isim); } } http://www.muhendislikegitimi.com
TEŞEKKÜRLERhttp://www.muhendislikegitimi.com http://www.muhendislikegitimi.com