0% found this document useful (0 votes)
7 views217 pages

Java Ders 11

Uploaded by

atilgan bos
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views217 pages

Java Ders 11

Uploaded by

atilgan bos
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

23 EKIM 2021

DERS 1

Genel Hatirlatmalar
Java Giris

Mehmet BULUTLUOZ
[Link] [Link].
Genel Hatirlatmalar

1. Derslere Hazirlanin ve Zamaninda Katılin

2. Dersi Dikkatli Dinleyin

3. Derste Aktif Olun

4. Anlamadiklarinizi Sorun

5. Ödevlerinizi Yapin (Kod yazma araba kullanma


gibidir)
6. Her Dersten Sonra Tekrar Yapin
Genel Hatirlatmalar

7. Basari = Egitim + Calismak


8. Grup calismalari yapin, En iyi ogrenme yontemi
ogretmektir
9. Mentoring toplantilarini kacirmayin

10. Maillerinizi gunluk kontrol edin

11. Yoklama yapiliyor zooma isminizle girin


[Link]
12. Teknik destek slack @technical support
13. Ders esnasinda canli destek
Haluk Bilgin, Fatih Kilic, Ebubekir Sahin
14. Customer service +1 917 768 74 66
Mentoring
Mentoring toplantıları her hafta team tarafından ortak belirlenen gün ve saatte düzenli
şekilde yapılmaktadır.
✓ Mentoring faaliyetleri STUDENT COACHING (öğrenci danışmanlığı) olarak yapılmaktadır.
✓ Mentoring faaliyetlerinde...
➢ Haftanın görülen derslerin değerlendirmesi...
➢ Derslerle ilgili döküman desteğinin sağlanması....
➢ Ödev proje vs çalışmaların takip edilmesi...
➢ Team work’lerin takip edilmesi...
➢ FlipGrid çalışmalarının takip edilmesi...
➢ Java verbal çalışmalarının takip edilmesi...
➢ Java coding çalışmalarının takip edilmesi...
➢ Interview çalışmalarının takip edilmesi...

DÜZENLİ OLARAK YAPILMAKTADIR....


Gorulecek Dersler
Automation Engineer:

Java Developer

Mobile Developer
Ders Isleyisi
Bilmeniz Gerekenler

1. Maillerinizi gunluk kontrol edin


2. Dersleri zoom’dan izliyoruz ama mesajlasma icin slack kullaniyoruz
- Iki slack kanalimiz var
- Direk mesaj
- Kod paylasma (snippet)
- Mesaj silme ve edit
- Pin yapma

3. Google Clasroom
- Tum ders notlari, zoom linki ve videolar Google
Classroom’dan paylasilacak
- Maillerinize davetiye gonderildi
Ders Isleyisi
Bilmeniz Gerekenler

1. Ders tam zamaninda baslar.

2. Dersin basinda 10 dakika bir


onceki gunun kisa tekrari yapilir

3. Her konu bittiginde ertesi gun


kisa tekrardan sonra
Socrative testi yapilir ( 10 -15
dk) sonra o sorular cozulerek
konu tekrari yapilir
Programlama Dili Nedir ?
Hareket

(Islem Yap) Codes JDK Binary Islem


Compile
package rentalstore; (Derleme)
class Customer {
11010101010101001010001010
private String _name; 10101001011110000010001001
} 01101010101010010111000110
public String getMovie(Movie 01000101001010111000100000
movie) { 01010010101110001001010111
Movie.NEW_RELEASE),
return [Link]();
Nicin Java ?

1- Ogrenmesi kolay
2- Dunyada en cok kullanilan programlama dili
Sun'a göre 3 milyar cihaz Java kullanıyor. Şu anda
Java'nın kullanıldığı birçok cihaz var.
Bunlardan bazıları şu şekildedir:
- Acrobat reader, medya oynatıcı, antivirüs vb.
- Masaüstü Uygulamaları
- Bankacılık uygulamaları gibi Kurumsal
Uygulamalar
- Cep Telefonu
- Akıllı kart uygulamalari
- Robotik uygulamalari
- Oyunlar
3- Java “Object Oriented Programming (OOP)” Language’ dir.
Object Oriented Programming Nedir?

Objects (Nesne) Application (Urun)


1- Feature (Fields veya Variables)
Pasif ozellik (renk,sekil,isim)
2- Functionality (Method)
Aktif ozellik (tasima,degistirme)
Bir Object Nasil Olusturulur?

Class(Object Kalibi) Birden fazla Obje birlestirilir


Object

Field Method
(Variables) (Functions)

Application
Object Nasil Kullanilir ?

Ogretmen
Ogrenci

Dersler

Personel Notlar
Bir Class Hangi Bolumlerden Olusur?

1 – Class Declaration
1 2
2 – Curly braces : Suslu parantez

3 – Class Body : Suslu parantezler


arasinda kalan ve kodlarimizi
3 yazdigimiz bolum

2
Bir Class’in Icinde Neler Bulunur?

1 – Field / Variables
1

2 2 – Main Method

3 3 – Method
Class Olustururken (Declaration) Kullanilan Keyword’ler Nelerdir?

public class MyFirstClass { }


1 2 3 4
1 public : Access Modifier (Erisim duzenleyici) : class’a kimlerin erisebilecegini
belirler. Public olursa her yerden erisilebilir
default : Sadece bulundugu Package’den kullanilabilir
2 class : Yazdigimiz kodun class oldugunu belirtir
3 MyFirstClass : Olusturdugumuz class’in ismidir. Class’a istedigimiz ismi verebiliriz
ancak isim verilirken genelde class’da yapilan isleme uygun bir isim secilmesine
dikkat edilir.
Isim mutlaka buyuk harfle baslar, birden fazla kelimeden olusursa sonraki
kelimelerin ilk harfleri de buyuk harf yazilir (Camel Case)
4 Body (Class Body) : { } arasinda kalan kodlarimizi yazdigimiz bolumdur
Method Olusutururken Kullanilan Keyword’ler Nelerdir?
public int myFirstMethod () { }
1 2 3 4 5
1 public : Access Modifier (Erisim duzenleyici):methoda’a kimlerin erisebilecegini belirler
private: Sadece bulundugu class’da kullanilabilir
protected : Sedece icinde bulundugu class ve child class’lardan kullanilir
2 Int : Return Type, methodun ne urettigini ve bize dondurdugunu belirtir
3 myFirstMethod :Olusturdugumuz method’un ismidir. Isim mutlaka kucuk harfle baslar,
birden fazla kelimeden olusursa sonraki kelimelerin ilk harfleri buyuk harf yazilir
(Camel Case)
4 () parantez: Methodlarda isimden sonra parantez kullanilir ve gerektiginde parantez
icinde parametre yazilir.
5 Body (Method Body) : { } arasinda kalan kodlarimizi yazdigimiz bolumdur
Main Method
public static void main(String[ ] args) { }

➢ main method, java’nin calismaya basladigi


giristir. (Entry Point)
➢ main method olusturulurken yazilmasi gereken
syntax (kod dizimi) degistirilemez
➢ Parantez icinde yazilan (String[] args) java’nin
calismasi icin gerekli olan parametreleri
barindirir ve olmasi sarttir.
Araba Motor

Java Project Main Method


Yorum Cumlesi (Comment) Nasil Eklenir ?
➢ Comments : Java tarafindan
calistirilmayan, amaci kodlarin
aciklanmasi veya bir konuda
bilgi vermek olan cumlelerdir
➢ Genelde iki kullanim vardir

1) Tek satirlik comment

2) Cok satirlik comment


Data
Data bilgisayar tarafından işlenen (processed) veya depolanan (stored) bilgidir.

Java’nin kullandığı (use) veya ürettiği (produce) her şey data’dır.


Bit
bit hafizadaki en küçük data parçasıdır. Her “bit” bir binary value içerir, 0 veya 1.

Note: 8 bit =1 byte

Bit

Byte

Memory
(Hafiza)
23 EKIM 2021
DERS 2

Java Giris
Variables

Mehmet BULUTLUOZ
[Link] [Link].
Variables (Degisken) Olusturma
Declaration
Variable bellekte (memory) ayrilmis olan alanin (reserved area) adidir.

Variable icinde deger saklayan bir konteynirdir (container).


Bir değişkende saklanan değer, program yürütülürken değiştirilebilir.

Java'da, tüm değişkenler kullanılmadan önce deklare


edilmelidir (variable declaration)

Variable declaration icin iki seyi belirtmemiz gerekiyor


1- Data type (data turu)
2- Variable Name (degisken ismi)
Variables Deger Atama
Assignment
Varolan bir variable’a deger atamaya assignment (atama) denir.

1- Deger atamasi yapilirken data turune uygun deger atanmalidir. Diger turlu Java hata verir.
Variables Deger Atama
Assignment
2- Ilk once declaration, daha sonra atama yapilabilir.
3- Bir defa declaration yapildiktan sonra, birden fazla
atama yapilabilir. Java son degeri tutar, oncekini siler.
Variables Deger Atama
Assignment
4- Ayni data turunde birden fazla variable tek komutla deklare edilebilir.

5- Ayni data turunde birden fazla variable tek komutla deklare edilip deger atanabilir.
Eclips Kullanim

1- Proje olusturma

File -- New -- Project -- (Java Project) Next -- java2021FallTr -- finish

2- Package (paket) olusturma

src dosyasina sag click -- New -- Package -- day01variables -- finish

3- Class olusturma

day01variables dosyasina sag click -- New -- Class -- C01_Variables01 -- finish

4- Main method olusturma

public static void main(String[] args) yazarak main methodu olusturalim


Data Types

Java’da iki data tipi kullanilmaktadir


- Primitive Data Types : boolean, char, byte, short, int, long, float ve double

- Non- Primitive Data Types : String,

ilerleyen derslerde gorecegimiz primitive olmayan Array, List, Object


gibi her data non-primitive’dir.
Primitive Data Types
1) boolean Data Type: true veya false barindirir. Hafizada 1 bit kullanir
Sadece dogru veya yanlis seklinde cevap verilebilecek variable’larda kullanilir
boolean isExpensive = true;
boolean isCold = false;
2) char Data Type : Tek karakter barindirir. Hafizada 16 bit kullanir
Harf, sayi veya sembol bakilmaksizin sadece 1 karakter kullanacak variable’larda
kullanilir
char letter = ‘a’;
char digit = ‘3’;
char cymbol = ‘#’;
Note: char degerlerini single quote arasina yazilir.
Primitive Data Types
3) byte Data Type: -128 den 127’e (dahil) tamsayilar icin kullanilabilir. Hafizada 8 bit
kullanir
byte age = 73;
4) short Data Type: -32.768 den 32.767’e (dahil) tamsayilar icin kullanilabilir. Hafizada 16 bit
kullanir
short ilceNufusu = 27,324;
5) int Data Type: -[Link] den [Link]’e (dahil) tamsayilar icin kullanilabilir.
Hafizada 32 bit kullanir
int turkiyeNufusu = 67,324.564;
6) long Data Type: -9,223,372,036,854,755,808 den ,223,372,036,854,755,807’e (dahil)
tamsayilar icin kullanilabilir. Hafizada 64 bit kullanir
Primitive Data Types
7) float Data Type: Kucuk ondalik sayilar icin kullanilabilir. Hafizada 64 bit kullanir

float floatVar2 = -2.123456f;

Not: float sayilarin sonunda “ f ” yazilmalidir, yazilmazsa java sayiyi double kabul eder

8) double Data Type: Buyuk ondalik sayilar icin kullanilabilir. Hafizada 64 bit kullanir

double doubleVar2 = -2.12345679078000000000123


Non-Primitive Data Type
String Data Type:
String pes pese dizilmis char’lardan olusur. Kelimeler, cumleler, matematiksel islem yapilmayacak
sayisal degerler de String olarak tanimlanabilir

String okulAdi = “Yildiz Koleji, Cankaya Ankara #”;


String telNo = “5321234567”;
String ilkHarf = “A”;

Note: String’ler cift tirnak (double quotes) arasina yazilir.


Note: Baska non-primitive data type’lar da var, daha sonra ogrenecegiz.
Primitive VS Non-Primitive Data Types

1) Primitive’ler sadece value icerir, non-primitive’ler value ve methodlar icerir.


2) Primitive’ler kucuk harf ile, non-primitive’ler buyuk harf ile baslar.
3) Primitive’leri Java olusturur biz primitive olusturamayiz.
Non-primitive’leri biz de olusturabiliriz, Java da olusturabilir. Or: String’i Java olusturmustur.
4) Primitive’lerin buyuklukleri data type’ing gore degisir ve sabittir. non-primitive’ler icin sabit
buyukluk soz konusu degildir.
Variable ve Method’lar Nasil Adlandirilir
1. Java variable isimleri case sensitive (Buyuk kucuk harfe duyarlidir)dir.
“money”, “Money” veya “MONEY” birbirinden farklidir
2. Java variable isimleri “harf”,“$” veya “_” ile baslamalidir.
Fakat “$” ve “_” ile baslamak tavsiye edilmez.
3. Java variable isimlerinde, ilk harften sonra sayi, “$” ve “_” kullanilabilir.
4. Variable isimleri icin Java’ya ozel terimler (key word) kullanilamaz. (int, for, if, import vb).

5. Variable isimleri kucuk harflerle yazilir.

6. Variable isimleri 1’den fazla kelime iceriyorsa, ilk kelimeden sonraki her kelimenin ilk
hafi buyuk harf ile baslamalidir. firstName, bigApple, ageJohnWalker gibi. Buna
camelCase denir.
Memory (Hafiza) Kullanimi
Javada kullanilan iki hafiza vardir

Stack => small

Heap => huge

1- Stack Memory : primitive data tiplerine ait degerleri ve Non-primitive datalara (Object)
ait referanslari(adres) barindirir
2- Heap Memory : Non-primitive data’lari depolamak(store) icin kullanilir
Memory (Hafiza) Kullanimi

reference of an Object
Object
byte
long int
String Array
boolean

Stack Heap
Variables Class Work

1- Farkli 3 data turunde variable olusturun ve bunlari yazdirin

2- isim ve soyisim icin iki variable olusturun ve bunlari


isminiz : Mehmet
soyisminiz : Bulutluoz
seklinde yazdirin

3- Iki farkli tamsayi data turunde 2 variable olusturun bunlarin toplamini yazdirin

4- Bir tamsayi ve bir ondalikli variable olusturun ve bunlarin toplamini yazdirin

5 – char data turunde bir variable olusturun ve yazdirin

6- Bir tamsayi, bir de char degisken olusturun ve bunlarin toplamini yazdirin.


Variables Class Work

Interview Question

1- Verilen sayi1 ve sayi2 variable’larinin degerlerini degistiren (SWAP) bir


program yaziniz
Orn : sayi1=10 ve sayi2=20;
kod calistiktan sonra
sayi1=20 ve sayi2=10

2- Verilen sayi1 ve sayi2 variable’larinin degerlerini [Link] variable olmadan


degistiren (SWAP) bir program yapiniz
ASCII Table
Kullanicidan Deger Alma

1) Scanner scan = new Scanner( [Link] );

scan : olusturdugumuz scanner’in ismidir ve istedigimiz ismi vermemiz


mumkundur. Ancak genelde scan ismi kullanilir.

Bu tur isimlendirmelerde genel kurallara uymamiz kodumuzun anlasilabilir


olmasi acisindan faydali olacaktir.

2) [Link]( “Lutfen 100’den kucuk pozitif iki tamsayi giriniz” );


Kullaniciya girmesini istedigimiz degerler icin aciklayici bilgi vermeliyiz.

Burada aciklama olarak ne yazdirsak kodumuz calisir, hatta birsey yazdirmasak da


calisir ancak kullanici kendisinden ne istedigimizi bilmezse deger girmesi gerektigini
veya ne tur bilgi girmesi gerektigini bilemez
Kullanicidan Deger Alma

3) [Link]() ile girilen degerleri alabiliriz. Istedigimiz data tipine gore


next’ten sonra yazilacak kisim degisir.

int num1 = [Link]()


int num2 = [Link]()
29 HAZIRAN 2021
DERS 3

Scanner
Data Casting
Increment-Decrement

Mehmet BULUTLUOZ
[Link] Muh.
Onceki Dersten Aklimizda Kalanlar

1) Data : bilgisayarda islenen(processed) veya depolanan (stored) herseye data denir

2) Compile : derleme, bilgiyi islemek demektir. Java’nin kullanicinin yazdigi kodlari


bilgisayarin anlayacagi binary kodlara cevirmesidir.

3) OOP Consept : Object oriented Programming , java’da Class’lari kullanarak objeler


uretiriz, sonra bu objeleri kullanarak application’lar uretiriz. (Lego gibi)
4) Class’larda neler bulunur? : fields (pasif,hareketsiz) , methods (dinamik,hareketli)

5) Variable nedir ? : Data degerlerini saklamak (store) icin kullanilan container’dir.

6) Variable nicin kullanilir ? : Datayi program icerisinde kullanabilmek icin variable’lara


atariz. Programimiz icinde ne zaman variable ismini yazsak,
Java bize o variable’a atanan son degeri getirir.
Onceki Dersten Aklimizda Kalanlar

7) Variable nasil olusturulur? : Variable olusturmak icin declaration (tanimlama) yapilir.


Veri turu (data type) ve variable ismini yazilmalidir

8) Variable deger atama : Assignment denir. Variable isminin karsina = isareti


konularak istenen deger assign edilir.

9 ) Variable declaration ve assignment icin nelere dikkat etmeliyim ?

Declaration ve assignment sirasisiyla yapilmalidir.


Once declaration,sonra assignment olmali.
Istersek tek satirda ikisini birden yapabiliriz
int sayi = 20 ;

istersek de once declare edip sonra deger atayabiliriz


int sayi;
sayi = 10;
Onceki Dersten Aklimizda Kalanlar

10 ) Class olusturmak icin hangi keyword’lar kullanilir ? :

public class ClassIsmi { Class Body }

11 ) Method olusturmak icin hangi keyword’lar kullanilir ? :


public String methodIsmi (parametre) { method Body}
12 ) Main method Nedir ?

Java’nin kodlari calistirmaya basladigi giris nokasidir (Entry Point).

13 ) Main method olusturmak icin kullanilan syntax nedir ? :

public static void main (String[] args){ main method Body}


Onceki Dersten Aklimizda Kalanlar
14 ) Java’da kac cesit data type vardir ? Java’da temel iki data tipi vardir.

- primitive (ilkel) data types : boolean (true /false) ,


char (tek karakter),
byte, short, int, long(tam sayilar),
float, double (ondalikli sayilar)

- non-primitive (object): String (simdilik)

15 ) Java’da kac cesit hafiza vardir ? :


stack- (small) primitive datalar ve non-primitive data tiplerinin reference’larinin
store edildigi hafizadir.
Heap memory (huge) : non-primitive datalarin store edildigi hafizadir.
Onceki Dersten Aklimizda Kalanlar
1) Print yaparken
- variable’in degerini yazdirmak icin syso icine variable’in ismini yazariz
- aciklama yazdirmak istersek, “” icine istedigimiz herseyi yazabiliriz
- hem aciklama hem variable varsa aciklama “” icinde, variable’in sadece ismi ve
aralarinda +
- eger aciklama ile birlikte matematiksel bir islem yapiyorsak, matematiksel
ifadeyi () icine almaliyiz
- Java’da variable isimleri CASE SENSITIVE’dir. money, Money, MONEY farklidir
- Iki farkli sayi turunde degerin toplamini yazdirmak istersek, Java daha genis
olani tercih eder
- Eger char bir variable matematiksel islemde kullanilirsa, Java o karakterin ASCII
tablosundaki degerini kullanir.
2) Scanner ile kullanicidan deger almak icin 3 adim takip edilir
- Scanner objesi olusturmak ( Scanner Class’I import etmeliyiz)
- Kullanicidan istedigimiz bilgiyi acik bir sekilde konsolda yazdirmak
- next method’unu kullanarak kullanicidan aldigimiz degeri, olusturdugumuz
variable’a atamaliyiz. Olusturdugumuz veriable ve kullandigimiz next methodu
kullanicidan istedimiz dataya uygun olmalidir.
Kullanicidan Deger Alma
Sorular
Soru 1) Kullanicidan iki tamsayi alip bu sayilarin toplam,fark ve carpimlarini yazdirin
Soru 2) Kullanicidan karenin bir kenar uzunlugunu alin ve karenin cevresini ve alanini
hesaplayip yazdirin
Soru 3) Kullanicidan yaricap isteyip cemberin cevresini ve dairenin alanini hesaplayip yazdirin
Soru 4) Kullanicidan dikdortgenler prizmasinin uzun, kisa kenarlarini ve yuksekligini isteyip
prizmanin hacmini hesaplayip yazdirin
Soru 5) Kullanicidan ismini ve soyismini isteyip asagidaki sekilde yazdirin
Isminiz : Mehmet
Soyisminiz : Bulut
Kursumuza katiliminiz alinmistir,tesekkur ederiz
Soru 6) Kullanicidan ismini ve soyismini alip aralarinda bir bosluk olusturarak asagidaki
sekilde yazdirin
Isim – soyisim : Mehmet Bulutluoz
Soru 7) Kullanicidan ismini alip isminin bas harfini yazdirin.
Data Casting
Veri Sinifi Degistirme

➢ Java’da kod yazarken bir veri tipinden diğer bir veri tipine aktarım yapmamız
gerekebilir.

➢ Veri tiplerinde bir variable’a , olusturuldugu data tipinden farkli bir data turunden
deger atanmasina Data Casting denir.

➢ Data casting yaparken aklimizdan cikarmamamiz gereken konu data tiplerinin


sinirlaridir. Data tipinin sinirlarini asan data casting islemlerinde hata almamamiz icin
dikkat etmemiz gereken bazi durumlar olacaktir.

➢ Hatirlayacagimiz sekilde Java’da sayilarla ilgili data tiplerinin siralamasi su sekildeydi

byte < short < int < long < float(ondalıklı) < double(ondalıklı)
Data Casting
1) Auto Widening (Otomatik Genisletme)
Dar veri tipinden daha genis bir very tipine gecmek iztedigimizde Java donusumu otomatik
olarak yapacaktir.

byte short int long float(ondalıklı) double(ondalıklı)


Orn : byte num1 = 12;
short num2 = num1; // yazdirirsak 12 olarak yazdirir
int num3 = num2; // yazdirirsak 12 olarak yazdirir
float num4=num3; // yazdirirsak 12.0 olarak yazdirir
double num5=num4; // yazdirirsak 12.0 olarak yazdirir
Data Casting
2) Explicit Narrowing (Manuel Daraltma)

➢ Genis veri tipinden daha dar bir veri tipine gecmek istedigimizde Java donusumu
otomatik olarak YAPMAYACAKTIR.
➢ Bu durumda Java Casting’in bir problem olusturabilecegini varsayarak sizden
MANUEL ONAY isteyecektir.
➢ Narrowing Casting bazi datalari kaybetmemize yol acabilir, bazen de sayiyi kendi
sinirlari icinde kalan baska bir sayiya donusturebilir
Data Casting

Soru 1 ) byte veri tipinde bir degisken olusturun, short,int,float ve double data tiplerinde
birer degisken olusturup adim adim widening yapin ve yazdirin
Soru 2 ) int veri turunde bir degisken olusturun ve adim adim narrowing yapin ve yazdirin
Soru 3 ) Float data turunde bir variable olusturun ve yazdirin
Soru 4 ) double 255.36 sayisini int’a ve sonra da olusturdugunuz int sayiyi byte’a cevirip
yazdirin
Soru 5 ) int 2 sayiyi birbirine boldurun ve sonucu yazdirin
Soru 6 ) int bir sayiyi double bir sayiya bolun ve sonucu yazdirin
Soru 7 ) Farkli data tipleri ile islem yapip, sonuclarini yazdiralim
30 HAZIRAN 2021
DERS 4

Increment-Decrement
Matematiksel Operatorler

Mehmet BULUTLUOZ
[Link] Muh.
Onceki Dersten Aklimizda Kalanlar
1) Scanner ile kullanicidan String bir deger aliyorsak iki secenegimiz var
- next() kullanirsak ilk space’e kadar olan kismi alir
- nextLine() tum satiri alir
- Eger kullanicidan tek karakter almak istiyorsak nextChar() method’u olmadigi icin next() ile ilk
kelimeyi alip, next()’ten sonra . Koyup charAt(0) kullaniriz
- scan objesi ile isimiz bittiginde [Link]() method’u ile scanner kapatilir
2) Syso ile bir metin yazdirirken, konsolda alt satira gecmek istiyorsak, ikinci satirin baslamasini
istedigimiz harften once bosluk birakmadan, \n yazmaliyiz.
3) Java’da dizilerdeki elementlere ulasmak icin index kullanilir. Index 0’dan baslar. Ornegin Mehmet
kelimesindeki h harfi [Link] ama index’i 2 dir.
4) Data Casting : bir variable’a kendi data turunden baska turde bir deger atamak istersek Data
Casting yapmaliyiz. 2 sekilde data casting olabilir
i) Auto Widening (otomatik genisletme) : Eger variable’in data turu atamak istedigimiz degerin data
turunden genisse Java otomatik olarak bu atamayi yapar.
ii) Explicit Narrowing (Manuel onay ile daraltma) Eger variable’in data turu atamak istedigimiz
degerin data turunden dar ise, Java bu islemi otomatik olarak yapmaz. Bizden bu islem icin onay
ister,
Cunku explicit narrowing data kayiplarina yol acabilir, hatta variable’in sinirlari disinda ise datanin
degistirlmesine sebep olabilir
Increment
Bir Variable’in Degerini Artirma Yontemleri

veya
?
veya
?

? ?
Decrement
Bir Variable’in Degerini Azaltma Yontemleri

veya
?

veya
?

? ?
Pre Increment & Post Increment

➢ Pre Increment ve Post Increment operatorlerinin her ikisi de artirma islemi icin kullanilir
➢ Pre Increment isleminde variable statement’da kullanilmadan once artirilir veya azaltilir

Output : 16

➢ Post Increment isleminde variable statement’da kullanilir, sonra artirilir veya azaltilir

Output : 15
Javada Matematiksel Operatorler

1- Ustel islemler
2- Parantez ici
3- Carpma-Bolme
4- Toplama-cikarma

Ornek 1 : Ornek 2 :

38 / 2 * ( 4 + 3 ) * 2 = 8 + 2 * ( 14 – 6 / 2 ) - 12 =
Modulus %

Modulus islemi bir bolme isleminde kalan sayiyi bize verir


Modulus %

Soru 1) Kullanicidan 4 basamakli bir sayi alin ve rakamlar toplamini bulup yazdirin

Ipucu 1:

Sayi % 10 => Bize son basamagi verir

538 % 10 = 8

Ipucu 2:
Int Sayi /10 => Bize son basamak haric sayiyi verir
int sayi=538;
sayi = sayi / 10 =>
sayi’ya 53 degerini atar
1 TEMMUZ 2021
DERS 5

Wrapper Class
Concatenation
Karsilastirma Operatorleri

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) Increment / Decrement : Javada variable’larin degerini artirip azaltmak demektir.


int sayi=10;
sayi = sayi +1; bu en basit yazim ama tercih etmiyoruz
sayi +=1 ; Bu iki yazimda = olmak zorunda yani assignment olmalidir
sayi++; assignment olmadan direk sayinin degerini bir artirir.
2) Pre / post : ++ veya – variable isminden once yazilirsa buna pre-increment denir. Bu durumda once
variable’in degeri 1 artirilir, sonra o satirdaki diger islem yapilir.
++ veya – variable isminden sonra yazilirsa buna post-increment denir. Bu durumda
once satirdaki diger islem yapilir, sonra sayinin degeri artirilir.
3) Matematiksel islemler
- islem sirasi onemlidir ve Java matematikte gecerli islem onceligine gore calisir
i) parantez - us
ii) carpma – bolme
iii) Toplama – cikarma
Ayni oncelikli iki islem olursa once soldaki yapilir
4) Modulus operatoru
sayi % 10 bize sayinin 10 ile bolumunden kalani verir. (yani son basamagi verir)
Wrapper Class
Java primitive data turleri ile methodlari kullanabilmemiz icin Wrapper class’lari
olusturmustur.
Character,Byte,Integer,Short,Float,Double primitive data turleri icin olusturulan wrapper
class’lardir.
Concatenaion
(String Datalari Birlestirme)

Birden cok String’i + isareti ile topladiginizda Java bu String degiskenleri birlestirerek yeni
bir String olusturur

Not : Eger matematiksel bir islemin icinde String kullanilirsa, matematikteki oncelikler
dikkate alinarak islem yapilir. Sira String ile toplamaya geldiginde toplama yerine
Concatenation uygulanir

Hello23
5Hello
Hello5
Hello6
Concatenation
(String Datalari Birlestirme)
Soru 1 ) Asagida verilen variable’lari kullanarak istenen sonuclari yazdiran programlari
yaziniz.

Variables Istenen Yazilar

String str1= “Java”; 1) Java Guzel 54


2) Java 5 Guzel
String str2= “Guzel”;
3) Java 94
int sayi1=5; 4) Java 19
int sayi2=4 5) 54 Guzel
2 TEMMUZ 2021
DERS 6

Karsilastirma Operatorleri
If Statements

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) Wrapper Classes : promitive data turleri deger alirlar ama method’lari yoktur. Proimitive data
turleri ile hazir method’lar kullanabilmek icin Java Wrapper Class’lari olusturmustur. Character,
Boolean, Byte, Short, Integer, Long, Float ve Double
2) Egerbir String sadece sayilardan olusuyorsa [Link]() method’u ile int’a cevirilebilir.
3) Concatenation : Java, String bir variable ile + isaretinin kullanildigini gordugunde , toplama islemi
yapmaz + isaretinin iki tarafindaki degerleri BIRLESTIRIR.
*** Java’nin concatenation yapmasi icin + isaretinin bir tarafinda String olmasi yeterlidir.
4) Matematiksel bir degeri String’e cevirmek istersek “” ile concat etmemiz yeterlidir.
5) Iki sayiyi toplamak degil de birlestirmek (yan yana yasmak) istersek basa veya araya +”” yapariz.
“”+sayi1+sayi2 sayi1+ “” + sayi2
6) Eger char bir degisken matematiksel bir islemde kullanilirsa, Java o karakterin ASCII degerini
matematiksel islemde kullanir. Eger ascii degerinin devreye girmesini istemiyorsak oncesinde “” ile
concat yapabiliriz.
7) Concat yapilirken Java matematikteki islem oncelik sirasina uygun hareket eder. Ornegin carpma
ve toiplama varsa once carpmayi yapar.
Relational Operators
(Karsilastirma Operatorleri)

= Assignment (Atama yapar) operatoru

int num1=3; num1 degiskenine 3 degerini atar

String str1 = “Ali” + “ ” + “Can”; str1’e Ali Can degeri atar

c = c+5; c’nin degerini 5 artirir ve son degeri c’ye atar

== Cift esittir isareti / karsilastirma (Comperison) operatoru

boolean sonuc1 = 5+2 == 7; sonuc1 degeri true olur

boolean sonuc2 = 5*2 == 15; sonuc2 degeri false olur


Relational Operators
(Karsilastirma Operatorleri)
!= Esit degildir isareti

boolean sonuc1= 5+2 != 7; sonuc1 degeri false olur

[Link](5*2 != 15); true yazdirir

> Buyuktur , >= Buyuk veya esittir

boolean sonuc1= 5+2 >= 7; sonuc1 degeri true olur

[Link](5*2 > 15); false yazdirir

< Kucuktur , <= Kucuk veya esittir

boolean sonuc1= 5+2 < 7; sonuc1 degeri false olur

[Link](5*2 < 15); true yazdirir


Conditional Operators
(Sart Operatorleri)
&& AND (ve) isareti

&& isareti ile birlestirilen tum ifadeler dogru ise sonuc true olur.
Diger tum durumlarda false doner. ( && operatoru mukemmeliyetcidir )

boolean sonuc1= (5+2 == 7) && (4+3 !=5) ; sonuc1 degeri true olur
[Link]((5*2 != 15) && (5>7)); false yazdirir

|| OR (veya) isareti

|| isareti ile birlestirilen tum ifadeler yanlis ise sonuc false olur.
Diger tum durumlarda truee doner. ( || operatoru iyimserdir )

boolean sonuc1= (5+2 == 7) || (4+3 !=5) ; sonuc1 degeri true olur


[Link]((5*2 == 15) || (5>7)); false yazdirir
If Statements
(If cumleleri)

Eger hava guzel olursa piknige gidecegiz. (guzel olmazsa karar yok)

Eger (hava guzel olursa) {piknige gideriz} her durumda alt satira gecer

If (boolean sart) {sart saglanirsa istenen kod} her durumda alt satira gecer
If Statements
(If cumleleri)
Not : If statement birden fazla olursa hepsi birbirinden bagimsiz olur. If cumlelerini
birbirine baglamayi da ogrenecegiz.
Eger hava guzel olursa piknige gidecegiz. (guzel olmazsa karar yok)
Eger Ali ararsa ona kizacagim. (aramazsa karar yok)
Eger aksam mac varsa onu izleriz. (mac yoksa karar yok)
If Statements
(Sorular)
Soru 1) Kullanicidan bir tamsayi isteyin ve sayinin tek veya cift oldugunu yazdirin
Soru 2) Kullanicidan gun isimlerinden birinin ilk harfini isteyin ve o harfle baslayan gun
isimlerini yazdirin
Ornek: ilkHarf=P output = “Pazar, Pazartesi veya Persembe”
ilkHarf=S output = “Sali”
*** Buyuk kucuk harf problem olmamasi icin toUpperCase methodunu kullanin
Soru 3) Kullanicidan gun ismini alin ve haftaici veya hafta sonu oldugunu yazdirin
Ornek: gun=Pazar output = “Hafta sonu”
gun=Sali output = “Hafta ici”
*** String icin equals method’unu kullanin
Soru 4) Kullanicidan dikdortgenin kenar uzunluklarini isteyin ve dikdortgenin kare olup
olmadigini yazdirin
Soru 5) Kullanicidan bir gun alin eger gun “Cuma” ise ekrana “Muslumanlar icin kutsal
gun” yazdirin. “Cumartesi” ise ekrana “Yahudiler icin kutsal gun” yazdirin. “Pazar”
ise ekrana “Hiristiyanlar icin kutsal gun” yazdirin
3 TEMMUZ 2021
DERS 7

If Else Statements

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Javada kullanilan karsilastirma operatorleri
= Asignment operatoru, esitligin sol tarafina variable ismi, sag tarafina ise deger yazilir
==, != karsilastirma operatorleri denir.
<, <= karsilastirma operatorleri matematiksel islem degil, mantiksal karsilastirma yapar
>, >= sonuclari true veya false olur. (true veya false donerler)
2) Conditional Operatorler && (And), || (OR)
&& mukemmeliyetcidir, and ile birbirine bagli sartlarin tamami True olursa sonuc True
olur, bunun disindaki tum durumlar False’dur.
|| iyimserdir, OR ile birbirine baglanan sartlarin tumu F olursa sonuc F olur, bunun
disindaki tum durumlar True’dur.
3) If Statements : If(boolean sart) { sart dogru ise calisacak kod}
sart’in sonucu true ise {body} calisir, false ise {body} calismaz
{body} calissa da calismasa da her durumda {body}den sonraki satir calisir
if cumleleri birbirinden bagimsizdir, hepsi de calisabilir, hicbiri de calismayabilir
(boolean sart) bolumune boolean sonuc dondurmeyen bir kod yazildiginda Java hata verir
Socrative Quiz

1) [Link] adresine gidin

2) Login butonuna basin

3) Student Login butonuna basin

4) Room Name BULUTLUOZ yazin

5) Isminizi yazin

6) Done butonuna basin

Sure : 15 Dakika
If Else Statements

Eger hava guzel olursa piknige gideriz, yoksa evde otururuz.

Eger (hava guzel olursa) {piknige gideriz} yoksa {evde otururuz}

If (boolean sart) {sart saglanirsa istenen kod} else {sart saglanmazsa istenen kod}
If Else Statements
(Sorular)

Soru 1) Kullanicidan dikdortgenin kenar uzunluklarini isteyin ve dikdortgenin kare olup


olmadigini yazdirin

Soru 2) Kullanicidan bir karakter girmesini isteyin ve girilen karakterin harf olup
olmadigini yazdirin

Soru 3) Kullaniciya yasini sorun, eger yas 65’den kucuk ise “emekli olamazsin,
calismalisin”, 65’den buyukse “Emekli olabilirsin” yazdirin

Soru 4) Kullanicidan bir ucgenin uc kenar uzunlugunu alin eger uc kenar uzunlugu
birbirine esit ise ekrana “Eskenar ucgen” yazdirin. Diger durumlarda ekrana
“Eskenar degil” yazdirin.
& Ile && Arasindaki Fark
& isareti kullanildiginda Java isaretin iki yanindaki mantiksal ifadelerin ikisini de kontrol
eder. Bu islem kodumuzu yavaslatir

40<30 & 50==50 & 60>50

ilk karsilastirma yanlis olmasina ragmen Java tum karsilastirmalari kontrol etmeye
devam eder.

&& isareti kullanildiginda ise Java en bastan kontrol etmeye baslar, mantiksal ifadelerin
birinde yanlisi bulursa sonrakileri kontrol etme ihtiyaci duymaz. Bu islem kodumuzu
hizlandirir

40<30 && 50==50 && 60>50

ilk karsilastirma yanlis oldugunu gorunce Java diger karsilastirmalari kontrol etmeden
alt satira gecer.
If Else If … Statements

Eger soruyu biliyorsa Ali soruyu cozsun , o bilmiyorsa Veli biliyorsa Veli cozsun,
o da bilmiyorsa Ayse biliyorsa, Ayse cozsun, o da bilmiyorsa Fatma biliyorsa,
Fatma cozsun, o da bilmiyorsa kim isterse o cozsun.

Eger soruyu biliyorsa Ali soruyu cozsun , o bilmiyorsa Veli biliyorsa Veli cozsun,
o da bilmiyorsa Ayse biliyorsa, Ayse cozsun, o da bilmiyorsa Fatma biliyorsa,
Fatma cozsun, o da bilmiyorsa kim isterse o cozsun.

If (sart) {sart saglanirsa istenen kod} else if {sart saglanmazsa istenen kod}
else if {sart saglanmazsa istenen kod} else if ( kac tane durum varsa else if ….. )
else {sart saglanmazsa istenen kod}
If Else If Statements
(Sorular)
Soru 5) Kullanicidan gun ismini yazmasini isteyin. Girilen isim gecerli bir gun ise gun
isminin 1.,2. ve [Link] ilk harf buyuk diger ikisi kucuk olarak yazdirin, gun ismi
gecerli degilse “Gecerli gun ismi giriniz” yazdirin
Soru 6) Kullanicidan iki sayi isteyin, sayilarin ikisi de pozitif ise sayilarin toplamini yazdirin,
sayilarin ikisi de negative ise sayilarin carpimini yazdirin, sayilarin ikisi farkli
isaretlere sahipse “farkli isaretlerde sayilarla islem yapamazsin” yazdirin,
sayilardan sifira esit olan varsa “sifir carpmaya gore yutan elemandir” yazdirin.
Soru 7) Kullanicidan 100 uzerinden notunu isteyin. Not’u harf sistemine cevirip yazdirin.
50’den kucukse “D”, 50-60 arasi “C”, 60-80 arasi “B”, 80’nin uzerinde ise “A”
Soru 8) Kullanicidan maas icin bir teklif isteyin ve asagidaki degerlere gore cevap azdirin.
Teklif 80.000’in uzerinde ise “Kabul ediyorum” ,
60 – 80.000 arasinda ise “Konusabiliriz”,
60.000’nin altinda ise “Maalesef Kabul edemem” yazdirin
Nested If Else Statements

Eger calisan kadinsa 60 yasindan buyuk oldugunda emekli


olabilir, calisan erkekse 65 yasindan buyukse emekli olabilir

Eger (calisan kadinsa) {Kadin yasini kontrol et} ,


yoksa {erkek yasini kontrol et}

If (calisan kadinsa)
{if (yas>60) {emekli olabilirsin} else {emekli olamazsin}}
else
{if (yas>65) {emekli olabilirsin} else {emekli olamazsin}}
If Else Statements
Sorular

Soru 11) Nested If kullanarak asagidaki soruyu cozen kodu yaziniz.


Kullanicidan bir sifre girmesini isteyin
Eger ilk harf buyuk harf ise “A” olup olmadigini kontrol edin. Ilk harf A ise
“Gecerli Sifre” degilse “Gecersiz Sifre” yazdirin.
Eger ilk harf kucuk harf ise “z” olup olmadigini kontrol edin. Ilk harf z ise
“Gecerli Sifre” degilse “Gecersiz Sifre” yazdirin.
Soru12)Kullanıcıdan 4 basamakli bir sayi girmesini isteyin. Girdiği sayi 5’e
bölünüyorsa son rakamını kontrol edin. Son rakamı 0 ise ekrana “5’e bölünen
çift sayı” yazdırın. Son rakamı 0 değil ise “5’e bölünen tek sayı” yazdırın.
Girdiği password 5’e bölünmüyorsa ekrana “Tekrar deneyin” yazdırın.
5 TEMMUZ 2021
DERS 8

Ternary Operator
Switch Case

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) If Else Statements : If cumleleri eger else ile birbirine baglanmazsa bagimsiz olarak calisirlar.
Bu durumda her bir if body’si calisadabilir, calismayadabilir.
2) If cumlelerini else ile birbirine bagladigimizda, bagli if statement’lardan sadece biri
calisir,digerleri calismaz
3) Bazen tek bir if else ile sorulari cozemeyiz, bu durumda if else statement’lari ic ice (nested)
kullanmamiz gerekir
If Else If Statements
(Sorular)
Soru 9) Interview Question

Kullanicidan artik yil olup olmadigini kontrol etmek


icin yil girmesini isteyin.

Kural 1: 4 ile bolunemeyen yillar artik yil degildir

Kural 2: 4 ile bolunup 100 ile bolunemeyen yillar artik


yildir

Kural 3: 4’un kati olmasina ragmen 100 ile bolunebilen


yillardan sadece 400’un kati olan yillar artik
yildir

[Link]
Nested If Else Statements
Sorular

Soru 10) Interview Question

Kullanicidan artik yil olup olmadigini


kontrol etmek icin yil girmesini isteyin.

Kural 1: 4 ile bolunemeyen yillar artik yil


degildir

Kural 2: 4’un kati olmasina ragmen 100 ile


bolunebilen yillardan sadece
400’un kati olan yillar artik yildir

[Link]
Ternary Operator

Not1 : Ternary islemi If Statement ile yapacagimiz islemleri basit olarak yapmamizi
saglar

Not2 : Ternary islemi bize bir sonuc donecegi icin, bu islemi bir variable’a atamaliyiz.
Ternary Operator

Ekranda Ne Goruruz ?

Soru1 : int y = 112;

[Link]( (y > 5) ? (“Inek”) : (“Koyun”) );

Soru2 : int y = 112;

[Link]((y < 91) ? 9 : 11);

Soru3 : int y = 1;

int z = 1;
int a = y<10 ? y++ : z++;
[Link](y + “,” + z + “,” + a);
Ternary Operator
Sorular

Soru1 ) Kullanicidan iki sayi alin ve buyuk olmayan sayiyi yazdirin

Soru2 ) Kullanicidan bir tamsayi alin ve sayinin tek veya cift oldugunu yazdirin

Soru3 ) Kullanicidan bir sayi alin ve sayinin mutlak degerini yazdirin

Soru4 ) Kullanicidan bir sayi alin. Sayi pozitifse “Sayi pozitif” yazdirin, negatifse
sayinin karesini yazdirin
Nested Ternary

Condition ? (Kod 1) : (Kod 2) ;

Condition1 ? Durum1 : Durum2 Condition2 ? Durum1 : Durum2

Soru1 : Kullanicidan bir tamsayi alin ve sayi 10’dan kucukse “Rakam” , 100’den kucukse “iki
basamakli sayi”degilse “uc basamakli veya daha buyuk sayi” yazdirin

Soru2 : Kullanicidan bir harf isteyin kucuk harf ise consola “Kucuk Harf” , buyuk harfse
consola “Buyuk Harf” yoksa “girdiginiz karakter harf degil” yazdirin.
Nested Ternary
Ekranda Ne Goruruz ?

Soru1 : int y = 8;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);
Soru2 : int y = 12;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);

Soru3 : int y = 5;
(y > 5) ? (y<10 ? 2*y : 3*y) : (y>10 ? 2+y : 3+y);

Soru4 ) Kullanicidan dikdortgenin uzunlugunu ve genisligini alin, girilen degerlere


gore dikdorgenin kare olup olmadigini yazdirin.

Soru5 ) Kullanicidan bir sayi alin ve sayi 3 basamakli ise “uc basamakli sayi”, yoksa “Uc
basamakli degil” yazdirin
6 TEMMUZ 2021
DERS 9

Switch Case

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) Ternary : if ile ayni gorevi yapar ama if’e gore daha basit yapidadir,
2) Ternary’nin icine kodlar yazamayiz ama if gibi dusunup sonuc degerleri atayabiliriz
3) Ternary her zaman bize bir sonuc dondurecegi icin sonuca uygun bir variable’a atama yapabilir
veya ditrek sonucu yazdirmak icin syso icine yazabiliriz
4) Eger bir variable’a atama yapacaksak sartin true ve false olmasi durumlarinda alacagi
degerlerin data turleri ayni olmak zorundadir, direk yazdiracaksak sonuclar ayni data turunden
olmayabilir
String sonuc = sayi%2==0 ? “sayi cift” : “sayi tek” ;
syso( sayi%2==0 ? “sayi cift” : 20) ;
5) Sart kismi boolean olmali
6) Eger tek bir sart ile soruyu cozemiyorsak icice ternary (nested) kullanabiliriz
7) boolean sart ? True olursa sonuc : False olursa sonuc ;
Switch Statement

If else ile cozdugumuz sorularda kontrol etmemiz gereken sart sayisi cok oldugunda
switch Statement kullanilir.
Switch Statement

break komutu yapacagimiz islem bittiginde switch statement’in sonuna gitmemizi


saglar.
Java istenen case’e gittikten sonra break komutunu gorene kadar tum case’leri
calistirir.

default komutu basta tanimlanan degisken icin hic bir case calismazsa calistirmak
isedigimiz kodlari yazdigimiz bolumdur.
(If else statements da en sonda yazdigimiz else gibi calisir)

Switch Statement’da long,double,float ve boolean kullanilamaz


Switch Statement
Sorular
Soru1 : Kullanicidan haftanin kacinci gunu oldugunu sorun ve gun ismini yazdirin
Soru2 : Kullanicidan kacinci ay oldugunu sorun ve ay ismini yazdirin
Soru3 : Kullanicidan bir sayi girmesini isteyin
Girilen sayi
10 ise “Iki basamakli en kucuk sayi
100 ise “uc basamakli en kucuk sayi”
1000 ise “dort basamakli en kucuk sayi”
diger durumlarda “Girdigin sayiyi degistir” yazdirin
Soru4 : Kullanicidan SDET kisaltmasindaki harflerden birini yazmasini isteyin.
Kullanici S girerse “Software”
D girerse “Developer”
E girerse “Engineer”
T girerse “In Testing” yazdirin
Soru5 : Kullanicidan gun ismini alip haftaici veya hafta sonu yazdiralim
String Manipulation / Methods
1- concatenation
Birden fazla String’i birleştirerek tek bir String haline getirmek için kullanılır.

Iki sekilde kullanilir.


i) + (toplama) isareti ile

Output :

Ali Can

ii) concat() methodu kullanarak

Output :

AliCan
String Manipulation / Methods
1- charAt( )
Istenen indexdeki karakteri (char) dondurur. Index 0’dan baslar, maximum
index (String’in uzunlugu – 1) dir.

Output :

Eger method’da index olarak maximum indexden buyuk bir sayi kullanilirsa Java hata
verir (StringIndexOutOfBoundsException).
String Manipulation / Methods

3-toUpperCase()
4-toLowerCase()
Girilen String degiskendeki tum harfleri istenen bicime cevirir.

Output :

techproeducation
TECHPROEDUCATION

NOT : toLowerCase(Locale locale)


Girilen String degiskendeki tum harfleri istenen local dilde istenen bicime cevirir.

Output :

techproeducatıon
7 TEMMUZ 2021
DERS 10

String Manipulations

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) switch case : Eger if else ile kontrol edecegimiz durumlar fazla ise, if else yerine switch-case
kullaniriz
2) Switch’de parantez icine boolean, long,float ve double degerleri olmaz, bunun disindaki String,
int, char vb.. Degerler yazilabilir
3) Switch-case karsilastirmalari case’lerde yapar, switch’de girilen deger, case’de girilen degere
esitse o case calisir
4) Herhangi bir case calismaya basladiginda break gorene kadar calismaya devam eder, break
gorunce switch-case’in sonuna gider .
5) Case’lerde tanimli olmayan tum degerler icin calismasini istedigimiz kod’lari default : bolumune
yazariz (ifelse statements daki en son else bolumu gibidir)
6) Birden fazla case icin ayni kodlar calisacaksa, bu case’ler alt alta yazilir, sonrasinda calismasi
istenen ortak kod yazilip, ardindan break; konulur
String Manipulation / Methods

5-equals
Verilen iki String’in iceriginin birbirine esit olup olmadigini kontrol eder.

Eger verilen Stringlerdeki tum karakterler (bosluk, buyuk harf, kucuk harf, ozel
karakter ..) tamamen ayni ise TRUE doner, aksi durumda (bir karakter bile farkli olsa)
FALSE doner.

Output :

true
String Manipulation / Methods

equals Vs ==
(Interview Sorusu)

equals() methodu verilen iki String’in iceriginin birbirine esit olup olmadigini kontrol eder.

== karsilastirma operatoru ise verilen iki String objesinin degerinin yaninda


reference(adres)’larine da bakar,

Ayni degere sahip olsa da farkli iki objeyi == ile karsilastirdigimizda sonuc FALSE olur.

Output :
false
true
String Manipulation / Methods

6-equalsIgnoreCase

Verilen iki String degiskeni BUYUK HARF / kucuk harf farki gozetmeksizin
karsilastirir.

Buyuk / kucuk harf farkliligi disinda herhangi bir karakter farkliligi oldugunda equals
methodunda oldugu gibi FALSE dondurur.

Output :

true
String Manipulation / Methods

7-length()

Verilen String’deki karakter sayisini dondurur.

Output :

Output :

0
String Manipulation / Methods

8-indexOf()

Verilen String’de istenen karakterin kullanildigi ilk index’i dondurur.

1) char’in index’i sorgulanabilir Output : 1

2) Parametre String olabilir :1


3) Olmayan karakter : -1
sorgulanirsa
4) Parametre kelime olabilir : 14

5) Belli bir index’ten sonrasi : 15


sorgulanabilir
String Manipulation / Methods

indexOf() Sorular

Soru 1) Kullanicidan bir cumle ve bir harf isteyin, harfin cumlede var olup
olmadigini yazdirin

Soru 2) Kullanicidan bir cumle ve bir kelime isteyin, kelimenin cumledeki


kullanimina bakarak asagidaki 3 cumleden uygun olani yazdirin
- Girilen kelime cumlede kullanilmamis.
- Girilen kelime cumlede 1 kere kullanilmis.
- Girilen kelime cumlede 1’den fazla kullanilmis.
String Manipulation / Methods

9-lastIndexOf()

Verilen String’de istenen karakterin kullanildigi son index’i dondurur.

1) char’in son index’i sorgulanabilir : 35

2) Parametre String olabilir : 35

3) Olmayan karakter sorgulanirsa : -1

4) Parametre kelime olabilir : 14

5) Belli bir index’ten oncesi :8


sorgulanabilir
String Manipulation / Methods

lastIndexOf() Sorular

Soru 1) Kullanicidan bir cumle ve bir harf isteyin, harfin cumlede var olup
olmadigini yazdirin

Soru 2) Kullanicidan bir cumle ve bir kelime isteyin, kelimenin cumledeki


kullanimina bakarak asagidaki 3 cumleden uygun olani yazdirin
- Girilen kelime cumlede kullanilmamis.
- Girilen kelime cumlede 1 kere kullanilmis.
- Girilen kelime cumlede 1’den fazla kullanilmis.
8 TEMMUZ 2021
DERS 11

String Manipulations

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) equals() verilen iki String’in iceriklerini case sensitive olarak karsilastirir, icerikler ayni ise TRU,
ayni degilse FALSE dondurur
2) Equals() ile == ‘in farki : equals() sadece iceriklere bakar, == ise hem iceriklere hem de
referanslara(adrese) bakar. Diger bir deyisle == verilen iki String’in ayni String oldugunu kontrol
eder.
3) equalsIgnoreCase() : verilen iki String’in icerigini case sensitive olmayarak karsilastirir. (Money,
MONEY, money, MoNeY bunlarin hepsi icin true dondurur)
4) length() : verilen String’deki karakter sayisini verir. Son karakterin index’ini bulmak icin
length()-1 kullanilir.
5) “” String’inin length’i 0 dir… Ancak String str = null; dendiginde , null str’in degeri degildir. null bir
keyword’dur, null pointer olarak bilinir ve str’in degerinin olmadigini ifade eder. Yani bize str’in
bir degeri olmadigini isaret eder.
Dolayisiyla [Link](); dedigimizde Java RTE verir.
6) indexOf(String veya char); parametre olarak girilen char veya String’in kullanildigi ilk index’I
verir.
7) lastIndexOf(String veya char); parametre olarak girilen String veya char’I sondan basa dogru arar
ve ilk buldugu kullanimin index’ini bize dondurur.
String Manipulation / Methods

10-contains()
Verilen String’in istenen karakter(ler)i icerip icermedigini kontrol eder. Iceriyorsa TRUE,
icermiyorsa FALSE dondurur.

1) Parametre String olmalidir true

2) Olmayan karakter sorgulanirsa false

3) Parametre kelime olabilir true

NOT contains() methodu char icin kullanilamaz, String kullanmak zorunludur.


String Manipulation / Methods

contains() sorular

Soru 1) Kullanicidan email adresini girmesini isteyin, mail @[Link]


iceriyorsa “Email adresiniz kaydedildi”, icermiyorsa “Lutfen gmail mail adresinizi
giriniz.. “ yazdirin

Soru 2) Kullanicidan bir cumle isteyin. Cumle “buyuk” kelimesi iceriyorsa tum
cumleyi buyuk harf olarak, “kucuk” kelimesi iceriyorsa tum cumleyi kucuk harf olarak
yazdirin, iki kelimeyi de icermiyorsa “Cumle kucuk yada buyuk kelimesi icermiyor”
yazdirin.
String Manipulation / Methods

11-endsWith()
Verilen String’in istenen karakter(ler) ile bitip bitmedigini kontrol eder. Istenen
karakter(ler) ile bitiyorsa TRUE, yoksa FALSE dondurur.

1) Parametre String olmalidir true

2) Yanlis karakter sorgulanirsa false

3) Parametre kelime olabilir true


String Manipulation / Methods

12-startsWith()
Verilen String’in istenen karakter(ler) ile baslayip baslamadigini kontrol eder. Istenen
karakter(ler) ile basliyorsa TRUE, yoksa FALSE dondurur.

1) Parametre String olmalidir true


2) Parametre kelime olabilir true
3) Belirli karakterden sonrasi olabilir true
true
String Manipulation / Methods

13-isEmpty()
Verilen String’in uzunlugu 0(sifir) ise (Hicbir karakter icermiyorsa) TRUE, yoksa FALSE
dondurur.

false

true

Hata verir
String Manipulation / Methods

13- replace()
Verilen String’deki istenen karakter(ler)i istenen yeni karakter(ler) ile degistirir.

Jxvx ogrenmek cok kolxy


x ogrenmek cok kolay

Jxxxvxxx ogrenmek cok kolxxxy


Jv ogrenmek cok koly
Jxvx ogrenmek cok kolxy

NOT : replace() methodu char icin de kullanilabilir


String Manipulation / Methods

14- replaceAll()
replace() methodu ile benzer olarak verilen String’deki istenene karakter(ler)i istenen
yeni karakter(ler) ile degistirir. Aralarindaki farklar
- replace() methodunda char kullanilabilir, replaceAll()’da char kullanilamaz

- replaceAll() methodunda Regular Expressions kullanilabilir

\\s : bosluk (space)

\\S : bosluk disindaki tum karakterler

\\w : harfler ve rakamlar (a-z , A-Z, 0-9)

\\W : harfler ve rakamlar disindaki tum karakterler

\\d : rakamlar (0-9)

\\D : rakamlar disindaki tum karakterler


String Manipulation / Methods

replaceAll()

J*v*'d* r*k*ml*r 123456789

Java'da*rakamlar*1234567890
******* ******** **********
****'** ******** **********
Java*da*rakamlar*1234567890

Java'da rakamlar **********


*****************1234567890
String Manipulation / Methods

15- replaceFirst()
Verilen String’deki istenen karakter(ler)in ilkini, istenen yeni karakter(ler) ile degistirir

J*va'da rakamlar 1234567890


Java'da rakam* 1234567890

Java'da*rakamlar 1234567890
*ava'da rakamlar 1234567890
9 TEMMUZ 2021
DERS 12

String Manipulations

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1) Contains( ) parametre olarak yazdigimiz String bir baska String icinde var olup olmadiga bakar.
Aranan String’in kac tane oldugu ile ilgilenmez, sadece var mi yok mu bakar. False veya true
dondurur
2) EndsWith( ) verilen bir String’in, parametre olarak girilen String ile bitip bitmedigini kontrol eder.
True veya False doner
3) startsWith( ) verilen bir String’in, parametre olarak girilen String ile baslayip baslamadigini
kontrol eder. True veya False doner
4) isEmpty( ) parametre Kabul etmez [Link]( ) seklinde kullanilir, ve verilen String’in bos olup
olmadigini kontrol eder. True veya False doner . “” icin true doner, str=null; bunun icin hata verir.
5) null bir deger degildir, ama atandigi objenin hic bir degerinin olmadigini isaret eder.
6) replace( parametre1, parametre2) verilen String’deki parametre1’lerin yerine parametre2 yazar.
Char icin de kullanilabilir. Parametre1 ve parametre2’nin uzunlukluklari esit olmak zorunda
degildir. Her hangi bir karakter veya String’I ortadan kaldirmak istersek parametre1 olarak yok
etmek istedigimiz String’I , parametre2 yerine ise “” yazariz.
7) replaceAll(parametre1, parametre2) replace ile ayni isi yapar ama char Kabul etmez, gelismis
ozellik olarak regular Expressions regexp kullanilabilir
8) replaceFirst(parametre1, parametre2 ) sarta uyan ilk parametre1 yerine parametre2 yazar
String Manipulation / Methods
16- substring()
Index kullanarak verilen String’in istenen parcasini almamizi saglar.
- Parametre olarak 1 sayi girilirse, girilen index’den String’in sonuna kadar bolumu
- Parametre olarak 2 sayi girilirse, girilen [Link] indexden (inclusive) baslayip,
[Link] kadar (exclusive) karakteri bize dondurur

Java OOP konsepti kullanir

onsepti kullanir

Hata verir
String Manipulation / Methods
substring()

OOP ko
a

Hata verir

Not : Java’da iki tur hata mesaji aliriz


1- Compile Time Error (CTE) : Kodumuzu yazarken kod altinin kirmizi cizgi olmasi
2- Run Time Error (RTE) : Kod calistirildiginda (Execute) karsilastigimiz hatalar
String Manipulation / Methods

17- trim()
Istedigimiz String’in basinda veya sonunda var olan bosluk / “space” leri temizler

| Java ogrenmek cok guzel. |

28
|Java ogrenmek cok guzel.|

24
String Manipulation / Methods

Soru 1) String methodlarini kullanarak “ Java ogrenmek123 Cok guzel@ ” String’ini “Java
ogrenmek cok guzel.” sekline getirin.
Soru 2) String seklinde verlen asagidaki fiyatlarin toplamini bulunuz
String str1 = “$13.99”
String str2 = “$10.55”
ipucu : [Link]() methodunu kullanabilirsiniz.
Soru 3) Kullanicidan isim isteyin. Eger
- isim “a” harfi iceriyorsa “Girdiginiz isim a harfi iceriyor”
- isim “Z” harfi iceriyorsa “Girdiginiz isim Z harfi iceriyor”
- ikisi de yoksa “Girdiginiz isim a veya Z harfi icermiyor” yazdirin
Soru 4) Kullanicidan isim ve soyismini isteyin ve hangisinin daha uzun oldugunu yazdirin.
Soru 5) Kullanicidan 4 harfli bir kelime isteyin ve girilen kelimeyi tersten yazdirin.
String Manipulation / Methods

Soru 6) Kullanicidan bir sifre girmesini isteyin. Asagidaki sartlari sagliyorsa “Sifre
basari ile tanimlandi”, sartlari saglamazsa “Islem basarisiz,Lutfen yeni bir
sifre girin” yazdirin
- Ilk harf buyuk harf olmali
- Son harf kucuk harf olmali
- Sifre bosluk icermemeli
- Sifre uzunlugu en az 8 karakter olmali
Soru 7) Kullanicidan ismini, soyismini ve kredi karti bilgisini isteyin ve asagidaki gibi
yazdirin
isim-soyisim : M***** B*******
kart no : **** **** **** 1234
10 TEMMUZ 2021
DERS 13

Method Creation
Method Call

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1) substring( ) verilen bir String’in istedigimiz bolumlerini almamizi saglar.


2) Iki farkli kullanimi vardir. Substring(tekParametre) : parametre olarak girilen indexdeki
karakterden sona kodar tum karakterleri dondurur.
3) substring(parametre1, parametre2) : parametre1 index’I dahil (inclusive), parametre2 index’i
haric (exclusive) aradaki karakterleri verir.
4) [Link]([Link]()) ==> sondaki hiclik’i verir . Str= “Mehmet” [Link](6)=>””

5) Son harfi gormek istersek [Link]([Link]()-1)


6) Eger parametre olarak String’in uzunlugundan buyuk bir sayi girilirse hata verir
7) [Link]() String’in aralarindaki bosluklara dokunmada, oncesinde ve sonrasinda olan bosluklari
keser.
Method Creation
Method Olusturma
Method Olusutururken Kullanilan Keyword’ler Nelerdir?
public int myFirstMethod () { }
1 2 3 4 5
1 public : Access Modifier (Erisim duzenleyici):methoda’a kimlerin erisebilecegini belirler
private: Sadece bulundugu class’da kullanilabilir
protected : Sedece icinde bulundugu class ve child class’lardan kullanilir
2 Int : Return Type, methodun ne urettigini ve bize dondurdugunu belirtir
3 myFirstMethod :Olusturdugumuz method’un ismidir. Isim mutlaka kucuk harfle baslar,
birden fazla kelimeden olusursa sonraki kelimelerin ilk harfleri buyuk harf yazilir
(Camel Case)
4 () parantez: Methodlarda isimden sonra parantez kullanilir ve gerektiginde parantez
icinde parametre yazilir.
5 Body (Method Body) : { } arasinda kalan kodlarimizi yazdigimiz bolumdur
12 TEMMUZ 2021
DERS 14

Method Creation
For Loop

Mehmet BULUTLUOZ
[Link] [Link].
Method Creation
Method Olusturma

public int myFirstMethod () { }


1 2 3 4 5
1 Access Modifier (Erisim duzenleyici):
public : methoda’a kimlerin erisebilecegini belirler
protected : Sadece icinde bulundugu package ve child class’lardan kullanilir
default : Sadece icinde bulundugu paket(package)’den kullanilir
private: Sadece bulundugu class’da kullanilabilir
Method Creation
Method Olusturma

2 static (Ileride detayli anlatilacak)


Bir method olusturulurken static kelimesinin kullanilmasi mecburi degildir.

Main method’umuz static oldugu icin main method’dan cagiracagimiz tum


method’lari static yapmamiz gereklidir
Method Creation
Method Olusturma
3 int (Return Type) : methodun ne urettigini ve bize ne dondurdugunu belirtir.
➢ Return Type, primitive veya non-primitive tum data turlerinden olabilir
➢ Eger method bir sey dondurmeyecekse (ornegin, sadece bir sey hesaplayip
yazdiracaksa) return type olarak void secilir
➢ Return Type olarak void disinda bir sey yazdiysak, methodun sonunda mutlaka
return keyword kullanilmalidir
➢ Return keyword’den sonra return type’a
uygun bir deger veya variable
yazilmalidir.
➢ Return type’a sahip methodlar
cagrildiklari satira, return keyword’den
sonra yazilan deger veya variable’i
dondururler.
Method Creation
Method Olusturma

4 myFirstMethod :Olusturdugumuz method’un ismidir. Isim mutlaka kucuk harfle baslar,


birden fazla kelimeden olusursa sonraki kelimelerin ilk harfleri buyuk
harf yazilir (Camel Case)

5 ( ) parantez : Methodlarda isimden sonra parantez kullanilir ve gerektiginde


parantez icinde parametre yazilir.

*** Eger bir Class’da ayni isme sahip birden fazla method olusturmamiz gerekirse
parametreleri farkli yapmamiz gereklidir (Overloading)
Method Creation
Method Olusturma
6 Body (Method Body) : { } arasinda kalan kodlarimizi yazdigimiz bolumdur
*** Method nerede olusturulmalidir ?
Method Class body’si icinde Main method disinda olusturulmalidir
Method Call
Method Cagirma
Method olusturmak method’u calistirmak icin yeterli degildir.
Ihtiyac duyuldugunda daha onceden olusturulmus methodu calistirmak icin Method ismi
(parametreler ile birlikte) yazilmalidir.
Bu isleme method cagirma denir

*** Method cagirirken parantez icine yazilan


degerlere Arguments (arguman) denir.

*** Method cagirirken kullandigimiz


argumanlar ile method parametrelerinin
uyumlu olmasi gereklidir.

*** Sayi parametreleri icin char degerler de


arguman olarak kullanilabilir
Method Creation
Soru 1 ) Kullanicidan bir sayi alin. Bu sayinin tek mi cift mi oldugunu, sifirdan buyuk mu
kucuk mu oldugunu, ayrica ve 100’den buyukse birler,onlar ve yuzler basamagindaki
rakamlarin toplamini,100’den kucukse sadece 1’ler basamagini yazdiran 3 method
olusturun.
Soru 2 ) Kullaniciya kac sayi toplamak istedigini sorun. Kullanici 2,3 veya 4 degerini girerse,
kullanicidan bu sayilari girmesini isteyin ve sayilarin toplamini yazdirin. Kullanici
toplamak istedigi sayi adedini 4’den buyuk girerse “Cok sayi girdiniz, ben
toplayamam” yazdirin.
Soru 3) Email kontrolu yapan bir program [Link] girdigi sifre
- @ isareti icermiyorsa gecersiz email yazdirin
- @[Link] icermiyorsa “lutfen gmail adresinizi girin” yazdirin
- @[Link] ile bitmiyorsa “Yazimda bir sorun var, maili kontrol ediniz”
Soru 4) Kullanicidan ismini, soyismini ve bosluk birakmadan 16 hane olarak kredi karti
numarasini alin. Isim ve soyismi ilk harfleri buyuk diger harfler kucuk olacak
sekilde, KK numarasini ise 4 rakamlik 4 blok ve aralarinda bosluk olacak sekilde
duzelten 2 method yazin, ve programda kullanabilmek icin duzenlenmis hallerini
geri dondurun.
Method Overloading
Interview Sorusu
1) Overloading nedir ? Eger bir Class’da ismi ayni fakat parametreleri farkli olan methodlar
olusturursak buna Overloading denir.

2) Overloading nasil yapilir ? Java ayni isim ve ayni parametrelerle birden fazla method
olusturulmasina izin vermez. Ayni isimle birden fazla method olusturmak isterseniz
method signature (metot imzasi)’nin degistirilmesi gerekir
3) method signature (metot imzasi) nasil degistirilir?
Method signature’i degistirmek icin 3 yontem kullanilabilir
- parametrelerin data tipleri degistirilebilir
- parametrelerin sayisi degistirilebilir
- parametre sayisi ayni olmak zorunda ise farkli data tipindeki parametrelerin sirasi
degistirilir
*** method’un return type’ini degistirmek, access modifier’ini degistirmek veya static
kelimesi eklemek method signature’i degistirmez
13 TEMMUZ 2021
DERS 15

For Loop

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

Mehod olustururken karar vermemiz gereken 3 adim


1- Method’a ne gonderecegiz (arguments)
2- Method’da ne yapacagiz , return olacak mi ?
3- Method bize ne dondurecek ve biz donen degeri ne yapacagiz ?

Soru : Bir oyun programinda oyuncuya level ve puanina gore bonus hesaplayan bir method yaziniz.
Bonus eklendikten sonra oyuncu yeni puaniyla oyuna devam edecek. (Oyun icinde birden fazla defa
bonus ekleme fonksiyonu kullanilabilir)

Bonus kurali :
- ilk 10 level icin mevcut puan 1000’den az ise 50, 1000 veya cok ise 100 bonus
- 11-50 level arasi mevcut puanin yuzde 10’u kadar bonus
- [Link] itibaren puan 10.000’den az ise 1000 bonus, 10.000 den coksa mevcut puanin %15
kadar bonus
For Loop
Belirli bir koşul sağlandığı sürece tekrarlanması gereken işler için kullanılan kod
bloklarina LOOP(Dongu) denir. Tekrar sayısı belirli olan durumlarda for loop kullanılması
tercih edilir.
For Loop

➢ Eger Ending Condition hep true verirse loop sonsuz donguye girer

➢ Eger Loop‘ta Ending Condition hic true olmazsa loop body hic devreye girmez

➢ loop'da artis degeri pozitif oldugu gibi negatif de olabilir (i-- vb)

➢ Artis degeri 1 olmak zorunda degil, farkli da olabilir (i+=2 vb..)


For Loop
Soru 1 ) Ekrana 10 kez “Java guzeldir” yazdirin
Soru 2 ) 10 ile 30 arasindaki sayilari aralarinda virgule olarak ayni satirda yazdirin
Soru 3) 100’den baslayarak 50’ye kadar olan sayilari aralarinda virgule olarak ayni satirda
yazdirin
Soru 4) Kullanicidan 100’den kucuk bir tamsayi isteyin. 1’den baslayarak girilen sayiya kadar
3’un kati olan sayilari yazdirin.
Soru 5) Kullanicidan 100’den kucuk bir tamsayi isteyin. 1’den baslayarak girilen sayiya kadar
3’un veya 5”in kati olan sayilari yazdirin.
Soru 6) Interview Question Kullanicidan 100’den kucuk bir tamsayi isteyin. 1’den baslayarak
girilen sayiya kadar tum sayilari yazdirin. Ancak;
- Sayi 3’un kati ise sayi yerine “Java” yazdirin.
- Sayi 5’in kati ise sayi yerine “Guzeldir” yazdirin.
- Sayi hem 3’un hem 5’in kati ise sayi yerine “Java Guzeldir” yazdirin.
For Loop

Soru 7 ) Interview Question Kullanicidan bir String isteyin ve Stringi tersten yazdirin.
Soru 8 ) Interview Question Kullanicidan bir String isteyin ve Stringi tersine ceviren
bir program yazin.
Soru 9 ) Interview Question Kullanicidan bir String isteyin. Kullanicinin girdigi String’in
palindrome olup olmadigini kontrol eden bir program yazin.
Soru 10 ) Kullanicidan iki sayi isteyin. Girilen sayilar ve aralarindaki tum tamsayilari
toplayip, sonucu yazdiran bir program yaziniz
Soru 11 ) Interview Question Kullanicidan 10’dan kucuk bir tamsayi isteyin ve girilen
sayinin faktoryel’ini bulun. (5!=5*4*3*2*1)
14 TEMMUZ 2021
DERS 15

Nested For Loop


While Loop

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar

1- For loop : baslangic ve bitisi belli olan tekrarli kod calismalarini yapmak icin loop kullaniriz.
2- Loop yazarken karar vermemiz gereken 3 sey
i) Baslangic degeri
ii) bitirmek icin kosulumuz nedir
iii) her adimda degiskeni nasil degistirecegiz
3- Eger baslangic degerini artis veya azalis yaparak degistirdigimizde bitis kosuluna yaklasmiyorsak
sonsuz loop olusur,
4- Eger baslangic degeri bitis kosulunu saglamazsa, for loop calisir ama loop body’si hic devreye
girmez, dolayisiyla loop anlamsiz olur…
5- loop daki degisken artabildigi gibi, soruya gore azaladabilir
Nested For Loop
Bazen tek bir loop ile istedigimiz sonuclara ulasamayiz.
Ozellikle iki boyutlu sekiller cizdirmek veya carpim tablosu gibi sayi ikilileri olusturmak
icin nested loop kullanmamiz gerekir.
* 1 2 3 4
** 2 4 6 8
*** 3 6 9 12
****
15 TEMMUZ 2021
DERS 16

Nested For Loop


While Loop

Mehmet BULUTLUOZ
[Link] [Link].
Nested For Loop

Soru 12 ) Kullanicidan pozitif bir rakam girmesini isteyin ve girilen rakama gore
asagidaki sekli cizdirin
*
**
***
****

Soru 13 ) Kullanicidan pozitif bir rakam girmesini isteyin ve girilen rakama gore carpim
tablosu olusturun. Ornek,kullanici 3 girerse,
123
246
369
While Loop
While Loop

Soru 1 ) While loop kullanarak 3 den 13 e kadar tum tek tamsayilari ekrana yazdiriniz.

Soru 2 ) For loop ve while Loop kullanarak 3 basamakli sayilardan 15, 20 ve 90’na tam
bolunebilen sayilari yazdirin.

Soru 3 ) Kullanicidan baslangic ve bitis degerlerini alin. Baslangic degeri ve bitis degeri
dahil aradalarindaki tum cift tamsayilari while loop kullanarak ekrana yazdiriniz.

Soru 4) Kullanicidan baslangic ve bitis haflerini alin ve baslangic harfinden baslayip bitis
harfinde biten tum harfleri buyuk harf olarak ekrana yazdirin. Kullanicinin hata
yapmadigini farz edin.
While Loop

Soru 5) Kullanicidan bir rakam alin ve bu rakam icin carpim tablosunu ekrana
yazdirin. Kullanicinin hata yapmadigini farz edin.

Ornegin kullanici 3 girerse;

3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27 3x10=30

Soru 6 ) Kullanicidan bir sayi alin ve bu sayiyi tam bolen sayilari ve toplam kac tane
olduklarini ekranda yazdirin

Soru 7 ) Kullanicidan bir sayi alin ve bu sayinin rakamlari toplamini yazdirin


16 TEMMUZ 2021
DERS 18

DoWhile Loop
Scope

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Nested For Loop : iki boyutlu sekiller veya iki degiskenli denklemler kullanmamiz gerektiginde
nested for loop’lara ihtiyacimiz olur
2- Outer loop’un her bir dongusu icin inner loop bastan sona calisir. Inner bittikten sonra bir alt
satira gecip orada islem varsa devam eder..
3- While loop , sart olarak yazdigimiz boolean ifade true oldugu muddetce while loop body’si tekrar
tekrar calisir. Sart false oldugunda loop sona erer ve sonraki satirdan kod calismaya devam eder
4- Daha once for loop da kullandigimiz baslangic degeri ve artis sekli while loop’un syntax’inde yer
almaz ama loop’un calismasi icin gereklidir. Bunun icin biz her while loop icin loop baslamadan
once baslangic degeri olusturacak variable’I olusturmali ve loop’un icinde de degisim seklini ve
miktarini yazmaliyiz.
5- For loop Vs While Loop :
adim sayisi veya baslangic ve bitis degerleri belli ise for loop daha Pratik olabilir.
Ancak adim sayisi ongorulemiyorsa, loop’un bitisi bir adima degil de sarta bagliysa bu durumda
while loop daha avantajli olmaktadir.
Ornegin kullanicidan degerler aliyorsak ve kullaniciya istedigi kadar deger grime hakki veriyorsak
for loop kullanmamiz mumkun degildir.
Do While Loop
Do While Loop Vs While Loop

Fark : While Loop, dongunun başlangıcında kosulu kontrol eder ve kosul saglanirsa
body icindeki kodlari calistirir.
Do-while loop’ta ise , kosul body icerisindeki kodlar 1 kere calistiktan sonra
kontrol edilir.

Sonuc : Bir while loop’daki kosul yanlıssa, loop hic calismaz ‘do-wile' loop’ta ise , kosul
yanlissa kodlar 1 kere calisir
Do While Loop
Soru 1 ) 9 den 190 e kadar 7 nin kati olan tum tamsayilari ekrana yazdiriniz.

Soru 2 ) ’m’ harfinden baslayarak ‘c’ harfine kadar tum harfleri yazdirin.

Soru 3) Kullanicidan toplamak uzere pozitif sayilar isteyin, islemi bitirmek icin 0’a basmasini
soyleyin.

Kullanici 0’a bastiginda toplam kac pozitif sayi girdigini ve girdigi pozitif sayilarin
toplaminin kac oldugunu yazdirin.

Soru 4) Kullanicidan toplamak uzere pozitif sayilar isteyin, islemi bitirmek icin 0’a basmasini
soyleyin.

Kullanici yanlislikla negative sayi girerse o sayiyi dikkate almayin ve “Negatif sayi
giremezsiniz” yazdirip basa donun

Kullanici 0’a bastiginda toplam kac pozitif sayi girdigini, yanlislikla kac negative sayi
girdigini ve girdigi pozitif sayilarin toplaminin kac oldugunu yazdirin.
Do While Loop

Soru 5 ) Kullanicidan bir sifre girmesini isteyin. Girilen sifreyi asagidaki sartlara gore kontrol
edin ve sifredeki hatalari yazdirin.
Kullanici gecerli bir sifre girinceye kadar bu islemi tekrar edin ve gecerli sifre
girdiginde “Sifreniz Kabul edilmistir” yazdirin.
- Sifre kucuk harf icermelidir
- Sifre buyuk harf icermelidir
- Sifre ozel karakter icermelidir
- Sifre en az 8 karakter olmalidir.
Soru 6 ) Kullanicidan toplamak icin sayi isteyin ve toplam 500’e ulasincaya kadar devam
istemeyi ettirin. Toplam 500’e ulastiginda veya gectiginde toplami ve kac sayi
girildigini yazdirin
Scope
Instance,Class ve Local Variables
Object Nasil Kullanilir ?

Ogretmen
Ogrenci

Dersler

Personel Notlar
Scope
Instance,Class ve Local Variables
Scope (Kapsam)

➢ Bir Class icerisinde olusturulan variable’lar icin Scope, o variable’a nereden, nasil
ulasilabilecegini ve nerede gecerli oldugunu ifade eder.

➢ Scope’a uymayan bir kullanimda Java Compile Time Error verir.

➢ Java’da olusturulan variable’lar icin 4 Scope mevcuttur

1) Instance (Object) Variables // ogretmenin adi gibi, ogrencinin notu gibi

2) Static (Class) Variables // okul adi, adresi gibi

3) Local (Method) Variables

4) Loop Variables
Scope
Instance,Class ve Local Variables

Instance (Object) Variable

Class’in icinde ancak main method’un


disinda olmalidir

Static olmamalidir

Olusturulmasi yeterlidir, deger


atanmasi sart degildir.

Default Value
Eger instance bir variable olusturur ama deger atamazsaniz, Java otomatik olarak
default degerleri assign eder. (String icin null, sayisal data turleri 0, boolean false)
Scope
Instance,Class ve Local Variables

Instance (Object) Variable


class icerisinde veya baska class’larda
direk kullanilamaz, kullanmak
istedigimizde MUTLAKA object olusturmali
ve object uzerinden ulasilmalidir.
Outputs

Ornek :
Bir okul uygulamasi yaptigimizi dusundugumuzde, ogretmenIsmi, ogrenciIsmi, matematiNotu
gibi degiskenler bir kisi ile iliskilendirilmedikce anlamli olmaz
Scope
Instance,Class ve Local Variables

Class (static) Variable

Class’in icinde ancak main


method’un disinda olmalidir.

Static olmalidir

Olusturulmasi yeterlidir, deger


atanmasi sart degildir.
Scope
Instance,Class ve Local Variables

Class (static) Variable, class icerisinde


direk kullanilabilir, baska class’larda
kullanmak istedigimizde object
olusturmaya ihtiyac duymadan Outputs
[Link] ile variable’a
ulasabilir ve kalici olarak
degistirebiliriz.

Ornek : Bir okul uygulamasi yaptigimizi dusunun okulIsmi, okulId, acikMi gibi degiskenler
bir kisiyi degil okulla ilgili herkesi ilgilendirir ve bir kisi okul ismini veya okul telefon
numarasini degistirirse okulla ilgili herkes icin okul ismi degisir.
Scope
Instance Vs Class Variables

Instance (Object) Variable, class Class (static) Variable, class icerisinde


icerisinde veya baska direk kullanilabilir, baska class’larda
class’larda direk kullanilamaz, kullanmak istedigimizde object
kullanmak istedigimizde olusturmaya ihtiyac duymadan
MUTLAKA object olusturmali ve [Link] ile variable’a
object uzerinden ulasilabilir. ulasabilir ve kalici olarak degistirebiliriz.

Static variable’lar herkes icin ortaktir (okul ismi gibi) , instance variable’lar ise objeye
baglidir (matematikNotu, ogrenciIsmi gibi)

Static variable yetkisi olan herkes tarafindan degistirilebilir ve bu degisim her obje icin
gecerlidir. Instance variable da yetkisi olan herkes tarafindan degistirilebilir ancak
yapilan degisiklik sadece o obje ile ilgilidir, geneli kapsamaz.
Scope
Instance,Class ve Local Variables
Local Variable
➢ Herhangi bir method icerisinde
olusturulan variable’lardir (main
method dahil).
➢ Sadece o method icerisinde
gecerlidir
➢ Baska methodlarda da kullanilacak
variable’lari, local olusturmak yerine
class level’da olusturmak gereklidir.
➢ Class level’da olusturulacak variable,
main method’da kullanilacaksa static
olarak olusturulmalidir. Bu durumda
bu variable kullanacak, diger
method’lar da static olmalidir.
Scope
Instance,Class ve Local Variables

Local Variable

➢ Java local variable’lara default deger


atamaz.

➢ Sadece olusturdugunuzda Java sikayet


etmez. ( variable olusturuldu method
icerisinde deger atanacak diye bekler.)

➢ Olusturulan local variable’lara deger


atamadan kullanmaya calisirsaniz Java
sikayet eder(CTE)
Scope
Instance,Class ve Local Variables

Loop Variables

➢ Bir loop icinde olusturulan variable’lar


sadece o loop icerisinde gecerlidir.

➢ Loop icerisinde olusturulan


variable’lara loop disindan ulasilamaz
ve loop disinda kullanilamaz.

➢ Loop icerisinde olusturulan local


variable’lari disarida kullanmaya
calisirsaniz Java sikayet eder(CTE)
17 TEMMUZ 2021
DERS 19

Arrays

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Scope : Olusturdugumuz variable’larin gecerli oldugu bolgedir. Bu konuda ogrenmemiz gereken sey
hangi variable’a nereden ve nasil ulasabilecegimizdir.
2- Java’da bilmemiz gereken 4 scope vardir. Bunlardan ilk ikisi class level’da olusturulan variable’lar
icin gecerlidir.
i) instance variables (Object variables): Objelere bagli olarak degisir ( ogretmen ismi veya not gibi)
- class level’da olusturulmalidir.
- static olmamasi gerekir
- static olmadigi icin static alanlardan direk kullanilamaz (object olusturularak kullanilabilir)
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
ii) static variables (Class variable) : Tum objeler icin ortaktir. (okul ismi gibi) Eger static variable
degistirilirse tum objeler etkilenir.
- class level’da olusturulmalidir. (local’de static variable olusturulamaz)
- static kelimesi kullanilarak tanimlanmalidir
- Class icerisinde static olan veya olmayan heryer’den erisilebilir.
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
Onceki Dersten Aklimizda Kalanlar
1- Scope : Olusturdugumuz variable’larin gecerli oldugu bolgedir. Bu konuda ogrenmemiz gereken sey
hangi variable’a nereden ve nasil ulasabilecegimizdir.
2- Java’da bilmemiz gereken 4 scope vardir. Bunlardan ilk ikisi class level’da olusturulan variable’lar
icin gecerlidir.
i) instance variables (Object variables): Objelere bagli olarak degisir ( ogretmen ismi veya not gibi)
- class level’da olusturulmalidir.
- static olmamasi gerekir
- static olmadigi icin static alanlardan direk kullanilamaz (object olusturularak kullanilabilir)
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
ii) static variables (Class variable) : Tum objeler icin ortaktir. (okul ismi gibi) Eger static variable
degistirilirse tum objeler etkilenir.
- class level’da olusturulmalidir. (local’de static variable olusturulamaz)
- static kelimesi kullanilarak tanimlanmalidir
- Class icerisinde static olan veya olmayan heryer’den erisilebilir.
- olusturmak yeterlidir, deger atamak mecburi degildir. (deger atanmazsa default degeri alir)
Onceki Dersten Aklimizda Kalanlar
3- diger 2 scope class level’da degildir
iii) local variable : herhangi bir method icerisinde olusturulan variable’larder ve sadece
olusturulduklari method icerisnde direk kullanilabilirler.
- olusturmak icin declaration yeterlidir, ancak kullanmak icin declaration yetmez, mutlaka
oncelikle deger atamasi (assignment) yapmak gerekir.
- static olarak tanimlanamaz
- assignment yapmadan kullanmaya kalkarsak java CTE verir
iv) loop variable (bazi kaynaklarda buna da local variable denir)
- sadece olusturulduklari loop icerisinde gecerlidirler.
- loop’un disinda erisilemez ve kullanilamazlar.
Scope
Instance,Class ve Local Variables
public class MyClass{
int num1;
String name = "Ali";
public static void main(String args){
add();
product (5);
}
public static add(){ 1) Hangileri instance variable’dir ?
num1 ++;
2) Hangileri local variable’dir?
int num2 = 6;
char letter; 3) num1 icin default value nedir ?
[Link]("Do addition "); 4) Java hangi satirlarin altini kirmizi cizer?
}
public product(int num3){ 5) Kac satir compile time error verir?
name = "Veli";
num2++;
[Link](num3 * num3);
}}
Arrays

Arrays birden fazla variable depolamak icin kullanilabilen object (non-primitive data)’lerdir.

1) Arrays’de sadece primitive datalar veya non-primitive datalara ait referans’lar


depolanabilir

2) Arrays icindeki tum variable’lar ayni data type’inde olmalidir.


Arrays

3) Bir Array olusturmadan once o Array’in icine kac variable koyacagimiza karar
vermeliyiz.

4) Bir Array icine koyabilecegimiz variable sayisina o Array’in “length” i denir. O Array
icine length’den fazla variable koyamayiz.

Maximum capacity (length) = 2

Maximum capacity (length) = 5


Arrays
5) Array’ler object (non-primitive) ’tir. Bu yuzden
- Heap Memory’de depolanirlar.
- Value ile birlikte method’lara da sahiptirler
- runtime’da olusturulurlar.
Bir Array declare edildiginde stack memory’de referans olusturulur
ama Array henuz olusturulmamistir.

value methods

. Array

Stack Heap
Arrays
6) Bir Array nasil declare edilir?
Array declare etmek icin iki yol vardir :
- int myArray[ ] ; // Bu daha cok kullanilir
- int [ ] myArray;

7) Bir Array nasil olusturulur


int myArray[ ] = new int[6];
- Yukaridaki kod length’i 6 olan bir array olusturur.
- Biz array’e eleman eklemezsek Java elemanlar icin data type’ina uygun default
degerler atar.
- Eger yukaridaki array’i yazdirirsaniz ekranda {0, 0, 0, 0, 0, 0} gorursunuz

NOT : Array olustururken length’i yazmazsaniz compile time error alirsiniz.


Arrays
8) Array’e degerler nasil atanir

int myArray[ ] = new int[3]; Veya int myArray[ ] = {9, 10, 11};
myArray[0] = 9;
myArray[1] = 10;
myArray[2] = 11;

Once olusturup, sonra istedigimiz Olusturma ve tum indexler icin


indexler icin deger atayabiliriz deger atamayi tek satirda yapariz.

Soru 1: Elemanlari “Ali” , “Veli”, “Ayse” ve “Fatma” olan bir array olusturun ve bu
array’i yazdirin.
Arrays
9) Array’in elemanlarina nasil ulasilir ve nasil update edilir ?

int myArray[ ] = {9, 10, 11};

Array elemanlarina index’ler kullanilarak ulasilir.


myArray[0] ==> 9,
myArray[1] ==> 10,
myArray[2] ==> 11,

NOT 1 : “n” array’in length’i olmak uzere myArray[n-1] son elemani gosterir

NOT 2 : Bir Array’de olmayan index’i kullanmak isterseniz


“ArraysIndexOutOfBoundsException” alirsiniz.

Soru 2: Soru 1’deki elemanlardan “Ali” yerine “Can”, “Ayse” yerine “Gul” atayin.
Arrays

10) Bir Array’in uzunlugu nasil bulunur?

int myArray[] = {9, 10, 11};

int size = [Link];

NOT : String ve Array icin length method’larinda dikkatli olmak gerekir.


Strings ==> length( )
Arrays ==> length
19 TEMMUZ 2021
DERS 20

Arrays

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Array (dizi) : birden cok datayi store etmek icin kullandigimiz objelerdendir. (non-primitive)
2- NP oldugu icin heap memory’de run time’da olusturulur
3- Array olusturmadan once maximum element sayisina (length) karar vermemiz ve koyacagimiz
elementlerin data turunu declare etmemiz gerekir. String arr [ ] = new String[5];
4- Array’I olusturuken icine koyacagimiz elementlerin data turunu dec;lare ettigimiz icin, o data turunden
baska turde data koyamayiz
5- Array’in kapasitesi sonradan degistirilemez.. Declare edilirken length yazilmazsa CTE verir
6- Array’ler sadece primitive data turundeki datalari veya non-primitive data turundeki datalarin
referanlarini store edebilirler
7- Array’I direk yazdirmak istersek Java array’I degil referansini yazdirir. Array’deki elementleri
yazdirmak icin for loop kullanabiliriz veya tum array’I yazdirmak icin Arrays class’indan toString
method’unu kullanabiliriz
8- Array’I olusturdugumuzda deger atamazsak Java default degerler assign eder
9- Arraydeki tum elementlere index ile ulasabilir veya update edebiliriz
10-
Arrays

11) Bir Array’in tum eleamanlari nasil yazdirilir?

int myArray[ ] = {9, 10, 11};

for(int i=0; i<size; i++) { [Link]([Link](myArray));


[Link](myArray[i]);
}

Soru 1: Verilen 3 elemanli bir array’in tum elemanlarini bir soldaki konuma tasiyacak bir
program yazin. Ornek; array [1,2, 3] ise output [2, 3, 1] olacak.
Soru 2: Verilen bir array’in tum elemanlarini toplayan bir program yazalim.
Arrays

12) Bir Array’in tum elemanlari nasil siralanir?

int myArray[ ] = {9, 15, 11};


Arrays. sort (myArray);

Siralama buyukten kucuge nasil yapilir ?

- Once sort methodu kullanilir


- Sonra siralamayi ters cevirmek icin loop kullanilir
Arrays
13) Bir Array’de istenen bir elemanin varligi nasil kontrol edilir?
binarySearch( ) method’u belli bir elemanin bir array’de olup olmadigini kontrol
etmek icin kullanilir.
Ancak, binarySearch( ) methodunu kullanmadan once mutlaka sort( ) methodu kullanilmalidir.

Eger bir eleman array’de yoksa output negatif olur.


1) O eleman var olsaydi sira numarasi kac olurdu, buluruz.
2) Buldugumuz sira numarasinin negatif hali, binarySearch( )’un outputu olur.
Arrays

Output nedir ?

1
3
-3
-5

0
1
-3
-4
Arrays

14) Iki array’in esit olup olmadigi nasil kontrol edilir?


equals() method’u degerleri ve indexleri birlirkte kontrol edip, boolean bir
deger return eder.

false

false

true
Arrays
16) Bir String nasil array’e cevrilir ?

split( ) method’u String’e ait bir method’dur ve belirledigimiz ayirac’a gore String’i
parcalara ayirip bir Array’e cevirir.

[Java ogrenmek, IT alaninda yer edinmek demektir.]

[Java, ogrenmek,, IT, alaninda, yer, edinmek, demektir.]

[J, a, v, a, , o, g, r, e, n, m, e, k, ,, , I, T, , a, l, a, n, i, n, d,
a, , y, e, r, , e, d, i, n, m, e, k, , d, e, m, e, k, t, i, r, .]
Arrays
23 TEMMUZ 2021
DERS 21

Multi Dimensional Arrays

Mehmet BULUTLUOZ
[Link] [Link].
Multi Dimensional Arrays
(Cok Katli Array’ler)
Eger bir Array ic ice Array’lerden olusuyorsa buna Multi Dimensional Array denir
Multi Dimensional Arrays
(Cok Katli Array’ler)

Array’i tanimlarken (declaration), her bir kat icin bir [ ] kullanilir.

Int arr[ ][ ] = { {1,2} , {3,4}, {5,6}};

Multi Dimensional Array olusturma

Array icindeki elemanlara deger atama

Inner Array’leri yazdirma

Belirli bir elemani yazdirma


Multi Dimensional Arrays
(Cok Katli Array’ler)

Multi Dimensional Array’in tum elemanlari nasil yazdirilir ?

Nested For Loop kullanilabilir

Arrays Class’indan method kullanilabilir


Multi Dimensional Arrays
(Cok Katli Array’ler)
Soru 1 ) Asagidaki multi dimensional array’in tum elemanlarinin carpimini ekrana
yazdiran bir method yaziniz. { {1,2,3}, {4,5,6} }
Soru 2) Asagidaki multi dimensional array’in ic array’lerindeki son elemanlarin carpimini
ekrana yazdiran bir program yaziniz { {1,2,3}, {4,5}, {6} }
Soru 3) Asagidaki multi dimensional array’lerin ic array’lerinde ayni index’e sahip
elemanlarin toplamini ekrana yazdiran bir program yaziniz. (Zor soru) arr1 = { {1,2},
{3,4,5}, {6} } ve arr2 = { {7,8,9}, {10,11}, {12} }
Soru 4) Asagidaki multi dimensional array’in ic array’lerindeki tum elemanlarin toplamini
birer birer bulan ve herbir sonucu yeni bir array’in elemani yapan ve yeni array’i ekrana
yazdiran bir program yaziniz { {1,2,3}, {4,5}, {6,7} }
Ornek; { {1,2,3}, {4,5}, {6,7} } ==> 1+2+3=6 4+5=9 6+7=13 ==> output: {6, 9, 13}
Soru 5) Kullanicidan bir cumle isteyin ve cumledeki kelime sayisini yazdirin
Soru 6) Verilen bir Array’den isten degere esit olan elamanlari kaldirip, kalanlari yeni bir
Array olarak yazdiran bir method yaziniz
24 TEMMUZ 2021
DERS 23

ArrayLists

Mehmet BULUTLUOZ
[Link] [Link].
Onceki Dersten Aklimizda Kalanlar
1- Multi Dimensional Arrays : cok katli array, eger bir array’in icinde elemnt olarak yine array’ler
bulunuyorsa buna MDA denir.
2- distaki array outer, icrteki array’ler ise inner array olarak adlandirilir.
3- MDA kac katli ise declaration sirasinda o kadar [ ] yazmamiz gerekir
4- int arr[ ] [ ] = new int [3][2]; bu declaration’da ilk [3] outer array’in icinde kac tane inner array oldugunu
gosterir, ikinci [2] inner array’lerin uzunlugunu verir. Bu sekilde bir declaration ile MDA olusturulursa
inner array’ler farkli uzunlukta olamaz, hepsinin uzunlugunun 2 olmasi sarttir… [[0,0],[0,0],[0,0]]
5- Alternatif olarak tum array elemntlerini yazarak MDA olusturulabilir.
int arr [ ] [ ] = {{4,1}, {5,1,3,6},{2,7,8,9,12}} bu durumda inner array’lerin uzunluklari ayni olmak zorunda
degildir. arr[1] sadece 1 koseli parantez kullanirsak outer array’in 1 index’indeki inner array’ini ifade
eder. arr[2][1]➔ outer array’in 2 index’indeki inner array’in 1 index’indeki elementini verir = 7
6- MDA’de her bir elemente ulasmak veya kullanmak istiyorsak nested for loop kullanmalisiniz
7- MDA direk yazdirmak istersek [Link](arr) kullanilabilir. Eger deepToString kullanilmaz ,
yerine toString kullanilirsa inner array’lerin referanslarini yazdirir
Socrative Quiz

1) [Link] adresine gidin

2) Login butonuna basin

3) Student Login butonuna basin (veya


[Link] )

4) Room Name BULUTLUOZ yazin

5) Isminizi yazin

6) Done butonuna basin

Sure : 15 Dakika
ArrayList

ArrayList nedir?
ArrayList length’i esnek olan bir Array’dir

ArrayList’e nicin ihtiyac duyariz?

➢ Biz array olustururken length’in en basta belirlemek zorundayiz ve daha sonra


length’ini [Link] durum bizim esnek calismamiza engel olur.

➢ Bir array’in uzunlugunu degistirmek istedigimizde yeni bir array olusturmamiz


gerekir, ArrayList de gerekmez.

➢ Bir array’den bir eleman silmek istedigimizde yeni bir array olusturmamiz
gerekir, ArrayList de gerekmez.
ArrayList
ArrayList olusturma

ArrayList<String> list1 = new ArrayList<String>();

ArrayList<String> list2 = new ArrayList<>();

List<String> list3 = new ArrayList<>(); En cok bu kullanilir

ArrayList<String> list4 = new List<>();

Compile Time Error verir, esitligin sag tarafinda ArrayList kullanmak zorundayiz

ArrayList’i nasil yazdiririz?

ArrayList’i ekrana yazdirmak cok kolaydir.


[Link](list3);
ArrayList Method’lari

1) add()
add() method ArrayList’e eleman eklemek icin kullanilir

Ornek :
List<String> hayvan = new ArrayList<>();
A) add() method’u index olmadan calisabilir
[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]
B) add() method’u index ile de calisabilir

[Link](1, "kartal"); // [kedi, kartal, yilan]


[Link](0, "sinek"); // [sinek, kedi, kartal, yilan]
[Link](1, "aslan"); // [sinek, aslan, kedi, kartal, yilan]
[Link](hayvan); // [sinek, aslan, kedi, kartal, yilan]
ArrayList Method’lari

2) size()
size() method ArrayList’de kac eleman oldugunu gosterir.

Ornek :
List<String> hayvan = new ArrayList<>();
[Link]([Link]()); // 0

[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]

[Link]([Link]()); // 2

3) isEmpty()
isEmpty() method’u ArrayList bos ise true, bos degilse false dondurur
ArrayList Method’lari
4) remove()
remove() method’u ArrayList’den belli bir elemani silmek icin kullanilir.

A) remove(index) kullanarak. Size’dan buyuk index yazilirsa exception verir.


Index’li remove() methodu ArrayList’de verilen index’deki elemani siler.

List<String> hayvan = new ArrayList<>();


[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]
[Link](1); // index’i 1 olan elemani siler
[Link](hayvan); //[kedi]
NOT: remove(index) method’u silinen elemani dondurur. Yani method’u
[Link]( ) icinde kullanirsak silinen elemani ekrana yazdirir.

[Link]([Link](1)); //yilan
ArrayList Method’lari
B) remove(“eleman”) index’i degil elemani kullanirsak kullandigimiz
elemanin ilk kullanildigi yeri bulur ve siler.

List<String> hayvan = new ArrayList<>();


[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]
[Link](“kedi"); // [kedi, yilan, kedi]
[Link](“kedi”);
[Link](hayvan); // [yilan, kedi]
Not: Index’siz remove() method’u true veya false dondurur.
[Link]([Link](“kedi”)); //true yani kedi eleman olarak vardi ve sildim

[Link]([Link](“tavsan”)); // false yani tavsan eleman olarak yoktu


dolayisiyla silemedim
ArrayList Method’lari

5) set()
set() methodu ArrayList’de var olan bir elemani degistirmeye yarar

List<String> hayvan = new ArrayList<>();


[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]

[Link](1, “tavsan”);

[Link](hayvan); //[kedi, tavsan]

NOT: set() method’u add() method’u yerine kullanilamaz .


Olmayan bir index ile set() kullanilirsa exception verir.

[Link](2, “aslan"); // IndexOutOfBoundsException


ArrayList Method’lari

6) get(index)
get() methodu ArrayList’deki istenen indexdeki elemani dondurur.

List<String> hayvan = new ArrayList<>();


[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]

[Link]([Link](0)); // kedi

[Link]([Link](1)); // yilan
ArrayList Method’lari

7) contains()
contains() methodu ArrayList’de bir elemanin var olup olmadigini
kontrol eder. Eleman varsa true, yoksa false return eder.

List<String> hayvan = new ArrayList<>();


[Link]("kedi"); // [kedi]
[Link]("yilan"); // [kedi, yilan]

[Link]([Link](“kedi”)); // true

[Link]([Link](“tavsan”)); // false
ArrayList Method’lari

8) [Link]() : sort() methodu ArrayList’deki elemanlari


kucukten buyuge veya alfabetik siraya gore dizer.

List<String> hayvan = new ArrayList<>();


[Link]("yilan"); // [yilan]
[Link]("kedi"); // [yilan, kedi]
[Link]("tavsan"); // [yilan, kedi, tavsan]

[Link](hayvan); //[yilan, kedi, tavsan]

[Link](hayvan);
[Link](hayvan); // [kedi, tavsan, yilan]
ArrayList Method’lari
9) equals()
equals() methodu iki listteki ayni indexteki elemanlarin ayni olup olmadigini kontrol
eder. Ayni indexteki tum elemanlar ayni ise true return eder, farkli ise false return eder

List<String> first = new ArrayList<>( );


List<String> second = new ArrayList<>( );
[Link]([Link](second)); // true

[Link]("a"); // [a]
[Link]([Link](second)); // false

[Link]("a"); // [a]
[Link]([Link](second)); // true

[Link](“b"); // [a,b]
[Link](0,“b"); // [b,a]
[Link]([Link](second)); // false
ArrayList Method’lari
10) clear()
clear() methodu ArrayList’teki tum elemanlari siler.
Return type’i void’dir, hic bir sey donmez

List<String> hayvan = new ArrayList<>();


[Link]("yilan"); // [yilan]
[Link]("kedi"); // [yilan, kedi]

[Link]([Link]()); // false
[Link]([Link]()); // 2

[Link]();
[Link]([Link]()); // true
[Link]([Link]()); // 0
Sorular ArrayList
1) Elemanlari A, C, E, ve F olan bir String ArrayList olusturup ekrana yazdiriniz.
2) indexsiz add() methodunu kullanarak, B’yi ekleyiniz.
index’li add() methodunu kullanarak, L’yi 1 numarali index’e ekleyiniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, E, F, B.
3) set() methodu kullanarak, E’yi D yapiniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, D, F, B.
4) remove() methodu kullanarak, F’yi siliniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, L, C, D, B.
5) sort() methodu kullanarak, elemanlari alfabetik siraya diziniz.
ArrayList’i ekrana yazdiriniz, list goyle olmali; A, B, C, D, L.
6) contains() methodu kullanarak, L’nin list’de var oldugunu ve M’nin list’de var
olmadigini dogrulayiniz.
7) size() methodu kullanarak, list’in kag eleman oldugunu ekrana yazdiriniz.
8) clear() methodu kullanarak, list’deki tum elemanlari siliniz.
9) isEmpty() methodu kullanarak, list’deki tum elemanlarin silindigini dogrulayiniz
Array’i ArrayList’e Cevirmek
String [ ] arr = {"tavsan", "serce" };

List<String> list = [Link](arr);


Uzunlugu degistirilemeyen bir list’e cevirir. Yani;yeni olusturulan listte add(),
remove() ve clear() methodlarini kullanamazsiniz. Exception

[Link]([Link]()); // 2
[Link](list); // [tavsan, serce]

NOT: Eger array’deki bir elemani degistirirseniz list’teki eleman da otomatik olarak
degisir. Listteki bir elemani degistirirseniz array de otomatik olarak degisir.

[Link](1, "test"); // [tavsan, test]


arr[0] = "new"; // [new, test]
[Link]([Link](arr)); // [new, test]
[Link](list); // [new, test]
ArrayList’i Array’e Cevirmek

List<String> list = new ArrayList<>();


[Link](“tavsan");
[Link](“horoz”);
[Link](list); //[tavsan,horoz]

[Link]
String arr[ ] = [Link](new String[0]);

[Link]([Link]); // 2
System. out .println(Arrays. toString (arr)); // [tavsan,horoz]

[Link]
Object arr[ ] = [Link]( );

[Link]([Link]); // 2
System. out .println(Arrays. toString (arr)); // [tavsan,horoz]
For Each Loop
Enhanced (Gelistirilmis) For Loop

Faydalari:
Kodun daha okunabilir olmasini saglar. Hata yapma ihtimalini azaltir.

public static void main(String args[ ]){ public static void main(String args[ ]){
ArrayList<String> list=new
ArrayList<String>();
int arr[ ]={12,13,14,44}; [Link]("Ali");
[Link]("Veli");
for( int i: arr) { [Link]("Can");
[Link](i + “ ”); for( String s : list) {
} [Link](s + “ ”);
}
} }
For Each Loop
Soru 1:
Bir integer array olusturunuz ve bu array’deki tum sayilarin carpimini For-each loop
kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Soru 2:
Bir integer list olusturunuz ve bu list’deki tum sayilarin karesinin toplamini For-each
loop kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Soru 3:
iki String array olusturunuz ve bu array’lerdeki ortak elemanlari For-each loop
kullanarak bulunuz. Sonucu ekrana yazdiriniz.
Ortak eleman yoksa ekrana “Ortak eleman yok” yazdiriniz
Soru 4:
Bir String olusturunuz, bu String’deki character’leri for-each loop kullanarak
yazdiriniz. ipucu: split()
Constructor
(Java object’leri nasil olusturur ?)

You might also like