Java Dersleri
 

Jav             Java Öreniyorum

rnrnEvet Java öğretimlerimize yavaş yavaş başlayalım isterseniz. JAVA dili ile C++ dili arasında inanamayacağınız kadar yazılım benzerliği vardır. Bunu zamanla daha iyi sezilmeyeceksiniz. Sonuçta her iki dilde “nesneye yönelik programlama dilidir”. Buradan C++ dilinin java nın temellerini oluşturduğunu çıkarabiliriz.

Java ilk olarak genel amaçlı bir dil olarak 1.0 versiyonuyla 1996 yılında piyasa çıktı. Bu yıllar da java nın en büyük eksikliği yavaş olmasıydı. Daha sonraki yıllarda 1.0 versiyonunu 1.1,1.2,1.3 ve son olarak 1.4 sürümü takip etti. Java 1.2 sürümü ile birlikte ciddi anlamda değişikler yapıldı ve JAVA 2 adını aldı. Yani 1.2 den itibaren JAVA 2 adını kullanmak daha doğru olur.

Internet tabanlı ve veri bağlantılarına bağlantılar içeren, üstelik tarayıcıdan kullandığımız bir görsel arabirim gerektiren uygulamalar yazmak için java bir çok dilden daha avantajlıdır. Servlet,JSP,JDBC,EJB,JMX gibi java teknolojileri bu tarz uygulamalar yazerken ciddi kolaylık sağlar.

Öncelikle bir programlama dilini öğrenip
Program yazmaya başladığımız da, yapacaklarımız birkaç adımdan oluşmaktadır;
rn

    rn
  • Öncelikle problem soyutlanırrn
  • Program kodları metin dosyaların yazılır(programlama aşaması)rn
  • Derleme, bağlama vs.işlemleri yapılırrn
  • Programdaki hatalar bulunur ve düzeltilir(bi nevi test aşaması)rn
  • Programı uygulama ortamına kurulur ve gerekli destek verilir.rn

rn
rn

JAVA SANAL MAKİNESİ(Java virtual Machine-JVM)

rn
Evet geldik programın çalışma prensibine: Bir metin dosyası olan program kodu, derleyici adını verdiğimiz bir araç tarafından ikili bir dosyaya yani bir programa çeviriyor .Bu program daha sonra yükleyici adını verdiğimiz bir başka araç tarafından sanal makine adındaki bir başka program üzerine konuyor. Bizim programımızı sanal makine çalıştırıyor.

Sanal makine, üzerinde çalıştığı işletim sistemiyle java uygulaması arasında bir nevi tercümanlık yapar. Peki bunun bize sağladığı avantaj nedir? Genelde her işletim sistemi faklı dilden anlar. Örneğin C++ da yazdığımız bi programı başka bir işletim sisteminde çalıştırmak için bi çok işlem yapmamız gerekir. İşte java da bu sorun ortana kalkıyor. Yani java bağımsız bir platformdur. Bütün işletim sistemlerinde çalışabilir.

Şimdi diyorsunuz ki, Java sanal makine üzerinde çalışıyor peki bu sanal makinin kendisi nasıl çalışıyor?
Sanal makine her işletim sistemi için ayrı ayrı defalarca düzenlenerek yazılan bir C++ (yine mi sennnn demeyin )uygulamasıdır. Şunu belirteyim; aslında java c++ a rakip olarak piyasa çıkmıştır ama ona bağlı olduğunu görmekteyiz.

Bu kadarlık bir giriş kısmı yeter kanımca. İsterseniz örneklere geçelim. Genelde tüm programlama dilerinde ilk örnek “merhaba” uygulaması oluyor; onun için bende bu örnekle başlayacağım

//merhaba.java uygulaması
//ilk java programımız.

class Merhaba{
public static void main(String args[]){
System.out.println(“MERHABA JAVA DUNYASI”);
}
}
Ekran çıktımız aşağıdaki gibidir:

rn


SINIFLAR VE NESNELER

rnJava platformunda çalıştırılan her uygulamaya ait bileşenler “class” ad uzantılı bir dosyada saklanır. Örneğin "Merhaba "uygulamasında tek bir bileşenimiz vardır. Bu nedenle "Merhaba.class" adında tek bir dosya vardır.
Java da her uygulama ilk önce bir class dosyasının yüklenmesi ile başlar. Daha sonra gerektikçe gereken class dosyaları yüklenir. Nesneye yönelik programlamada “böl ve yönet” mantığı hakimdir. Bu mantığın da dayandığı bir temel birim olmalıdır. Nesne tabanlı programlama da bu temel birime “sınıf(class)”adı verilir. Bunu bir benzentmeyle açıklamak istersek; bir cihaz düşünün: Eğer bu cihazın planı elimizdeyse o plana bakarak istediğmiz kadar cihaz üretebiliriz değil mi? Daha sonra da ürettiğimiz cihazları bize lazım olan yerlerde kullanabiliriz.
İşte bundan sonra biz üretim yaparken kullandığımız plana “sınıf”, ürettiğimiz her bir cihazada “nesne” adını verecez. Sanırım bu kavramları iyice anladık. Her nesnenin de kendine ait bir sınıfı olmalıdır. Biz bu cihaza baktığımız zaman hangi planla yapıldığını anlayabilmeliyiz. Burada sınıfsız bir nesnenin olmayacağını anlamış olmalıyız. Nasıl ki bir önceki örnekte bahsettiğimiz cihazların bir planı varsa, her nesnenin de bir sınıfı olmak zorundadır. Ancak nesnesiz bir sınıfın varlığından söz edebiliriz: Yani içi boş bir sınıf olabilir. Nasıl öğrencisiz bir sınıf yine aynen sınıf olma özelliğini koruyorsa, bu olayda aynen bu örnek gibidir. Sadece içi boş bir sınıfın hiçbir işlevi olmaz.
Şimdi yukarıdaki Merhaba.java örneğimizi iyice açıklayalım;

class Merhaba{
}
Burada bir sınıf tanımı oluşturuyoruz. Sınıf tanımı tanımı class sözcüğü ile başlar ve sınıf adı ile devam eder.

class{
<üyeler ve yöntemler>
}
Burada sınıf adlarının büyük harflerle başlatmak, C++ dan alınan bir mirastır ve devam ettirmeniz önerilir.

public static void main(String args[]) {
Bu satırdaki parametleri açıklayacak olursak;
public” sözcüğü yöntemin dışarıdan erişilebilir nitelikte olduğunu;
“static” sözcüğü sınıf tarafindan paylaşıldığını;
void” sözcüğü ise bir değer dönmediğini belirtir.

Yöntemin duyurusunda parantezler içinde string args[] diye bir kısım görüyoruz. Burada yöntemin aldığı parametleri belirtiriz. Bu parametreler yöntemin nasıl çalışacağını ile ilgili ayarlar olabilecekleri gibi, yöntemin işlenmesini istediğimiz bir veride olabilir. Parametreleri belirtirken sınıfını ve adını veriyoruz. Burada string sınıf adı, args da parametre adı, [ ] köşeli parentezler ise args ın bir dizi(array) olduğunu belirtir.
Evet arkadaşlar buraya kadar bir toparlama yapacak olursak;

(rn ) rn
{

}
Ayrıca bu stile GNU stili adı verilir.

rn

JAVA’DA DEĞİŞKENLER VE TEMEL VERİ TİPLERİ

rnJava da bir değişkeni kullnamak için önce değişkeni tanımlamak gerekir. Bunu yaparken değişkenin adını belirtiyoruz. Program içerisinde o ad bizim için artık o değişkenin yerine geçiyor. Bu da bize kolaylıklar sağlamış oluyor. Söz dizilimi ise aşağıdaki gibi yapılır;



Buna bir örnek verecek olursak; int x; int a,b; gibi… Peki buradaki int değişkeni nedir? Yukarıdaki tanımdan da anlaşılacağı gibi int bir tip olmalıdır.

rn

int Tipi

rnİlk temel veri tipimiz int dir. Bu tipi sık sık kullanırız zaten. Bu tamsayı değerleri saklamak için geliştirilmiş bir tiptir. Yani bu tip ondalıklı sayıları saklamıyor. Örnek int i=2; gibi tamsayıları saklar .int tipi Java da 4 BYTE yani 32 Bit uzunluğunda bit yer kaplar. Bu da artı/eksi(2^13-1) gibi bir aralığı gösterir. Bu sayı yaklaşık olarak 2 milyar diyebiliriz: Yani int tipi artı/eksi 2 milyar aralığındaki tamsayıları saklayabilir.
Bir değişkenle yapabileceğimiz ilk şey atama(assigment) olacaktır. Hemen bir örnek verelim;

İnt a;
a=10;
a=5+15; gibi…
Atama işleci (=), sağdaki değeri alır ve soldaki değişkene atar.

İnt a = 3;
a = (a%5); //3 mod 5 = 3
a = 5 % (a-1) ; //5 mod 2 =1 dir
//bundan sonra a=1 oldu.
Şimdi C++ da gördüğümüz ++ işaretini görelim;

İnt a=2;
a++; //a =3 oldu
int b = 2 + a++; //burada b nin değeri 5 dir, çünkü değişkenin sağındaki ++ işleci önce bir önceki değerini döndükten sonra a nın değerini bir artırır yani b= 6 olur gibi bir yanlışa düşmemeliyiz…
Aynı şekilde -- işlecide aynı kullanıma sahiptir: Farkı eksiltme işlemini yapmasıdır.

rn

LONG TİPİ

rnLong tipi, 8 byte yer kaplar; yani tamsayı sınırını 9 katrilyon seviyiyesine çeker.

rn

BOOLEAN TİPİ

rnBoolean tipini kullanarak doğru yanlış; yani mantıksal işlemler yaparız.
Boolean deger1, deger2;
Deger1=true
Deger2=false;
rn

rn

 

rn

rn
İşlem
rn
rn
Örnek
rn
rn
Değerlerin eşit olup olmadığını anlamak
rn
rn
Deger1==deger2 yada deger1!=deger2
rn
rn
Mantıksal değil
rn
rn
!deger1
rn
rn
Mantıksal ve
rn
rn
Deger1&&deger2
rn
rn
Mantıksal ya da
rn
rn
Deger1 || deger2
rn
rn
Mantıksal xor
rn
rn
Deger1 ^ deger2
rn
rn

CHAR TİPİ

rnKarakter sabilerin kullanmak için char tipi kullanılır.
Char c = ‘x’; Burada c değişken adı x ise karekter sabititidir. Buradn sonra progarama;

System.out.println(c); bu komut satırı bize ekranda x karekterini verir.

rn

FLOAT TİPİ

rnFloat tipi 32 bit uzunluğundaki gerçek sayıları tutar. Java da daha düşük hassasiyet isteyen hesaplamalarda kullanılır. Şunu ifade edelim float tipi genelde sondan 3 ondalık kısımı garantilemek için kullanılır. Ondan sonraki kısımları kesin olarak garanti edemez.

rn

DOUBLE TİPİ

rnDouble tipi son tipimiz olacak.double tipi float dan daha büyük ve hassas bir tiptir. Bellekte 64 bitlik bir yer kapsar.
Şimdi bir örnek daha verelim;

float f=5.16546543215445;
eşitliğin sağında bir double var solunda ise bir float var. Bilindiği üzere float 32 bitlik yer kaplarken, double 64 bitlik bir yer kaplar ve böyle bir işlemi yapmak istresek program hata verecektir.
İsterseniz bunu bir program içerisinde görelim;

class Hata{
public static void main(String args[]){
float fa;
double da=1.0;
fa=(float)da;
fa=da;
}
}
Programı derlediğimiz zaman bize ”possible loss of precision “, yani olası hassalık kaybı hatası verecektir. Bu makalemize isterseniz son verelim

 
  Bugün 4 ziyaretçi (6 klik) kişi burdaydı!  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol