Pure Java – 31 Legal Array Element Assignments

Merhaba Arkadaslar ,
Bu yazimizda , array/diziler konusuna devam edecegiz ve diziler konusunu burada sonlandiracagiz ( en azindan simdilik 🙂 ). 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];

	}
}

Yazimi burada sonlandiriyorum.
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 *