Java SE Ders16 - Diziler - II


      Bu derstte dizileri ve dizi elemanlarını metotlara nasıl argüman olarak gönderileceğini göstereceğiz.
Argüman olarak dizi alan bir metot örneği aşağıdadır.
  • public void kareAl(int[] sayilar){..}
Bu tür bir kullanımda kareAl metodunun parametresi olan sayilar dizisi üzerinde yapılacak bir değişiklik gönderilen argümanı da etkileyecektir.

 Yani yukarıdaki metoda örneğin,
  • int [] sayilar1 = {1,2,3,4} dizisini tanımayıp,
  • karelAl(sayilar1) şeklinde argüman olarak gönderilirse,
  • metodun parametresi olan sayilar üzerinde yapılan değişiklikler gönderilen argüman olan sayilar1 dizisini etkiler.Yani çağrılan metodun dışında da yapılan değişikler kendini koruyacaktır.
 Fakat tanımlanan metot bir dizi değil de aşağıdaki gibi bir değişken alırsa,
  • public void kareAl2(int sayi){..}
Bu tür bir kullanımda kareAl2 metodunn parametresi olan sayi değişkeni metot bitiminde geçerliliğini yitirerek, bu metoda gönderilen argümanı etkilemeyecektir.

Yani yukarıdaki kareAl2 metoduna örneğin,
  • int [] sayilar1 = {1,2,3,4} dizisini tanımayıp,
  • karelAl2(sayilar1[3]) şeklinde argüman olarak gönderilirse,
  • metodun parametresi olan sayi üzerinde yapılan değişiklikler gönderilen argüman olan sayilar1[3] değişkenini etkilemez.Yani çağrılan metodun dışında yapılan değişikler kendini korumayacaktır.

Şimdi bu anlatılanları içeren örneği yapalım.

Main.java
package test;

public class Main {

 public static void main(String[] args) {

  int[] sayilar1 = { 1, 2, 3, 4 };
  int[] sayilar2 = { 1, 2, 3, 4 };

  System.out.println("kareAl metodu çağrılmadan önce sayilar1 dizisi :");
  for (int a : sayilar1) {
   System.out.print(a + "\t");
  }
  kareAl(sayilar1);
  System.out.println("\nkareAl metodu çağrıldıktan sonra sayilar1 dizisi :");
  for (int a : sayilar1) {
   System.out.print(a + "\t");
  }
  System.out.println("\n----------------------------------------------");

  System.out.println("kareAl2 metodu çağrılmadan önce sayilar2 dizisi :");
  for (int a : sayilar2) {
   System.out.print(a + "\t");
  }
  kareAl2(sayilar2[3]);
  
  System.out.println("\nkareAl2 metodu çağrıldıktan sonra sayilar2 dizisi :");
  for (int a : sayilar2) {
   System.out.print(a + "\t");
  }
 }

 static void kareAl(int[] sayilar) {
  for (int i = 0; i < sayilar.length; i++) {
   sayilar[i] = sayilar[i] * sayilar[i];
  }
 }
 static void kareAl2(int sayi) {
  sayi=sayi*sayi;
 }

}


Yorumlar

Bu blogdaki popüler yayınlar

Java SE Ders24 - Composition (Kompozisyon)

Spring Ders20 - Aspect Oriented Programming - AspectJ Annotation Style

JSF Ders30 - Page Template (Sayfa Şablonu)