### Java Metod Tanımlama ve Çağırma
Metodlar, belirli bir görevi gerçekleştiren kod bloklarıdır ve kodun yeniden kullanılabilirliğini artırır. Java'da metod tanımlama ve çağırma işlemleri şu şekilde yapılır:
#### Metod Tanımlama
Metod tanımlarken, dönüş tipi, metodun adı, parametreler (varsa) ve metodun gövdesi belirtilir.
```java
public class Main {
// Metod tanımı
public static void sayHello() {
System.out.println("Hello, World!");
}
}
```
- **public:** Erişim belirleyicidir, metodun nereden erişilebileceğini belirtir.
- **static:** Metodun sınıfa ait olduğunu belirtir, örnek oluşturulmadan çağrılabilir.
- **void:** Metodun dönüş tipidir, bu durumda metod bir değer döndürmez.
- **sayHello:** Metodun adıdır.
- **():** Parametre listesi (bu durumda parametre yok).
#### Metod Çağırma
Tanımlanan metod, başka bir metodun içinde çağrılabilir.
```java
public class Main {
public static void main(String[] args) {
// Metod çağırma
sayHello();
}
public static void sayHello() {
System.out.println("Hello, World!");
}
}
```
### Metod Parametreleri ve Geri Dönüş Değerleri
#### Parametreli Metodlar
Metodlar, parametre alabilirler. Parametreler, metodun çağrıldığında alacağı değerlerdir.
```java
public class Main {
public static void main(String[] args) {
int sum = add(5, 10); // Metod çağırma
System.out.println("Sum: " + sum);
}
// Parametreli metod tanımı
public static int add(int a, int b) {
return a + b; // Geri dönüş değeri
}
}
```
- **int add(int a, int b):** İki tamsayı parametre alan ve bir tamsayı döndüren metod.
#### Geri Dönüş Değerleri
Metodlar, bir değer döndürebilirler. `return` ifadesi, metodun geri dönüş değerini belirtir.
```java
public class Main {
public static void main(String[] args) {
int maxValue = max(5, 10); // Metod çağırma
System.out.println("Max value: " + maxValue);
}
// Geri dönüş değeri olan metod tanımı
public static int max(int a, int b) {
if (a > b) {
return a; // a'yı döndür
} else {
return b; // b'yi döndür
}
}
}
```
### Metotlarda Overloading ve Overriding
#### Metot Overloading (Metod Aşırı Yükleme)
Metod aşırı yükleme, aynı metod adıyla birden fazla metod tanımlanmasını sağlar, ancak her metodun parametre listesi farklı olmalıdır.
```java
public class Main {
public static void main(String[] args) {
System.out.println(add(5, 10)); // 15
System.out.println(add(5.5, 10.5)); // 16.0
}
// int parametreli metod
public static int add(int a, int b) {
return a + b;
}
// double parametreli metod
public static double add(double a, double b) {
return a + b;
}
}
```
- Aynı isimde iki `add` metodu vardır, ancak biri `int`, diğeri `double` parametre alır.
#### Metot Overriding (Metod Geçersiz Kılma)
Metod geçersiz kılma, bir alt sınıfta, üst sınıfta tanımlanmış bir metodu yeniden tanımlamayı sağlar. Bu, özellikle kalıtımda kullanılır.
```java
class Animal {
// Üst sınıfta metod
public void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
// Alt sınıfta metod geçersiz kılma
@Override
public void makeSound() {
System.out.println("Bark");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.makeSound(); // "Bark" çıktısını verir
}
}
```
- `@Override` anatosyonu, metodu geçersiz kıldığınızı belirtir. Bu, derleme zamanında hata denetimi sağlar.
### Özet
Bu ders notları, Java'da metod tanımlama ve çağırma, metod parametreleri ve geri dönüş değerleri, metotlarda overloading (aşırı yükleme) ve overriding (geçersiz kılma) konularını kapsamaktadır. Metodlar, Java programlarının temel yapı taşlarıdır ve kodun yeniden kullanılabilirliğini, okunabilirliğini ve bakımını artırır. Overloading ve overriding, esnek ve genişletilebilir yazılımlar yazmak için güçlü araçlardır.