4.05.2010

Java'ya Başlangıç

Bu dönem okulumda nesne yönelimli programlama adlı ders görüyorum ve Java üzerine gidiyoruz. Bende öğrenebildiğim kadar bilgi öğrenmeye çalışıyorum ve hem öğrendiklerimi unutmamak için hem de yavaş yavaş kendimi geliştirmek için bildiklerimi burada paylaşmak istedim.

Java nedir ne değildir diye burada uzun uzadıya bir açıklama yazmayacağım. Zira bunun hakkında internetten yığınla bilgi edinebilirsiniz. Ben burada daha çok öğrendiğim ve notlarıma yansıttığım konuları, örnek kodları ve programları yazacağım. Buna benzer yazılarla javayı daha da iyi öğreneceğimi sanıyorum. Öğrendikçe paylaşacağım sanırım paylaştıkça da öğreneceğim.

Efendim java ile ilgili ilk yapmamız gereken şey bir java programlarını geliştirme platformlarından birini bilgisayarımıza kurmaktır. Ben bunun için iki şey kullanıyorum. Birincisi Eclipse, diğeri ise Netbeans. İkisi de birbirinden güzel. 

Şimdi en başta söylediğim şeyi hatırlayalım. Java nesneye dayalı bir programlama dilidir. Yani java da her şey nesnedir. Tabi nesneleri yönetmek için referanslar kullanılır. Nesneye dayalı bir dilde nesnenin yanında sınıflar vardır, hemen her programlama dili gibi değişkenler vardır vs. 

Öncelikli olarak nesne kavramının iyi bilmemiz gerekiyor. En kolay yolu da sanırım gündelik hayattan örnek vermek. Çevremize bir bakarsak her şey bir nesnedir: İnsanlar, arabalar, binalar, ağaçlar vs. Bütün bu nesnelerin kendi içinde ya da diğerleri ile birtakım etkileşimleri olur. İşte nesneye dayalı programlama da bunlar gibi açıklanabilir. Benzetmeye uygun olması açısından  bir programın birbirleri ile temas halinde bulunan nesneler bütünü olarak tasarlanmasıdır diyebiliriz. 

Sınıf  (class)  kavramını ise birbirine benzer özellikler taşıyan nesnelerin oluşturduğu topluluk diyebiliriz. Örnek vermek gerekirse taşıt bir sınıftır. Sınıf kavramı içinde nesnelerden bahsettik o zaman taşıt sınıfının içinde nesneler olmalı. Mesela araba bir nesnedir, mesela motosiklet bir nesnedir ya da başka bir örnek bisiklet bir nesnedir. Sınıf kavramında bahsettiğimiz bir olgu daha vardı o da benzer özellik taşıyan nesneler idi. Peki saydığım bu nesneler benzer özellik taşıyor mu? Evet, mesela hepsinde fren var ( farklı şekillerde de olsa) ya da hepsinde tekerlek var gibi gibi gibi. 

Metot (method) kavramı ise bir sınıf içinde tanımlanmış nesneler vardır demiştik işte bu nesneler üzerine tanımlanan işlemlere ya da fonksiyonlara da metot denir. 

Başlangıç için sanırım bu kadar yeterli. Zaten yeri geldikçe tanımlamalar yapacağım. Eğer daha önce bir programlama dili eğitimi almamışsanız şimdi kısaca bahsedeceğim şeyleri iyice kapmalısınız. Yok eğer daha önce böyle bir eğitim almışsanız sanırım bildiklerinizden fazla bir şey söylemeyeceğim.

Programlama dillerinde kullanılan her değişkeni saklandığı verinin bir türü vardır. Bu veriler önceden tanımlanmış sayı, karakter ve Boole türünde olabileceği gibi kullanıcı tarafından da tanımlanan yapılar da olabilir. Bahsedeceğim  konu ise Java tarafından önceden tanımlanmış ve programlamanın temel yapı taşları olan veri türleri ve değişkenler.

Değişkenler, bir programdaki sayılar ve karakterler gibi verileri saklamak ve göstermek için  kullanılırlar. Örnek vermek gerekirse:

yumurtaSayisi= 6;

Burada yumurta sayısı bir değikendir ve değeri 6'ya eşitlenmiştir.

Değişken adlarının anlaşılabilir olması programı okuyan bir kişinin o değişkenin ne amaçla kullandığını anlaması açısından önemlidir. İleride yapacağımız değişiklikleri de kolayca yönetebilmek açısından da ayrı bir önemi vardır. Bu yüzden değişken adlarını olabildiğince anlaşılabilir kılmalıyız. 

Ayrıca bilmemiz gereken bir diğer konu ise javanın büyük-küçük harf duyarlı olmasıdır. Yani, yumurtaSayisi ile yumurtasayisi değişkenleri farklı birer değişkendir. Bir diğer husus ise javada değişken adları yalnızca harfler, sayılar ve '_' (alt çizgi)  karakterlerinden oluşmasıdır.  Bir belirleyici ismi mutlaka bir harfle başlamalıdır. 

Değişkenler sayı, karakter ve Boole türlerini göstermek için kullanılır. Bir değişkenin türü onun ne tür bir veri saklayabileceğini gösterir. 

------>   Tam sayılar ile ilgili bilgileri tutan değişkenler:
  byte, short, int  ve long.

------>   Ondalık sayıları tutan değişkenler:
  float ve double. 

------>   Karakter değişkeni:
  char.

------>   Boole değişkeni:
  boolean.

Tabi bu veri türlerine gelişigüzel bir değer ataması yapamıyoruz. Her veri türünün bir aralığı vardır. O aralığın dışına taşarsa hata oluşur.

Biraz açmak gerekirse:
'byte' türü bir tam sayı değeri alıyordu. 'byte' türünün büyüklüğü 1 bayttır. 1 bayt 8 bittir. ikilik sistemde 2 üzeri 8, 256 eder. yani 256 tane değer alabilir. E peki hangi değerleri alabilir? Tam sayı dendiğinde akla hem negatif hem de pozitif değerler gelmiyor mu? Tamam o zaman. " -128 ile +127" arası değer alabilir deriz. ( 0 (sıfır) da bir değer olduğu için + 128 olmaz.)

'short' türü iki bayttır. İki bayt 8 bittir. 2 üzeri 8 ne eder? 
65536. Bunun yarısı negatif sayılara yarısı da pozitif sayılara eklenir. Yani -32768 ile 32767 arası (sıfırı unutmamak gerek)

Bu hesaplamaları int ve long içinde yapabiliriz. 'int' 4 bayt, 'long' ise 8 bayttır. Artık matematik size kalmış. 

Bunların dışında ondalık sayılar için 'float' ve 'double' veri türlerini kullanıyoruz. 'float' 4 bayt yer kaplar ve değer aralığı :
1.7e-308’den 1.7e+308’e kadar olan aralığı kaplar. ( e 10 üzeri anlamındadır.  e-308, 10 üzeri -308 ) 

'double' veri türü ise:
3.4e-038’den 3.4e+038’e kadar olan aralığı kaplar.

Karakter olarak kullanılan veri türü 'char' ise 2 baytlık büyüklüğe sahiptir ve alabileceği değerler Unikod karakterleridir.

Boole olarak kullanılan veri türü  'boolean' da 1 bitlik yer kaplar ve alabileceği iki değer vardır. Bunlar true/false 'dur. 

İlk yazı için bu kadar...

Hiç yorum yok:

Yorum Gönder