31 Legal Array Element Assignments

Merhaba Arkadaslar ,
Bu yazimizda , array/diziler konusuna devam edecegiz ve diziler konusunu burada sonlandiracagi.Burada dizi elamanlarina deger atama ve dizilerin birine atanmasini konusuna biraz daha yakindan bakacagiz.

Bir dizinin farkli tipte elemanlari olsa bile, sadece tek bir tipte tanimlanabilir. ( int [] ,String[] , Animal[] )

int tipinde bir dizi elemani, byte, short veya char turunde olabilir , long , float ya da double turunde olamaz.

public class Test1 {

	public static void main(String[] args) {
		int[] coolArray = new int[6];

		byte b = 10;
		char c = 'c';
		short s = 20;
		long l = 50;
		float f = 10;
		double d = 100;

		coolArray[0] = b;
		coolArray[1] = c;
		coolArray[2] = s;
		// coolArray[3] = l; // compiler error
		// coolArray[4] =f //compiler error
		//coolArray[5] = d;  //compiler error

		for (int i : coolArray) {
			System.out.print(i + " ");
		}
	}
}

Referans tipte diziler icin, IS-A kuralina uygun olacak sekilde eleman atama islemi gerceklestirilebilir.

interface Vehicle {

}

class Car implements Vehicle {
}

class Ford extends Car {
}

class Fiat extends Car {
}

public class Test2 {

	public static void main(String[] args) {

		Vehicle[] vh = { new Car(), new Ford(), new Fiat() };
		// Car IS-A Vehicle
		// Ford IS-A Vehicle
		// Fiat IS-A Vehicle

		Car[] car = { new Car(), new Ford(), new Fiat() };
		// Ford IS-A Car
		// Fiat IS-A Car

		Ford[] ford = { new Ford() };
		// Bu diziye new Fiat() veya new Car() eklenemez , cunku IS-A kuralina
		// uygun degil.
	}
}

Dizi referanslarinin birbirine atanmasini inceleyecek olursak , bir int tipinde diziye byte, short, byte turunde degisken atanabilirken, int tipinde diziye short ya da byte tipinde bir dizi atanamaz.

public class Test3 {

	public static void main(String[] args) {
		int[] intArray;
		int[] intArray2 = new int[5];
		byte[] byteArray = new byte[10];
		short[] shortArray = new short[10];

		intArray = intArray2;
		// intArray = byteArray;  //compile error
		//byteArray = shortArray; //compile error
	}
}

Referans tipte diziler icin IS-A kuralina uygun olarak degisken atama islemi gercektirilebilir;

	Vehicle[] vehicle;
	Car[] cars;
	Fiat[] fiatArray = new Fiat[5];
	Ford[] fordArray = new Ford[10];

	vehicle = fiatArray; //Fiat IS-A Vehicle
	vehicle = fordArray; // Ford IS-A Vehicle

	cars = fiatArray; // Fiat IS-A Car
	cars = fordArray; // Ford IS-A Car

	// fiatArray = fordArray; // Ford IS-A Car kuralina uygun degil

Cok boyutlu diziler ile tek boyutlu diziler arasindaki ornek atama islemlerine bakalim ;

public class Test5 {

	public static void main(String[] args) {
		int[] intArray;
		int[][] intMultiArray = new int[5][];

		// intArray = intMultiArray; // compile error
		// 2 boyutlu dizi tek boyutlu diziye atanamaz

		// intMultiArray =intArray;
		// Tek boyutlu dizi 2 boyutlu diziye atanamaz.

		intArray = intMultiArray[0];
		//intMultiArray[0]; tek boyutlu bir int dizidir, ve intArray'e atanabilir.

		int[] intArray2 = intMultiArray[1];

	}
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*