İlginizi Çekebilir
Java'da Metotları Tanıyoruz
  1. Ana Sayfa
  2. Java
  3. Java’da Metotlar

Java’da Metotlar

Kullanmayı en çok sevdiğim kod dizisi metotlardan oluşmaktadır diyebilirim. Java’da Metotlar kavramını anlatırken ne işe yaradıklarına, nasıl tanımlayabileceğimize, metot türlerine, erişim seviyelerine ve oluştururken dikkat etmemiz gereken konulara birlikte değinmiş olacağız.

Java’da Metotlar Nedir?

Metotlar, programız içerisinde ayrılmış küçük parçacıklar olarak adlandırılabilir. Java’da metotlar aynı işlemi yapan kod blokları olarak tanımlanır. Oluşturacağımız program içerisinde bir kod bloğunu birkaç kez farklı yerlerde kullanmamız gerekebilir bu durumlarda metotlardan faydalanılır. Yapmasını istediğimiz işlemlerden herhangi bir değer döndürmesini veya doğrudan bu işlemleri gerçekleştirip bitmesini isteyebiliriz. Örneğin kullanıcıdan alacağımız değerlerin önce karesinin alınmasını, daha sonra ise ekrana çıktı vermesini isteyelim. Bu işlemleri metotlar aracılığı ile daha kolay ve düzenli bir şekilde yapabiliriz. Diğer programlama dillerine aşinalığı olan kişiler Java’da metotlar kavramını fonksiyonlar gibi düşünebilir.

Java’da Metot Oluşturma

Java’da metotlar oluşturulurken dikkat alacağımız bir formül yapısı var bu formül: Erişim seviyesi + Dönüş tipi + Metot adı ve oluşturacağımız metot türüne göre son olarak parametre eklenebilir.

  • Dönüş Tipi: Yazdığımız metot üzerinde dönecek değerin tipidir. Bu alana String, int, double, Object gibi tipler gelebilir. Oluşturacağımız metot yapısal olarak geriye bir değer döndürmüyorsa, void olarak tanımlanmalıdır.
  • Parametre Listesi: Parametre alan metotlar başlığı altında detaylı bir şekilde anlatımını gerçekleştireceğim. Şimdilik bir metoda, kullanması için gönderdiğimiz değerler olarak bilseniz yeterli olacaktır.

Bu formül içerisinde en önemli olan ve aslında sürekli program oluştururken uğraşacağımız husus erişim seviyesidir. Bu erişim seviyelerini daha kolay anlayabilmek için aşağıdaki başlık içerisinde görsel bir anlatım yolu izleyeceğim.

Metotlar’da Erişim Seviyesi Nedir?

Java’da metotlar tanımlanırken programımızın güvenliği için bazı önlemler almamız gerekebilir. Erişim seviyeleri üç alt başlık içerisinde incelenir.

Programlama dillerinde metotlar
Java Metotlar’da Erişim Seviyesi
  • Public: Erişim seviyesi “public” olarak belirlenmiş bir metot, aynı sınıf içerisinde veya dışarıdan erişimde bulunmanın en kolay olduğu erişim seviyesine sahip olan metottur.
  • Private: Private erişim seviyesine sahip olan bir metot içerisinde bulunan herhangi bir veriye dışarıdan erişime kapatır. Örneğin private olarak belirlenen veri tabanı giriş bilgilerimiz, o sınıf dışarısında herhangi bir başka yer içerisinde değiştirilemez ve ulaşılamaz.
  • Protected: Public ve Private erişim seviyeleri arasında bir erişim seviyesine sahiptir.

Metot Oluştururken Dikkat Etmemiz Gerekenler

Programlama dilleri, genel olarak kompleks belli kuralları olan dillerdir. O yüzden Java’da Metotlar tanımlanırken uymamız gereken bazı konular vardır bunlar:

  • Tanımlayacağımız metotlara isim verirken sayı ile başlamamalıyız.
  • Java, Case Sensitive bir dildir. Bu yüzden metot isimleri büyük/küçük harf duyarlılığına sahiptir.
  • Bir metot içerisinde başka bir metot oluşturulamaz.
  • Metot isimlerini tanımlarken boşluk veya bazı semboller, karakterler kullanılmaz.
  • Program içerisinde bulunan Main metodu iki kez kullanılmaz.

Metot Türleri

Metot türlerini işlerken alt başlıklar halinde tanımlamasını gerçekleştireceğim. Bu tanımlamalar size teorik bilgi kazandırırken, vereceğim örnekler sayesinde pratik kullanım şekillerini de öğrenmiş olacaksınız.

Java'da Metot Türleri
Metot Türleri

Parametresiz Metotlar

Java’da parametresiz metotlar, herhangi bir parametre değerine bağlı kalmadan bir kod bloğunu çalıştıran metot türleridir. Bu metot türlerini metni ekrana yazdırmak, bir değer döndürmesini istemek ve birçok işlemi gerçekleştirmesi için kullanabiliriz.

Geriye Değer Döndüren Metotlar

Oluşturduğumuz veri tipinde bir değeri geri döndüren metot türleridir. Bu metot türü için örneğimizde önceden değerlerin tanımlı olduğu bir hesap makinesinin toplama fonksiyonunu oluşturmamız bizden istensin. Bu isteği yerine getirebilmek için yazmamız gereken kod dizisi şu şekildedir:

public class Main {
    public static void main(String[] args) {
        System.out.println("- Toplama Metodu Çağırıldı.\n- İşlem Sonucu: "+toplama());
    }
    // Metot Tanımlaması:
    public static int toplama(){
        // Değişken Tanımlaması:
        int x=23;
        int y=624;
        // Geriye Değer Döndürme:
        return x+y;
    }
}

Kod Çıktısı:

Java'da Parametresiz geriye değer döndüren metotlar
Parametresiz geriye değer döndüren metot örneği

Oluşturduğumuz metot int türünde geriye değer döndüren parametresiz metottur. Bu metot içerisinde x ve y isminde int türünde değerler bulunmakta, bu değişkenlerde tanımlı değerleri return x+y; komut satırı ile geriye değer döndürerek ekranımıza yazdırma işlemini gerçekleştiriyoruz.

Veri tipleri konusunda bir bilginiz yoksa Java’da veri tipleri içeriğime göz atmanızı öneririm.

Geriye Değer Döndürmeyen Metotlar

Java’da geriye değer döndürmeyen metot türleri, void metotlar olarak da bilinirler. Geriye değer döndürmeyen metotlarımız için içerisinde return komutu kullanmayız.
Bu metot örneği için programımız içerisinde, internet site adresimizi birçok kez yazmak yerine bir metot aracılığı ile yazdırmak istiyor olalım. Bunun için yazacağımız kod ise şu şekilde olacaktır:

public class Main {
    public static void main(String[] args) {
        kisiselSitem(); // Metodumuzu çağırdık.
    }
    // Metot Tanımlaması:
    public static void kisiselSitem(){
        System.out.println("Web Site Adresim: www.emrecelen.com.tr");
    }
}

Bu işlem sonucunda kisiselSitem(); koyacağım her kısımda ekranıma metot içerisinde tanımladığım yazı yazacak. Bu örneğimizi parametre alan geriye değer döndürmeyen metot örneğimiz içerisinde biraz daha farklı kullanacağız.

Parametreli Metotlar

Java’da parametreli metotlar, kullanılması için bir metoda değer gönderdiğimiz zaman, bu metot içerisinde parametrenin kullanılarak kod dizilerinin çalıştırılmasını sağlayan metot türüne denir.

Geriye Değer Döndüren Parametreli Metotlar

Java’da geriye değer döndüren parametreli metotlar, oluşturduğumuz veri tipinde verilen parametreleri işleyerek geriye değer döndüren metot türleridir. Bunun için vereceğimiz örnekte, kullanıcıdan talep edeceğimiz iki adet verinin toplama işlemini gerçekleştirelim.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Değişken Tanımlaması:
        int a,b;
        System.out.print("---------\nİlk Değeri Girin: ");
        a=scanner.nextInt();
        System.out.print("İkinci Değeri Girin: ");
        b=scanner.nextInt();
        System.out.println("---------\n"+a+" + "+b+" = "+toplama(a,b));
    }
    // Metot Tanımlaması:
    public static int toplama(int x,int y){
        return x+y;
    }
}

Kod Çıktısı:

Java'da parametreli geriye değer döndüren metot örneği
Parametreli geriye değer döndüren metot örneği

Bu örnek üzerinde kullanıcıdan iki adet int türünde veri alıyoruz, aldığımız bu verileri toplama(int x, int y) metot içerisinde gerekli işlemlere tabi tutuyor ve ekranımıza sonucu yazdırıyoruz.

Geriye Değer Döndürmeyen Parametreli Metotlar

Parametre almayan metot örneğinde ekrana sabit bir yazı girişinde bulunmuştuk. Biz bu örneğimizi, biraz daha işlevsel hale getirelim ve programımıza giriş yapan kullanıcının bilgisine göre “Hoş geldin + degişken” şeklinde bize çıktı göstersin isteyelim. Bunun için yazmamız gereken kod satırı:

public class Main {
    public static void main(String[] args) {
        merhaba("Emre");
    }
    // Metot Tanımlaması:
    public static void merhaba(String isim){
        System.out.println("Merhaba "+isim+"! Hoş geldin.");
    }
}

Yazdığımız bu kod sayesinde parametreye atayacağımız her kullanıcı ismine göre sistem giriş ekranında “Merhaba ‘isim’! Hoş geldin.” şeklinde bir çıktı verecek.

Bu zamana kadar gördüğümüz tüm konuları hatırlamak adına güzel bir örnek kod oluşturalım. Oluşturacağım bu kod dizisinde kullanıcıdan alacağımız iki sayı ile dört işlem gerçekleştirme olsun.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // Değişken Tanımlaması:
        double ilkdeger,ikincideger;
        String islem;
        System.out.println("İki Sayı ile Dört İşlem\n----------\n1- Toplama İşlemi (+)\n2- Çıkartma İşlemi (-)\n3- Çarpma İşlemi (*)\n4- Bölme İşlemi (/)\n----------");
        System.out.print("İşlem Yapılacak İlk Değer: ");
        ilkdeger=scanner.nextDouble();
        System.out.print("İşlem Yapılacak İkinci Değer: ");
        ikincideger=scanner.nextDouble();
        System.out.print("----------\nYapacağınız İşlem: ");
        islem=scanner.next();
        System.out.println("----------\nİşlem Sonucu: "+hesapmakinesi(ilkdeger,ikincideger,islem));
    }
    // Metot Tanımlaması:
    public static double hesapmakinesi(double a, double b,String karar){
        if(karar.equals("+")||karar.equals("1")){
            return a+b;
        }
        else if(karar.equals("-")||karar.equals("2")){
            return a-b;
        }
        else if(karar.equals("*")|| karar.equals("3")){
            return a*b;
        }
        else if(karar.equals("/")|| karar.equals("4")){
            return a/b;
        }
        else{
            return 0;
        }
    }
}

Kod Çıktısı:

Java'da Metot Örnek Kod Çıktısı
Metotlar hakkında örnek kod çıktısı

#1 İlk aşama için üç adet değişken tanımlamasını gerçekleştirdim ve klavyeden değer alabilmek için Scanner sınıfını ekledim.
#2İkinci aşamada kullanıcıyı yönlendirmek için gerekli menü yazılarını oluşturdum ve kullanıcıdan değişkenlerimize gerekli veri girişini yapması için kod dizilerini oluşturdum.
#3 Son aşama olarak metot tanımlamasını gerçekleştirdim. Oluşturduğum metot double türünde geriye değer döndüren parametreli bir metot. Bu metot içerisinde tanımlı karar parametresi ile if-else kontrol yapısına girerek hesaplama işlemlerini gerçekleştiriyor.

Metotlarda Aşırı Yükleme (Overloading)

Her bir metot yapısı farklı görevler üstlenir ve üstlendiği göreve göre metotlarımızı isimlendirebiliriz. Fakat farklı işlevlere sahip aynı isime sahip metot tanımlamak isteyebiliriz bu durumda overloading yapmamız gerekir. Overloading yaptığımızda var olan bir metot için birden fazla versiyonunu oluşturabiliriz.

Metotlarda aşırı yükleme için vereceğim örnekte, topla isminde 3 adet metot tanımlayarak metot içerisine tanımlayacağımız parametrelerin hesaplama işlemini gerçekleştirmeyi amaçlayalım. Bu kod dizisini şu şekilde yazarız:

public class Main {
    public static void main(String[] args) {
        //Değişken Tanımlaması:
        int a= 15, b=30,c,d;
        c=topla(a,b);
        d=topla(a,b,c,c);
        System.out.println("1. Metot İşlem Sonucu: "+topla(a,b)+"\n2. Metot İşlem Sonucu: "+ topla(a,b,c)+"\n3. Metot İşlem Sonucu: "+topla(a,b,c,d));
    }
    // Metot Tanımlaması:
    public static int topla(int a,int b){
        return a+b;
    }
    public static int topla(int a,int b,int c){
        return a+b+c;
    }
    public static int topla(int a,int b,int c, int d){
        return a+b+c+d;
    }
}

Kod Çıktısı:

Java'da overloading metot örneği
Overloading hakkında kod çıktısı

Java’da Overloading metot örneğimizde “topla” isminde üç adet int veri tipinde metot oluşturmuş oldum. Bu metotların birbirinden tek farkı aldıkları parametreler. İlk metodumuz toplam iki adet parametre alırken son metodumuz 4 farklı parametre almaktadır. Overloading kavramını nesneye yönelik programlama projelerimizde sıklıkla telaffuz ederek kullanacağız.

Java’da Metotlar konumuzun sonuna gelirken her zaman olduğu gibi aklınıza takılan bir soru olursa veya konu işleyişim hakkında daha çok yönelmem gereken bir öneride bulunmak için aşağıda bulunan “yorum yap” kısmından benimle iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap

Yorumlar (1)

  1. Kaç yerden okudum bilmiyorum ama sadece burda anladım, teşekkür ederim

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir