Java Söz Dizimi

Bilgisayar ve Programlamaya Giriş
Kaynak dosyaTürlerDeğişkenlerOperatörlerGirdi
Sercan KÜLCÜ · Giresun Üniversitesi

Giriş

Öğrenme Çıktıları

Araçlar

Kaynak dosyayı derleyip çalıştırmak.

Türler

İlkel türleri ve değer aralıklarını seçmek.

İfadeler

Atama, dönüşüm ve operatörleri kullanmak.

Girdi

Scanner ile temel kullanıcı girdisi almak.

Kaynak Kod

Düz Metin Kaynak Dosyası

  • .java dosyası düz metindir ve farklı düzenleyicilerle açılabilir.
  • Sürüm kontrol sistemleri satır değişikliklerini izleyebilir.
  • Kaynak dosyada kodlama, satır sonu ve dosya adı tutarlı olmalıdır.

Kaynak Kod

Programlama Araçları

Düzenleyici

Kaynak kodu yazma.

IDE

Proje, tamamlama, derleme ve hata ayıklama.

javac

Kaynak kodu bytecode'a derleme.

java

Sınıfı JVM üzerinde çalıştırma.

Javadoc

API belgesi üretme.

Sürüm kontrolü

Değişiklik geçmişi.

Kaynak Kod

Java Dosyasının Yapısı

package okul;

import java.util.Scanner;

public class Program {
    public static void main(String[] args) {
        System.out.println("Merhaba");
    }
}
  • package ve import bildirimleri sınıftan önce gelir.
  • public sınıf adı dosya adıyla eşleşir.

Çalıştırma

Derleme ve Çalıştırma

Program.java
javac Program.java
Program.class
java Program
  • Derleme hataları önce giderilir.
  • Çalıştırma komutunda .class uzantısı yazılmaz.

Çalıştırma

Bytecode ve JVM

  • Derleyici işlemciye özel makine kodu yerine bytecode üretir.
  • JVM bytecode'u bulunduğu platformda yürütür.
  • Sınıf yükleme, doğrulama ve bellek yönetimi çalışma ortamının parçalarıdır.

Dil Yapısı

Temel Programlama Unsurları

  • Belirteçler anahtar kelime, tanımlayıcı, sabit değer, işleç ve ayırıcıları içerir.
  • Java büyük-küçük harfe duyarlıdır: sayi ve Sayi farklı adlardır.
  • Deyimler çoğunlukla noktalı virgülle biter; bloklar süslü parantezle çevrilir.

Veri Türleri

İlkel Veri Türleri

TürYaklaşık kullanımÖrnek
byte / shortKüçük tam sayılarbyte seviye = 7;
intGenel tam sayıint adet = 42;
longBüyük tam sayılong nüfus = 8_000_000L;
floatOndalıklı, düşük hassasiyetfloat oran = 1.5F;
doubleGenel ondalıklı sayıdouble fiyat = 19.90;
char / booleanKarakter ve mantıkchar not='A';

Veri Türleri

Tam Sayı Türü Seçimi

  • int çoğu tam sayı hesabı için varsayılan seçimdir.
  • long sabitleri gerektiğinde L son ekiyle yazılır.
  • Tür aralığını aşan işlem taşmaya yol açabilir; Java bunu her zaman hata olarak bildirmez.

Veri Türleri

Ondalıklı Sayılar

  • double çoğu yaklaşık sayısal hesap için varsayılan türdür.
  • float sabiti F son eki ister.
  • İkili kayan nokta bazı ondalık değerleri tam temsil edemez.
  • Para gibi kesin ondalık hesaplarda uygun sınıf ve yuvarlama kuralı seçilmelidir.

Veri Türleri

char ve boolean

  • char tek tırnakla yazılan bir UTF-16 kod birimini saklar.
  • String çift tırnakla yazılan bir nesnedir; char ile aynı tür değildir.
  • boolean yalnızca true veya false değerini alır.

Değişkenler

Tanımlayıcı Kuralları

KuralGeçerliGeçersiz
Harf, _ veya $ ile başlarogrenci11ogrenci
Boşluk içermeztoplamPuantoplam puan
Anahtar kelime değildirsinifNoclass
Büyük-küçük harfe duyarlıpuan ve PuanAynı değişken sanmak

Değişkenler

İsimlendirme

  • Değişken ve metot adlarında lowerCamelCase kullanılır.
  • Sınıf adları UpperCamelCase biçimindedir.
  • Sabitler genellikle BÜYÜK_HARF_VE_ALT_ÇİZGİ ile adlandırılır.
  • Ad, değerin rolünü açıklamalıdır: x yerine toplamPuan.

Değişkenler

Tanımlama ve İlk Değer

int yaş;          // tanımlama
yaş = 20;        // atama
double ortalama = 82.5; // birlikte
final int MAKSIMUM = 100; // sabit
  • Yerel değişken okunmadan önce değer almalıdır.
  • final değişkene yalnızca bir kez atama yapılır.

Dönüşüm

Atama Uyumluluğu

  • Daha dar türden daha geniş uyumlu türe dönüşüm çoğunlukla otomatik yapılır.
  • Daraltma bilgi kaybı riski taşıdığı için açık dönüşüm ister.
  • Dönüşüm, kaynak değeri değil üretilen sonucu etkiler.

Dönüşüm

Tür Dönüşümü

int adet = 7;
double geniş = adet;       // 7.0
double oran = 9.8;
int dar = (int) oran;      // 9
int bölüm = 5 / 2;         // 2
double doğru = 5.0 / 2;   // 2.5
  • double değerini int'e çevirmek kesir bölümünü atar.
  • İşlemden sonra yapılan dönüşüm kaybolan kesri geri getirmez.

Operatörler

Aritmetik Operatörler

İşleçAnlamÖrnek
+ -Toplama / çıkarmaa + b
* /Çarpma / bölmea * b
%Kalansayi % 2
++ --Bir artır / azalti++
+= -=Bileşik atamatoplam += değer

Operatörler

Karşılaştırma ve Mantık

İşleçAnlamÖrnek
== !=Eşit / farklıa == b
< <= > >=Sıra karşılaştırmasınot >= 60
&&İki koşul da doğruyaş >= 18 && belgeVar
||En az biri doğruhaftaSonu || tatil
!Mantıksal değil!aktif

Operatörler

İşlem Önceliği

  • Parantez içi önce değerlendirilir.
  • Çarpma, bölme ve kalan; toplama ve çıkarmadan önce gelir.
  • Karşılaştırmalar aritmetikten, mantıksal işlemler karşılaştırmadan sonra değerlendirilir.
  • Karmaşık ifadelerde parantez, niyeti görünür kılar.

Operatörler

Kısa Devre Değerlendirme

if (metin != null && !metin.isEmpty()) {
    System.out.println(metin.length());
}
  • && ilk koşul false ise ikinci koşulu çalıştırmaz.
  • Bu davranış null değer üzerinde metot çağrısını önler.

Kaynak Kod

Açıklamalar

  • // satır sonuna kadar açıklamadır.
  • /* ... */ birden fazla satırı kapsar.
  • /** ... */ API belgesi için Javadoc açıklamasıdır.
  • Açıklama kodun ne yaptığını tekrarlamak yerine nedenini açıklamalıdır.

Girdi

Scanner ile Girdi

Scanner klavye = new Scanner(System.in);
System.out.print("Yaş: ");
int yaş = klavye.nextInt();
klavye.nextLine(); // satır sonunu tüket
System.out.print("Ad: ");
String ad = klavye.nextLine();
  • nextInt sayıyı, nextLine tüm satırı okur.
  • Farklı okuma metotları birlikte kullanılırken kalan satır sonuna dikkat edilir.

Girdi

Girdi Doğrulama

  • Kullanıcının her zaman beklenen türde değer gireceği varsayılmamalıdır.
  • Aralık ve iş kuralı doğrulaması tür kontrolünden sonra yapılır.
  • Hata iletisi beklenen biçimi açıkça söylemeli ve yeniden deneme yolu sunmalıdır.

Çıktı

Biçimli Çıktı

String ad = "Ada";
double ortalama = 87.456;
System.out.printf("%-10s %6.2f%n", ad, ortalama);
  • %s metin, %d tam sayı, %f ondalıklı sayı içindir.
  • .2 ondalık basamak sayısını, %n platforma uygun satır sonunu belirtir.

Hata Ayıklama

Yaygın Hatalar

  • = atama, == karşılaştırmadır.
  • Tam sayı bölmesi kesir üretmez.
  • Değişken kapsamı süslü parantezlerle sınırlanabilir.
  • Noktalı virgülün yanlış konumu boş deyim oluşturabilir.
  • String içeriği == ile karşılaştırılmamalıdır.

Özet

Bölüm Özeti

  • Java kaynak dosyası javac ile bytecode'a derlenir ve JVM'de çalışır.
  • İlkel türler farklı değer kümeleri ve bellek gereksinimleri taşır.
  • Tanımlayıcılar kurallara uymalı, adlar değerin rolünü açıklamalıdır.
  • Operatör önceliği ve tür dönüşümü sonuç üzerinde doğrudan etkilidir.
  • Kullanıcı girdisi hem tür hem iş kuralı açısından doğrulanmalıdır.

Özet

Kontrol Soruları

  1. public sınıf adı ile dosya adı arasında nasıl bir ilişki vardır?
  2. int ve double bölmesi nasıl farklı sonuç verir?
  3. Daraltıcı dönüşüm neden açıkça yazılır?
  4. && işleci kısa devreyi nasıl kullanır?
  5. nextInt sonrasında nextLine kullanırken neye dikkat edilir?

Son

Java Söz Dizimi
1 / 1Sercan KÜLCÜ, Tüm hakları saklıdır.

← → veya boşluk ile gezinin · F: tam ekran · Home/End: ilk/son slayt