Pure Java – 08 Declare Var-Args

Merhaba Arkadaslar,
Bu yazimda Java da var-arg (variable arity methods) yapisindan bahsedecegim, bu yapi pek de bilinen bir yapi degildir ama kullanisli olabilecegi durumlar olabilir.

Oncelikle arguman ve parametre kavramindan bahsetmek istiyorum.

arguman (argument) ; Bir metodu cagirirken parantezler arasinda yazdigimiz ifadelerdir.

method1(''levent'',23);

Burada levent ve 23 ifadeleri birer argumandir.

parametre(parameter) ; Bir metodu tanimlarken , nasil cagirilacagini belirttigimiz tanimladigimiz ifadeler ise parametredir.

void method1(String name, int age)  { }

Bu metot String ve int turunde 2 adet parametre beklemektedir.

Bir metot dusunelim, bu metodumuzu hem bir “int” argumanla hem 2 hem 3 … “int” argumanla cagirmamiz o sekilde kullanmamiz gerekmekte. Boyle bir yapiyi kurmak icin Java da var-arg yapisindan yararlaniriz. Metot tanimlamasinda bu yapi uc nokta … ile kurulur.

VarArgTest.java

public class VarArgTest {
	public static void main(String[] args) {
		VarArgTest vt =new VarArgTest();

		vt.method1();
		vt.method1(10);
		vt.method1(5,20);
		vt.method1(10,25,50);

		vt.method2('a');
		vt.method2('a',10);
		vt.method2('a',5,20);
		vt.method2('a',10,25,50);

	}

	void method1(int... x) {
		System.out.println(x.length);
	}

	void method2(char c,int... x) {
		System.out.println(x.length);
	}

/*	void method3(int...x , char c) {
		// Var-arg parametresi en sonda olmalidir
	}*/

/*	void method4(int ...z,int... x) {
		// Sadece bir tane var-arg parametresi kullanilabilir.
	}*/

/*	void method5(int x...) {
	 	// 3 nokta parametre isminden once gelmelidir.
	}*/
}

Ornegimizi inceleyecek olursak ,method1 ‘i   >=0 arguman ile cagirdik.

  • Sadece bir tek var-arg parametresi kullanilabilir.
  • Var-arg yapisinda olmayan diger parametrelerle birlikte kullanilabilir.
  • Var-arg yapisi metotda tanimlanirken en sonda olmalidir.
  • Var-arg yapisini tanimlarken 3 nokta parametre isminden once gelmelidir.

Yazimi burada noktaliyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *