- Bir değişkeni türüyle tanımlamak ve ona değer atamak
- Bir iş için uygun ilkel türü seçmek
- Tam sayı bölmesi, kalan ve tür dönüşümüyle doğru hesap yapmak
Bir çevrim içi mağaza her ürünün adını, fiyatını, depoda kaç tane kaldığını ve indirimde olup olmadığını hatırlamak zorundadır. Programlar bu tür bilgileri değişkenlerde saklar. Java'da her değişkenin önceden bilinen bir türü vardır ve bu tür sonradan değişmez; böyle dillere statik tipli diller denir.
Değişken tanımlamak
Bir değişken oluşturmak için önce türünü, sonra adını yazarsın; istersen = ile hemen bir değer verirsin: int age = 14;. Daha sonra değişkene yeni bir değer atayabilirsin ama farklı türde bir değer atayamazsın: int türündeki bir değişkene metin yazamazsın.
public class Main {
public static void main(String[] args) {
String name = "Leyla";
int age = 14;
double height = 1.62;
boolean isStudent = true;
char grade = 'A';
System.out.println(name + " is " + age + " years old.");
System.out.println("Height: " + height + " m");
System.out.println("Student: " + isStudent + ", grade: " + grade);
age = age + 1;
System.out.println("Next year: " + age);
}
}Leyla is 14 years old. Height: 1.62 m Student: true, grade: A Next year: 15
İlkel türler
Java'da sekiz ilkel tür (primitive type) vardır; bunlar dilin en basit yapı taşlarıdır. Bellekte ne kadar yer kapladıkları ve hangi değerleri tutabildikleri bakımından birbirinden ayrılırlar. Tam sayılar için genellikle int, ondalıklı sayılar için double seçilir.
| Tür | Boyut | Ne tutar | Örnek |
|---|---|---|---|
byte | 8 bit | −128 ile 127 arasındaki tam sayılar | byte level = 5; |
short | 16 bit | −32.768 ile 32.767 arasındaki tam sayılar | short year = 2026; |
int | 32 bit | yaklaşık ±2,1 milyar | int people = 10_000_000; |
long | 64 bit | yaklaşık ±9,2 · 10¹⁸ | long stars = 3_000_000_000L; |
float | 32 bit | ondalıklı sayı, ~7 basamak hassasiyet | float t = 36.6f; |
double | 64 bit | ondalıklı sayı, ~15–16 basamak hassasiyet | double price = 9.99; |
char | 16 bit | tek bir karakter (Unicode) | char grade = 'A'; |
boolean | – | true ya da false | boolean ok = true; |
long değerinin sonuna L, float değerinin sonuna f yazılır. Alt çizgiler _ büyük sayıların okunmasını kolaylaştırır.String bu listede yok: ilkel bir tür değil, bir sınıftır; bu yüzden büyük harfle başlar. Karakter dizilerini bir sonraki derste ayrıntılı olarak tanıyacaksın. Dikkat: char değeri tek tırnakla ('A'), String ise çift tırnakla yazılır.
byte 8 bitten oluşur. Bitleri açıp kapat: 8 bit 256 farklı birleşim verir; Java bunları −128 ile 127 arasındaki sayılar için kullanır.Aritmetik operatörler
Java'da +, -, *, / ve % (bölümden kalan) operatörleri vardır. En önemli ayrıntı şudur: iki tam sayıyı böldüğünde sonuç da tam sayı olur, ondalık kısım basitçe atılır. Yani 17 / 5 işleminin sonucu 3.4 değil, 3'tür.
public class Main {
public static void main(String[] args) {
int a = 17;
int b = 5;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
System.out.println(17.0 / 5);
int count = 10;
count += 5;
count++;
System.out.println(count);
}
}22 12 85 3 2 3.4 16
Sayılardan biri ondalıklı olduğu anda (17.0) sonuç da ondalıklı olur. count += 5, count = count + 5 ifadesinin kısa yazılışıdır; -=, *= ve /= de aynı şekilde çalışır. count++ değişkeni 1 artırır, count-- ise 1 azaltır.
Bir film 135 dakika sürüyor. Bu süre saat ve dakika olarak nasıl gösterilir?
Çözümü gösterÇözümü gizle
135 / 60 = 2.Kalan dakikalar — kalan:
135 % 60 = 15.System.out.println(135 / 60 + " h " + 135 % 60 + " min"); satırı 2 h 15 min yazar.Tür dönüşümü
Bazen bir değeri bir türden başka bir türe dönüştürmek gerekir. Küçük türden büyük türe (genişletme, örneğin int → double) Java bunu kendiliğinden ve kayıpsız yapar. Büyük türden küçük türe (daraltma, örneğin double → int) geçerken ise bilgi kaybolabilir; bu yüzden türü parantez içinde yazarak dönüşümü açıkça istemelisin: (int) price.
public class Main {
public static void main(String[] args) {
int apples = 7;
double d = apples;
System.out.println(d);
double price = 9.99;
int whole = (int) price;
System.out.println(whole);
int sum = 7, people = 2;
System.out.println(sum / people);
System.out.println((double) sum / people);
System.out.println((int) 'A');
System.out.println((char) 66);
int max = Integer.MAX_VALUE;
System.out.println(max + 1);
}
}7.0 9 3 3.5 65 B -2147483648
(int) 9.99sonucu9'dur: ondalık kısım yuvarlanmaz, atılır.(double) sum / peopleifadesinde öncesumdoubletürüne çevrilir; bu yüzden bölme ondalıklı yapılır:3.5.charaslında bir sayıdır:'A'karakterinin kodu 65'tir, 66 ise'B'karakteridir.- En büyük
intdeğerine 1 eklemek taşmaya (overflow) yol açar: değer en küçük negatif sayıya “döner”.
Önemli noktalar
- Java statik tiplidir: değişken
tür ad = değer;şeklinde tanımlanır ve türü değişmez. - Sekiz ilkel tür vardır:
byte,short,int,long,float,double,char,boolean;Stringise bir sınıftır. - İki tam sayının bölümü tam sayıdır:
17 / 5=3,17 % 5=2. - Genişletme otomatiktir; daraltma için açık dönüşüm gerekir:
(int) 9.99=9. finalbir sabit oluşturur,varise türü derleyicinin kendisinin belirlemesini sağlar.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
System.out.println(17 / 5); ekrana ne yazar?