Jose M. Fernández Yazara
iletin
|
Java. B�l�m I�eviri: �nci GedikA��klama: Bu , Java programlama hakk�ndaki bir seri makaleden ilkidir. �lk b�l�m Java'y� bir dil olarak , genel karakteristi�i ve en fazla rabet g�ren bilgi kaynaklar�n�n yeriyle a��klamaktad�r.
Giri�Bu ,Java programlama dilini ve onun �evresel geli�imini a��klayan bir dizi makale ile ba�lar.Birinci ama� olarak ,dilin tarihi hakk�nda yay�mlardan, mikrodalgalar ve �ama��r makinelerinden... uzak duraca��m.( E�er aran�zda bunlardan herhangi biri ile ilgilenen varsa bunlar� �oklu k�t�phanelerden hatta literat�rden bulabilir.) Ayn� zamanda kocaman burunlu, ��gen v�cutlu ve ellerini marimba'n�n ritmine g�re sallayan ,bana eski Amerikan bilim kurgu filmlerini hat�rlatan Duke ' tan da (Java'n�n maskotu) uzak duraca��m.Java fenomeni de zaman�nda ge�ici pop�lerlik ta��d�.Her seviyedeki bilgisayar magazini bunun hakk�nda yazd� , Java apletlerini geli�tirmek �zere �r�n satan bir�ok yaz�l�m firmas� var ve �ok az web sitesi Java apleti i�ermiyor. Bu seriler aras�nda m�mk�n oldu�u kadar , asl�nda temel i�ler i�in basit fakat ustal�kl� kullan�m i�in hayl� kar���k ve zor olan bu programlama dilini derinlemesine incelemeye ve ��renmeye �al��aca��m. Bu ilk birka� makale ile amac�m�z genel olarak dile bir tan�mlama sa�lamak b�ylece daha sonra apletler,a�-ili�kili planlar, JDBC,vb. gibi konular�n derinine inebiliriz. Þunu belirtmeliyim ki Java genel ama�l� bir dildir,bunu yapmada olduk�a pop�ler olmas�na ra�men sadece web sayfalar�na aplet yazmak i�in kullan�lmak �zere yarat�lmam��t�r. Java'n�n sadece g�r�n���ne tak�lamay�z ��nk� java apletlerinden �ok daha ilgin� bir �ok alternatifi vard�r. Bu ilk makale tan�mlamadan �ok pratiktir.Bir sonra ki makalede, dilin temel karakteristiklerini ve �evresel geli�imini a��klayaca��z.Sadece en sonda Java program�n�n bir �rne�ini g�rece�iz. OrijinJava Sun Microsystem Inc. 'de hayat�n�n 18 ay�n� ge�irdi�i yerde 1991'de James Gosling, Patrick Naughton, Chis Warth, Ed Frank ve Mike Sherindan taraf�ndan olu�turuldu. 1992 ve 1995 aras�nda Bill Joy, Arthur Van Hoff, Jonathan Payne, Frank Yellia, Tim Lindolm ilk prototipin olgunla�mas� �zerine i�birli�i yapt�lar.Tarihlerden belli ki Java WWW 'den �nce ya da en az�ndan onunla e�zamanl� olu�turulmu�tur -- 1991'e kadar Tim Berners Lee HTML dilini geli�tirmemi�tir. Java'n�n yap�s� C'ye olduk�a benzemektedir ve obje a��rl�kl� karakteristikleri de ayn� zamanda C++ 'a benzemektedir. Java uygun ve mant�k �er�evesinde birbirini tutan bir programlama dilidir. C ve C++ aras�ndaki benzerlikler, Java'n�n C++ '�n internet i�in bir versiyonu oldu�u izlenimini verebilir, fakat �nemli teorik ve pratik farkl�l�klar vard�r. Java �zellikle C++ ile kar��la�t�r�lan obje k�kenli parametreleri d�zeltir ve ar�t�r. Internet Java'y� ortaya
att� ve herkesin bildi�i bir dil haline getirdi ve e�zamanl�
olarak Java, siberuzayda �cretsiz edinilebilen objeler dizisini geni�letti�inden
beri �nternette derin etki yaratt� (kendi �al��t�r�labilen
programlar ).
�ncelemek ve �ndirmekJava programlama i�in kesin bir�ok ara� vard�r.Tesad�fen hep GNU/LINUX ortam�n� �nerece�im (kelimenin tam anlam� ile kay�plar�n�n bulunmas�):Ben JDK (Java Development Kit) ortam�n� , Netscape versiyon 2.0.14 ya da sonras� , ve Xemacs gibi bir yaz� edit�r� kullanaca��m .Daima Xwindows ortam�nda �al��aca��z . Herzaman gerekli olmamas�na ra�men , Apletleri ve programlar� bir grafik arabirimi ile geli�tirirken buna ihtiyac�m�z olacak. JDK da��t�m� a�a��daki sayfadan indirilebilir : Dosyalar� hemen indirmek yerine bu siteden ba�lant�l� aynalardan birini se�ebilirsiniz. Birka� ay �nce - son ziyaretimde - JDK-1.1.3 'nin son versiyonu (bu makale i�in kullan�lan) 1.19 versiyonunun orada oldu�unu g�rd�m.Unutmay�n ki her�eyi indirmeye kalkarsan�z bu size 24 Mb'a mâlolur.Oysa sadece ihtiyac�n�z olan �eyler yakla��k 12 Mb yer kaplamaktad�r(deneyin!). gunzip ile ar�ivleri a�t���n�zda ba�laman�z i�in hi�bir engel kalmayacak. Normal olarak da��t�m� /usr/local dizinine yapmak ,sonra /JDK1.1.3 alt dizinini yaratmak ve beraberinde a�a��dakileri yapmak gerekir : /doc HTML format�ndaki ofis d�k�manlar /demo Java demo programlar /lib K�t�phaneler /bin JDK'n�n belli ara�lar�n�n oldu�u dizin. /lib dizininin i�inde "classes.zip"(dosyay� a�may�n) dosyas�n� buluruz , bu dizin JDK taraf�ndan kullan�lan derlenmi� s�n�flar� i�erir. root dizini ile beraber "src.zip" dosyas�n� buluruz , bu dizin classes.zip i�erisinde yeralan kaynak dosyalar� i�erir . Bunlar derlenemez ve sadece bilgi ama�l� da��t�mlarla beraber desteklenirler. Ortam�n Geli�tirilmesiDaha �nce belirtildi�i gibi geli�me ara�lar� /bin dizininde yeral�r :Java : java yorumlay�c�s� . Java baytkodlar�n� �al��t�r�r. jre : Java'ya benzer ba�ka bir yorumlay�c� ,fakat kullan�c�lar i�in oldu�u d���n�lmesine ra�men t�m se�eneklerin kullan�l�r olmas� istenmemektedir. appletviewer: apletleri test eder ve �al��t�r�r. jdb: hata d�zelticisi. javap: Java da derlenen baytkod dosyalar�n�n ay�r�c�s�. javadoc : d�k�mantasyon jenerat�r� , genel ve korunmu� s�n�flar�, aray�zleri , yap�lar�, methodlar� ve alanlar� tan�mlayan HTML sayfalar�n� yarat�r.Ayn� zamanda s�n�f hiyeara�isini ve �yelerin i�inde bulundu�u indeksi yarat�r. javah : Java programlar�n�n bilinen metodlar�na eklenen ara� ( C de ) jar: java s�n�flar�n� ve kaynaklar�n� bir Jar ar�iv dosyas�nda saklar . javakey : Dijital imzalar� koruyan ara�. updateAWT : bir ba�vurudaki AWT1.02 metodu ile de�i�tirilen isimleri g�ncelle�tirir. KarakteristiklerDevam etmeden �nce , kendimize Java nedir sorusunu sormam�z gerekir. Cevaplamak i�in JDK'n�n elkitab�nda yazd��� gibi Java'n�n bir programlama dili ve ayn� zamanda bir platform oldu�unu g�z�n�nde bulundururuz.Bir programlama dili olarak Java a�a��daki karakteristiklerle beraber y�ksek seviyeli bir dildir. (ayn� noktada onlar� detayl� olarak inceleyebiliriz ):
" Birkez yaz�p herzaman �al��t�rabildi�imiz " Java baytkodlar�na te�ekk�r ederiz. Java programlar�n� bir platformda derleyebilir ve JVM (Java Virtual Machine ) arac�n� i�eren tamamen farkl� ba�ka bir yap�da �al��t�rabiliriz. �rne�in bir Java program� Windows NT platformunda derlenebilir ve bir Sun Ultra Solaris 'de sorun olmadan �al��abilir . (en az�ndan teorik olarak) Genel olarak bir platform uygulaman�n �al��t��� bir donan�m/yaz�l�m ortam�d�r . Bununla beraber Java i�in bir platform �al��t��� bir yaz�l�m ortam�d�r . Her Java platformu bir donan�m ortam�nda �al��mak zorundad�r. Bir Java platformunun iki b�l�m�
vard�r :
Java'n�n API 's�
grafiker kullan�c� aray�z� (GUI ) gibi �zellikleri
destekleyen geni� bir yaz�l�m bile�enleri koleksiyonudur
. Bunlar k�t�phanelerde grupland�r�lm��t�r.
( Java terminolojisini kullanan Java paketleri ).Bu paketler sayesinde
�ok bilinen web Apletlerinin yan�s�ra,
Java'y� daha bir�ok uygulamada kullanmak m�mk�nd�r.
Web serverlar�n� dizayn etmek m�mk�nd�r, �rne�in,
vekiller, ileti serverlar�, IRC serverlar�, ve �ntenet
ile ilgili hayal edilebilecek herhangi bir�eyler...
Bu temel API kabu�unun yan�s�ra ayn� zamanda 3D uzant�lar� , ileti�imler, animasyonlar, vb. vard�r.
Bu uzun "konu�ma" dan sonra (�o�u Java d�k�manlar�nda bulunabilir) Java'n�n GNU/Linux d�nyas�ndaki yerini merak edebilirsiniz .Daha �nce Linux i�in kullan�lan, Sun Mikrosistem taraf�ndan geli�tirilen ticari ama�l� (�cretsiz da��t�ld��� halde) JDK d�k�manlar�ndan bahsetmi�tik. GLP lisans� alt�nda GUAVAC derleyicisi gibi herhangi bir Java kayna��n� hi�bir sorun ile kar��la�madan derlememizi sa�layan bir�ok ara� vard�r.Ayn� zamanda Berkeley lisans� alt�nda KAFFE olarak adland�r�lan bir sanal makineden bahsetmeliyiz .Son iki proje , geli�me sistemini tamamlamak i�in Sun'n�n Java s�n�f k�t�phanelerine (�cretsiz da��t�mda olanlar ) ihtiya�lar� oldu�u halde olduk�a iyi seviyedelerdir. Varolan bir�ok proje, hâlâ ilkel seviyede olmalar�na ra�men , geli�me ortam�n� h�zl� ve sanal uygulamalar ile sa�lamay� ama�l�yor. Son olarak nette Java ve GNU teknolojisinde b�y�k hareketlenmelerin oldu�unu , �zellikle Sun'dan ba��ms�z olarak Java i�in �cretsiz da��t�lan tamamlanmi� ara� kutular�n�n yarat�ld���n� sevinerek s�yl�yorum . Java'n�n �nemini modas� ge�ti�inde yeni yeni anl�yor olabiliriz, ama eminim ki onu hat�rlatacak baz� �eyler olacakt�r.( Hatta bir�ok �eyin kalaca��na bahse girerim) JAVA da ilk programDilin genel karakteristiklerinden baz�lar�n� g�rd�kten sonra ger�ek bir programa bakal�m.Giri�te belirtti�im gibi, merhaba d�nya �rne�i gibi s�radan laflardan m�mk�n oldu�u kadar uzak duraca��m, onun yerine istedi�imiz boyutta bir kare �izecek olan bir program ile ba�layal�m.(Fazla olmamak kayd� ile biraz kar���k): class Cuadro { public static void main (String args[]) { int l ,a; if (args.length == 2) { l = Integer.valueOf(args[0]).intValue(); a = Integer.valueOf(args[1]).intValue(); } else { l= 20; a= 15; } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); for (int i= a-2; i>0; i--){ System.out.print("*"); for(int j=l-2; j>0; j--) { System.out.print(" "); } System.out.print("*\n"); } for (int i=l; i>0; i--){ System.out.print("*"); } System.out.print("\n"); } }Java'da kaynak dosyaya verilen isim �ok �nemlidir ��nk� bir "derleyici birim" tan�mlar.Dosya bir veya daha fazla tan�mlama s�n�f� i�erebilir.Derleyici kaynak dosyadan uzant�y� ta��mas�n� ister. Java (4 karakter) kesinlikle baz� sistemler taraf�ndan desteklenmemektedir. (DOS ya da Windows 3.1) Verilen �rnekte s�n�f�n ismi kaynak dosyan�n ad� ile tan�mlan�r .Bu tesad�f de�ildir , Java'da t�m kodlar bir s�n�fta olmal�d�r.Anla�maya g�re s�n�f�n ismi ,s�n�f� i�eren kaynak dosyan�n ad� ile uyu�mak zorundad�r.Bundan ba�ka Java k���k b�y�k harfe kar�� hassast�r. Komut sat�r�nda �rne�i
derlemek i�in :
Java derleyicisi , (hersey iyi giderse) kendili�inden ikilik (baytkod) formu i�eren Cuadro.class dosyas�n� yarat�r ve acil olarak yorumlay�c� taraf�ndan �al��t�r�labilir : > java Cuadro Java kaynak kodu derlendi�inde , her s�n�f ar�ivde s�n�f ismi ile ayn� ve bireysel olarak yerle�tirilir. Bu y�zden kaynak dosyalara i�erdikleri s�n�f�n ismi ile ayn� ad� vermek g�zel bir al��kanl�kt�r b�ylece kaynak dosya ad� ar�iv.class dosyas� ile �rt���r. Cuadro.java �rne�imizin basitli�ine ra�men Java'n�n temelini ve tipik java programlar�n�n yap�s�n� anlamam�z� sa�lar . �lk olarak bu �rne�in HTML dosyas�nda varolan bir aplet olmad���n� fakat komut sat�r�nda java derleyicisi taraf�ndan derlenebilen ba��ms�z bir program oldu�unu anlay�n. Program�n ilk sat�r� : class Cuadro {�lk kelime saklanan dilden al�nm��t�r , "Cuadro" -- ispanyolca bir kelime-- isimli yeni bir s�n�f�n tan�mlamas�n� yapmaktad�r. T�m �yelerini i�eren s�n�f�n verilmi� tan�mlamas iki k�me parantezinin {} i�inde verilir. Bir sonraki sat�rda: public static void main (String args[]) {main( ) isimli metod g�sterilir .T�m Java uygulamalar� main( ) olarak isimlendirilen metod ile �al��t�r�lmaya ba�lan�r .(C/C++'a benzer �ekilde).Þimdi size �rne�i anlamak i�in gerekli detaylar� belirtmeme izin verin .(sonraki makalelerde bu daha ayr�nt�l� a��klanacakt�r). public �ifre kelimesi s�n�flar�n �ye metodunu kontrol eder . Bir s�n�f public olarak tan�mland���nda , bu s�n�f kendisinin d���nda tan�mlanm�� kodlar taraf�ndan kullan�labilir . static �ifre kelimesi main( ) metodunu s�n�f� ara�t�rmadan uyanmaya zorlar . Void bu metodun herhangi bir de�ere d�n��medi�ini g�sterir . Bir fonksiyon ya da metodun parametrelerini ge�mek i�in fonksiyon isminden sonra parantezler kullan�l�r , bizim �rne�imizde main String s�n�f�ndan indisleri olan bir matrisi parametre olarak al�r . Belli ki bu metoda ba�l� t�m kodlar ayn� zamanda yuvarlak parantezler aras�nda kapat�l�r .Sonra, sat�rda : int l, a ;iki de�i�ken tan�mlar�z .Java da t�m degiskenler kullan�lmadan �nce tan�mlanmal�d�r .Þunu farkedin ki koddaki t�m yap�lar noktal� virg�l ";" ile biter . Kodun kalanlar� a�a��daki gibi k���k bir algoritma g�sterir :
If (args.length==2) l = Integer.valueOf(args[0]).intValue(); a = Integer.valueOf(args[1]).intValue(); l = 20; a = 15; System.out.print()ifadesi ile g�sterilebilir. System sisteme giri�i sa�layan s�n�f�n �ntan�mlamas�d�r ve out konsol ile ba�lant�l� ��kt� dizisidir.Ayn� zamanda, for (int i=l; i>0; i--)Beklendi�i gibi C/C++ deneyi ve di�er dillerin dedi�i gibi hareket eder. �zetJava programlama dilinin genel �zellikleri ile ilgilendik.Programa hen�z ba�lad�k ve gidecek uzun bir yol var,gelecek makaleler dilin tan�mlamas� hakk�nda daha derinlemesine bilgi verecekler.Bundan sonraki makalede , tan�mlamalar ve de�i�kenlerin tipleri, temel yap�lar, s�n�flar gibi dilin ana �zellikleri �zerinde �al��aca��z.Herbir makalede o makalelerin referanslar�n�,k�t�phanelerini ve URL'lerini verece�im.
Miguel
A Sepulveda taraf�ndan �ngilizce'ye �evrilmi�tir.
|
Bu sanaly�renin bak�m� Miguel Angel Sepulveda
taraf�ndan yap�lmaktad�r.
© Jose M. Fernandez 1998 LinuxFocus 1998 |