Java’nın temellerine başlayacak olursak yapısı nasıl olduğuna hemen bu sayfada bakıyor olacağız.
Başlayalım “Merhaba Hayalindeki Yazılım!”
public class Ornek {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Merhaba Hayalindeki Yazılım!");
}
}
Bu dosyayı mutlaka “Ornek.java” ismi ile kaydediyoruz.
Programın neler yaptığına kısaca bakalım.
Java’da ekran çıktısı almak
- Bu metod ekrana bir yazı yazdırmak için kullanıyoruz. Ekrana String, int boolean türünde değerler basılabilir.
- Ekrana yazdıktan sonra alt satıra geçecektir.
System.out.println(“Hello, World!”); // String
System.out.println(42); // int
System.out.println(true); // boolean
System.out.println(4.2); // double
System.out.println(“Meaning = “ + 42);
Sınıf Tanımı (class)
- Bütün program tek bir sınıf içerisinde kapsüllenmiştir (encapsulation).
public class Ornek {}
- Bir sınıf, Java için derleme birimi, yani derleyici tarafından kabul edilecek en küçük dil öğesidir. Ornek sınıfı tanımlayıcısıdır (identifier).
- public bir erişim belirticidir (modifier). Java’da sınıf tanımlayıcıları aşağıdakiler olabilir.
main Metodu
public static void main(String[] args) { }
- Bir Java programının çalışması için gerekli olan ana metodumuz (fonksiyon). Bütün Java uygulamaları main()’in çağrılmasıyla başlar.
- static anahtar sözcüğü o sınıfa ait bir metodu örneklemek zorunda kalmadan çağrılabilmesini sağlar. Bu sayede main() herhangi bir nesne oluşturulmadan çağrılabilir.
- Program çalıştırılırken girilen komut satırı argümanları args string dizisi içerisinde tutulur.
Değişken Tanımlama Örneği
public class Ornek {
public static void main(String[] args) {
int num = 100;
System.out.println("Sayımız:"+ num);
num = num*2;
System.out.print("Sayımızın iki katı = ");
System.out.println(num);
}
}
Program Derleme
C:\>javac Ornek.java
- javac Java derleyicisi
- Ornek.java kaynak kodumuz
- Ornek.class derleyici tarafından oluşturulan object code. Diğer adıyla Java byte-code
Çalıştırılması
- java Java Sanal Makinemizin ismi (JVM)
- Ornek Java byte-code.
- Komut satırına giderek javac ornek.java yazarsanız karşınıza merhaba hayalindeki yazılım yazısı gelecektir.
Değişkenler ve Veri Tipleri
- Java katı yazılımlı bir dildir. Java’nın güvenilirliği ve sağlamlığı bu gerçekten kaynaklanır.
- Örneğin C/C++’ta ondalık bir değeri bir tamsayıya atayabilirsiniz fakat Java’da yapamazsınız.
- Başlangıçta bu duruma alışmakta biraz zorlanabilirsiniz. Fakat bu sayede kodumuzdaki hata olasılıkları en aza inecektir.
int num;
double d = 100.202;
num = d; //Hata verecektir.
Değişken Tanımlama Kuralları
- Her değişken bir tipe sahip olmalıdır.
- Değişkenler değer atamadan kullanılamazlar.
- Aynı tip değişkenler aynı satırda tanımlanabilirler.
- Değişken isimlerinde Türkçe karakter kullanılmamalıdır.
- Değişken isimleri rakam ile başlayamaz.
- Java‘nın büyük küçük harf duyarlılığı vardır.
Değişken Tanımlama Örnekleri
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=10;
String isim= "Burak", soyIsim="Kocatepe";
int $y = 0, _x = 12, arif216 = 216;
System.out.println("Hoş Geldin "+ isim +" "+ soyIsim);
System.out.println("Sayıların Toplamı="+String.valueOf(a+$y+_x));
}
Bir Değişkene Dinamik Değer Vermek
public class dynamic {
public static void main(String[] args) {
// TODO Auto-generated method stub
double a=3.0, b=4.0;
//Değişkene dinamik değer atanması
double c=Math.sqrt(a*a + b*b);
System.out.print(c);
}
}
Veri Tipleri
- Tamsayılar (byte, short, int, long)
- Ondalıklı Sayılar (float ve double)
- Karakterler (char)
- Boolean (boolean)
Tamsayılar
İsim | Genişlik | Aralık |
byte | 8 | -128,127 |
short | 16 | -32.768, 32.768 |
int | 32 | -2.147.483.468, 2.147.483.468 |
long | 64 | Yaklaşık olarak -9×1018 ile 9×1018 |
- Java’da dört tamsayı tipi tanımlıdır.
- Java’da byte, short, int gibi sayı türleri içeren bir ifadeniz varsa hesaplama yapmadan önce tüm ifadeler int’e yükseltilecektir.
- Bu işleme promote adı verilir.
Ondalıklı Sayı Tipleri
İsim | Genişlik | Aralık |
float | 32 | 3,4e-308, 3,4e+308 |
Double | 64 | 1,7e-308, 1,7e+308 |
- Java’da Reel sayılar olarakta bilinen ondlıklı sayılar float tek ve double çift duyarlılıklı sayılar olmak üzere ikiye ayrıllır.
- float veri tipi double göre hafızada daha az yer kaplar ve çok kesin ondalık kısmı küçük olan sayılar için daha uygundur.
Karakterler
İsim | Genişlik | Aralık |
Char | 16 | 0-65.536 |
- Java karakterleri göstermek için Unicode kullanır. Unicode tüm insan dillerinde bulunan karakterleri barındıran tamamen uluslararası bir karakter setidir.
- Unicode içerisinde ASCII karakter seti 0-255 arasında yerleştirilmiştir.
char ch1=88, ch2='Y';
System.out.println("1. karakter:"+ch1+" 2.karkter:"+ch2);
ch1++;
System.out.println("1. karakterin yeni değeri:"+ ch1);
Özel Karakterler
Özel Karakter | Açıklama |
\’ | Tek tırnak |
\” | Çift tırnak |
\\ | Ters eğri çizgi |
\r | Satır başı |
\n | Yeni satır |
\t | Tab(sekme) |
\b | Geri boşluk (backspace) |
Boolean
- Yalnızca iki değer alır: true veya false. Bellekte 1 bitlik yer kaplar. Varsayılan değeri false’dur.
int a=10, b=9;
boolean z=(a==b);
System.out.println(z)
----------------------------
false
Stringler
- String tanımı C++ dili ile aynıdır.
- İki çift tırnak içerisinde bir dizi karakter eklenerek tanımlanır.
- C/C++ aksine Java’da Stringler nesne olarak tanımlanır. C++’ta ise stringler karakter dizileridir.
public static void main(String[] args) {
// String Örnekleri
String str=”Merhaba Java”;
String user=”Ben \’Burak\'”;
System.out.println(str +” “+ user);
}
Diziler (Arrays)
- Diziler aynı isimle atıfta bulunulan bir grup aynı tip değişkene denir.
- Dizideki belirli bir değişkene indis (index) yardımı ile erişilir.
- Dizi tanımlamaları C++ den biraz farklıdır.
int time[]; //Diziye ait tip ve değişken ismi
time = new int[24]; //Hafızda ayrılması
- Dizinin fiziksel olarak tanımlandığı alan hafızada 24*16 bit lik alan ayrılması yapılır. new bellek tahsisi yapan özel bir operatördür.
int minute[]=new int[60]; //ikinci yöntem
Dizi Örneği
public static void main(String[] args) {
// Dizi Örneği
String days[] = new String[7];
days[0]="Pazartesi";
days[1]="Salı";
days[2]="Çarşamba";
days[3]="Perşembe";
days[4]="Cuma";
days[5]="Cumartesi";
days[6]="Pazar";
System.out.println("Bugün günlerden "+ days[0]);
}
--------------------
Bugün günlerden Pazartesi