13 Aralık 2014 Cumartesi

Overload

       S.a. Arkadaşlar,            
       Bugün overload konusunu ele almaya çalışacağız. Overload aynı sınıf veya bir alt sınıftaki metodların farklı sayıdaki değişken ve/veya türünü alarak hangi metodun çağırılacağına derleyici tarafında cevap verilmesidir. Dediğimiz gibi burada değişken sayısı veya değişken türü farklı olmak zorundadır. Fakat kalıtım içermeyen sınıflarda geçerlidir. Buna dikkat etmemiz lazım. Burada daha fazla söyleyecek bir şey yok gibi fakat örnek üzerinden daha güzel anlaşılır. Şimdi örneğimize geçelim.
public class Toplam {

 public class Toplam {

public static void main(String[] args) {
Toplam toplam= new Toplam();
System.out.println(toplam.topla(10, 20));    // int 2 parametre
                System.out.println(toplam.topla(10, 20,30));  // int 3 parametre
System.out.println(toplam.topla(5.5, 20));  //double 
System.out.println(toplam.topla("overload"," java"));  //String
//System.out.println(toplam.topla()); //yanlış tanımlama !!
                toplam.topla(); // void tanımla yaptığımız için böyle çağırmalıyız
                
}
        // int döndürecek 2 parametre tanımladık
public int topla(int a, int b) { 
return a + b;
}
        //burada int tanımlayacak 2den farklı parametre sayısı girmeliyiz
        public int topla(int a, int b,int c) {
return a + b + c;
}
        //Overloaded metotlarin donus tipleri degisebilir. 
        //Burada örneğin int değil de String döndürüyoruz
        public String topla(String s1, String s2){
                 return s1+s2;
        }
        //Overloaded metotlarin access modifier /erisim belirtecleri degisebilir. (public private..)
        //burada public yerine default tanımlanmış
        //Ayrıca exception da tanımlanabiliri
double topla(double a, double b) throws IllegalArgumentException{
return a + b;
}
        //burada ise diğerlerinden farklı olarak void tanımladık
        //main içinde ise tanımlamasına dikkat ediniz
        public void topla(){
            System.out.println("Void Method");
        }    
}

Çıktı ise aşağıdaki gibi olacaktır:
30
60
25.5
overload java
Void Method


Kaynak
http://www.injavawetrust.com/pure-java-13-object-orientation-04-overloaded/

Hiç yorum yok:

Yorum Gönder