Java sayesinde; animasyonlar, kayan yazılar, web sayfalarında chat, hesap makinesi, oyunlar, şifreleme programları, interaktif web sayfaları, müzik, kelime işlemci, küçük internet appletleri, kocaman paket programlar, resim işleme programları, tercüme programları, sipariş sistemleri, saatler, yazım kontrol programları yapılabilir.
HTML’de Java
Bir applet hazırladığınızda, bunu bir HTML dökümanına yerleştirmelisiniz. HTML 3.2 ile birlikte, Java appletlerin kullanılmasını sağlayan iki yeni eleman çıktı. Bunlar APPLET ve PARAM. Diğer HTML elemanları gibi bu iki elemanın da birçok özellikleri mevcuttur. Fakat ideali, sadece gerekli olan özelliklerin kullanılmasıdır.
APPLET Elemanının kullanılması
APPLET elemanı, HTML dökümanına yerleştirdiğiniz appletin tanımlanmasını ve özelliklerinin tanımlanmasını sağlar. Her HTML elemanı gibi, APPLET elemanının da bir başlangıç tagı <APPLET> ve bitiş tagı </APPLET> vardır.
APPLET elemanı için gerekli olan özellikler: CODE, WIDTH ve HEIGHT’tir. CODE özelliği kullanılacak appleti, WIDTH özelliği appletin genişliğini (pixel), HEIGHT özelliği ise appletin yüksekliğini (pixel) belirlemenizi sağlar. Aşağıda gerekli olan özellikleri ile bir appletin HTML dökümanına bağlanmış şeklini görüyorsunuz.
<HTML>
<HEAD>
<TITLE> Maximum Bilgi </TITLE>
</HEAD>
<BODY>
<APPLET CODE=”maximumbilgi.class” WIDTH=300 HEIGHT=100>
</APPLET>
</BODY>
</HTML>
Yukarıdaki örnekte HTML dökümanı ve “maximumbilgi.class” adlı java appleti aynı dizinde bulunmalıdırlar. Şayet java appleti farklı bir dizinde ise, opsiyonel CODEBASE özelliğini kullanmanız gerekir.
CODEBASE özelliği, appletin bulunduğu URL‘yi belirtmenizi sağlar. Aşağıdaki örnek, yukarıdaki örneğin hemen hemen aynısıdır. Tek farkı, java appleti başka bir dizinde bulunduğu varsayılarak CODEBASE özelliği kullanılmıştır.
<HTML>
<HEAD>
<TITLE> Maximum Bilgi </TITLE>
</HEAD>
<BODY>
<APPLET CODE=”maximumbilgi.class” CODEBASE=””http://www.maximumbilgi.com/java/classlar/”” WIDTH=300 HEIGHT=100>
</APPLET>
</BODY>
</HTML>
Diğer opsiyonel özellikleri şöyle sıralayabiliriz:
ALIGN
Appletin konumunu belirlemizi sağlar. Alabileceği değerler ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP’tır.
HSPACE
Appletin altında ve üstünde ne kadar boşluk bırakabileceğinizi belirleyebilirsiniz. HSPACE‘e vereceğiniz değer, pixel olarak işlenir. Örnek: HSPACE=10
VSPACE
Appletin sağında ve solunda ne kadar boşluk bırakabileceğinizi belirleyebilirsiniz. VSPACE‘e vereceğiniz değer pixel olarak işlenir. Örnek: VSPACE=20
ALT
Appletleri gösteremeyen browserlarda, appletin yerine alternatif bir yazı çıkmasını sağlayabilirsiniz.
NAME
Applete bir isim vermenizi sağlar.
PARAM Elemanının kullanılması
PARAM elemanı ile applete parametre gönderebilirsiniz. PARAM elemanının sadece başlangıç tagı vardır: <PARAM>. Applete göndermek istediğiniz her parametre için bir <PARAM> tagı kullanmalısınız. PARAM taglarını başlangıç tagı <APPLET> ile bitiş tagı </APPLET> arasına yerleştirmelisiniz.
Appletler, <PARAM> tagında belirtilen parametrelere “getparameter()” metodu ile ulaşırlar. <PARAM> tagının gerekli iki özelliği vardır. NAME ve VALUE. NAME özelliği ile parametrenin adı belirtilir ki “getparameter” metodu ile bu isme göre aranır. VALUE özelliği ise parametrenin değerini verir. Aşağıda, applette kullanılacak resmi, parametre ile girilen bir HTML dökümanı örneği verilmiştir.
<HTML>
<HEAD>
<TITLE> Maximum Bilgi </TITLE>
</HEAD>
<BODY>
<APPLET CODE=”maximumbilgi.class” WIDTH=300 HEIGHT=100>
<PARAM NAME=Resim VALUE=”logo.gif” >
</APPLET>
</BODY>
</HTML>
Java appletinde, resim parametresinin değeri; Resim_logo=getparameter(“Resim”) komutu ile okunur.
Veri Tipleri
Java’da her şey bir nesnedir. Tek istisna veri tipleridir. Java veri tipleri, bütün platformlarda standart büyüklüğe sahiptir. Bu standart Java’nın taşınabilirliğini sağlıyor. Aşağıda Java’da bulunan veri tipleri ve büyüklükleri listelenmiştir.
Veri tipi | Büyüklük |
byte | 8-bit |
short | 16-bit |
int | 32-bit |
long | 64-bit |
float | 32-bit kayan nokta |
double | 64-bit kayan nokta |
char | 16-bit Unicode |
Eğer C/C++ programcısı iseniz “unsigned” tipinin olmadığı dikkatinizi çekmiştir. Byte tipi ise C/C++’daki “char” tipinin yerini almıştır. Java’daki char tipi 16 bittir. Çünkü Java karakter verisinde Unicode karakter setini temel alır.
Unicode, uluslararası karakterleri destekleyen bir standarttır. Programlarınızın değişik platformlarda ve ülkelerde çalıştırılacağında Unicode çok uygundur. Yukarıdaki tabloda olmayan diğer bir veri tipi ise boolean‘dır. Bir boolean, değişken numerik değere çevrilemez ve sadece iki değer alabilir. Bu değerler “true” ve “false” tur.
Literaller
Literaller, değişkenlere değer atamak için kullanılır. Integer’lara C/C++ benzer biçimde değer atanır. 25 gibi tamsayı atayabilirsiniz. Hexadecimal bir tamsayı atamak için, sayının önüne “0x” ifadesi koymanız gerekir. Örneğin, 15 sayısını hexadecimal olarak 0xF şeklinde atamalısınız. 8’lik tabanda bir sayı atamak için “0” ifadesini, sayının önüne koymalısınız.
Kayan noktalı sayıları ise direkt 5.2345 şeklinde atayabilirsiniz. Bunlar 32 bit float veya 64 bit double olarak saklanabilirler. Belirtmezseniz, varsayılan 64 bit double’dır. Belirtmek için yapacağınız tek şey, sayının arkasına float için F, double için D koymaktır. Örneğin 5.323 F veya 5.323 D.
Karakterler, tek tırnak içinde atanırlar. Örneğin ‘a’gibi. Escape karakterleri için slash (\) kullanılır. Bunlar da tırnak içinde belirtilir. \t=tab, \n=satır atlama gibi. Stringler için çift tırnak kullanılır. “Maximum Bilgi” gibi. Satır atlaması yapmak istiyorsanız “Maximum Bilgi \n” kullanmalısınız.
Değişkenler
Java’da 3 tip değişken vardır: instance, class ve local. Lokal değişkenler, metodların ve blokların içinde tanımlanabilirler. Blok, “{” ile başlayan ve “}” ile biten ifadeler topluluğudur. Blok içinde tanımlanan lokal değişkenler, blok sonuna kadar geçerlidir. Genel formatı <tip> <değişken adı> şeklindedir. Örneğin double tipinde pi adlı değişkeni tanımlayalım: double pi; bir değer de atayabilirdik: double pi=3.1415.
Değişkenler; harf, sayı, dolar işareti, alt çizgi ile başlayıp bu karakterlerle devam edebilir. Ama komutlar, operatörler değişken ismi olarak kullanılamazlar.
Açıklamalar
Programlarınıza açıklama koymak için, Java’da kullanabileceğiniz iki stil vardır. Birincisi çift slash ( // ). Çift slash’tan satır sonuna kadar olan kısımda bulunan her şey açıklama olarak kabul edilir.
İkincisi ise slash ve yıldız ( /*) ile başlar yıldız ve slash ile biter. Bunlar arasındaki her şey, açıklama olarak kabul edilir. Örnek 1: double pi; // pi değişkeni double olarak tanımlandı. Örnek 1: /* Bu programın amacı sayısal loto tahmini yapmaktır.
Operatörler
Java’da bulunan operatörler aşağıdaki tabloda verilmiştir.
Kategori | Operatör |
Aritmetik | + – * / % |
İlişkisel | < > >= <= == != && || |
Bit işlemeri | & | ^ << >> >>> ~ &= |= ^= |
Artırma | ++ |
Azaltma | — |
Aşağıda iki değişken tanımlanıp, bunlara değer atanıyor. Daha sonra ise bu iki değişkenin içeriği toplanıyor:
int x,y ;
x= 3 ;
y=4 ;
int z=x+y ;
Z ‘nin değeri yedidir. Operatörlerin öncelik sırası aşağıdaki tabloda gösterilmiştir.
[] () |
++ – ! ~ |
* / % |
+ – |
<< >> >>> |
< > <= >= |
== != |
& ^ |
| |
&& |
|| |
= ve diğerleri |
Bit işlemleri |
Ayrılmış Kelimeler
Aşağıdaki tabloda, Java’nın komutları olarak kullanılan kelimeler listelenmiştir. Bu kelimeler, Java için ayrılmıştır. Yani bu kelimeleri değişken ismi gibi şeyler için kullanamazsınız. Bunlar sınıf tanımlaması, değişken tipi belirleme, koşul, döngü gibi işlemler için kullanılır.
Abstract | boolean |
break | byte |
byvalue | case |
catch | char |
class | const |
continue | default |
do | double |
else | extends |
false | final |
finally | float |
for | goto |
if | implements |
import | instanceof |
int | interface |
long | native |
new | null |
package | private |
protected | public |
return | short |
static | super |
switch | synchronized |
this | threadsafe |
throw | transient |
true | try |
void | while |
Karşılaştırmalar
Karşılaştırmalar, genelde bir karşılaştırmanın sonucuna göre belirtilen komut veya komutları çalıştırırlar. Eğer birden fazla komut kullanılacak ise blok içinde olmalıdır. Tek bir komut için buna gerek yoktur. Örneğin; a değişkenin değerinin bir olup olmadığını kontrol ediyoruz. Eğer a=1 ise a=2, değil ise a=1.
Görüldüğü üzere karşılaştırma, boolean bir değer döndürmelidir. Yani true (doğru) veya false (yanlış) değerini döndürmelidir ki bu değere göre işlenecek komutlar belirlenebilsin. Java’da karşılaştırma yapmak için “if…else…” kullanılır. Formatı şu şekildedir:
if (karşılaştırma)
{ karşılaştırmanın sonucu
doğru ise işlencek komutlar
}
else
{ karşılaştırmanın sonucu
yanlış ise işlencek komutlar
}
Yukarıdaki örneği java formatında yazarsak :
if (a==1) // Java’da = operatörü atama için kullanılır.
// Karşılaştırma için == operatörünü kullanılır.
a=2;
else
a=1; // Tek komut olduğu için blok içine alınmasına gerek
yoktur.
Eğer birçok karşılaştırma varsa, iç içe karşılaştırmalar (if ) kullanılabilir. Sonucu nümerik olan karşılaştırmalar için “switch…case…” komutu kullanılır. Bu komut, sadece nümerik değerler için kullanılır. Formatı şu şekildedir:
switch (değişken)
{
case 1: // değişkenin değeri 1 ise
break;
case 2:{
// değişkenin değeri 2 ise
break;
}
default: // yukarıdaki değerler haricindeki değer ise
break;
}
Döngüler
Java ‘da üç tane döngü işlemi vardır. “for” döngüsünün yapısı aşağıdaki şekildedir. for (ilk değer; test; değer artırma/azaltma) Bu yapıda görülen ilk değer ifadesi, değişkeninizin alacağı ilk değerdir. Test ifadesinde ise basit veya kompleks bir karşılaştırma kullanabilrisiniz. Değer arttırma veya azaltma ise değişkeninizin o anki değerini değiştirecek bir ifadedir. “for” döngüsünü örnek kullanımı:
for (sayac=0;sayac<3;sayac++)
Bu örnekte, sayaç değişkenine ilk değer olarak sıfır verilmiş ve her döngüde bir arttırılması istenmiş. Döngüden çıkma koşulu ise sayaç değişkeninin 3 ve daha yukarı değerleri olarak belirlenmiş. Bu durumda sayaç değişkeni 0,1,2 değerleri için döngüye girecektir. “for” döngüsünden sonra bir komut veya blok komutları gelebilir. “while” döngüsünün yapısı şu şekildedir: while (test). Test ifadesi “for” döngüsündeki ile eşdeğerdir. Örnek:
sayac=0;
while (sayac<3)
{
//komutlar
sayac++;
}
“do” döngüsünün yapısı:
do
{
//komutlar
} while (test);
“do” döngüsünün “while” döngüsünden farkı en az bir kere döngüye girmesidir.
Tüm döngülerde “break” komutu döngüden çıkılmasını, “continue” komutu ise bir sonraki değere geçmeyi sağlar.