Professional Documents
Culture Documents
Day 1
Day 1
1. Gün
Itero Academy
Arkhé Köyü
Temmuz 2022
İlk kez 1963’te Alan Kays tarafından yayınlanan tezde ortaya çıkmıştır.
OOP kullanılarak geliştirilen programlarda, programdaki
konseptleri/yapıları temsil eden sınıflar(classlar) oluşturulur.
Programın yapması gereken işlemler objeler oluşturarak bu objeler
üzerinde çalışır.
Polymorphism, inheritance, encapsulation gibi korkunç görünen
konseptler, doğru kullanılarak programların kalitesini arttırır,
yazılımcının işini kolaylaştırır.
OOP’nin düzgün kullanılması büyük projeleri geliştirmek daha
kolaylaştırır.
// Bu bir yorum
/* Bu da oyle */
/*
Birden fazla satir kullanan
yorumlar yazmak da mumkun
*/
// Bu bir yorum
/* Bu da oyle */
/*
Birden fazla satir kullanan
yorumlar yazmak da mumkun
*/
Trivia
Neden yorumlarda Türkçe karakter kullanmadık?
class Main {
class Main {
Önemli
Class’ın adının önemi yok!
System.out.println("Hello world!");
System.out.println("Hello world!");
x = 28; // 28 atadik
Primitive Types
int Tam sayılar
char Karakterler (’a’, ’z’,
’ ?’)
float, double Reel sayılar (1.12381)
boolean true , false
Primitive Types
int Tam sayılar Reference Types
char Karakterler (’a’, ’z’, String Karakter dizisi (”Hello
’ ?’) World”)
float, double Reel sayılar (1.12381) Diğer Tipler Scanner , Stream ...
boolean true , false
Pratik Bilgi
Java’da namespace’ler süslü parantez arasında tanımlanır. Yani, bir süslü
parantezin içerisinde tanımlanan bir değişkene ya da fonksiyona dışarıdan
erişmek mümkün değildir.
Düşünelim
Tanımlanan ama atanmayan bir değişkenin değeri ne olur?
Düşünelim
Tanımlanan ama atanmayan bir değişkenin değeri ne olur?
Düşünelim
Tanımlanan ama atanmayan bir değişkenin değeri ne olur?
(Değişkenin bir class field’ı olarak mı yoksa fonksiyon içerisinde lokal bir
değişken olarak mı tanımlandığına göre)
= Değişken atama
= Değişken atama
+ Toplama, ya da uç uca ekleme
- Çıkarma işlemi
/ Bölme
* Çarpma
% Modulo (Bölme işleminden kalan)
x += b x = x + b
x *= b x = x * b
x /= b x = x / b
x -= b x = x - b
x++ x = x + 1
x-- x = x - 1
Önemli
Eğer bölme işleminin sonucunun ondalık kısmına da ihtiyacınız varsa,
kullandığınız veri tiplerine çok dikkat etmeniz gerek.
Önemli
Eğer bölme işleminin sonucunun ondalık kısmına da ihtiyacınız varsa,
kullandığınız veri tiplerine çok dikkat etmeniz gerek.
int x = 10;
int y = 4;
System.out.println(div1);
System.out.println(div2);
System.out.println(casted);
Casting Bir değişkenin veri tipine başka bir veri tipine dönüştürmeye
casting denir.
Casting Bir değişkenin veri tipine başka bir veri tipine dönüştürmeye
casting denir.
Önemli
Casting’i istediğimiz veri tipinden diğerine dönüştürmek için kullanamayız.
Hangi veri tipinin neye dönüşebileceğini belirleyen kurallar var.
Sayılar sayılara dönüşebilir (int → float, long → short)
Karakterler tam sayıya dönüşebilir (char → int)
Referans veri tiplerinin kuralları ise kalıtım hiyerarşisine bağlı
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Lutfen isminizi girin: ");
Scanner classı, kullanıcıdan alınan girdiyi farklı veri tipleri halinde size
verebilir. Kurs süresince kullanıcığınız birkaç scanner metodu:
Kontrol Yapıları Programın akışını kontrol edip belli koşullara bağlı olarak
farklı kod bloklarının çalışmasını sağlayan yapılardır.
Kontrol Yapıları Programın akışını kontrol edip belli koşullara bağlı olarak
farklı kod bloklarının çalışmasını sağlayan yapılardır.
Kontrol Yapıları Programın akışını kontrol edip belli koşullara bağlı olarak
farklı kod bloklarının çalışmasını sağlayan yapılardır.
Evet
Karar Ver Koşul Sağlandı
Hayır
Koşul Sağlanmadı
Devam
Karar verme yapılarının temel amacı belirli bir koşula bağlı olarak kodu
yönlendirmektir. Bu koşulları java’da ifade etmek için de mantık
operatörleri kullanılır:
Karar verme yapılarının temel amacı belirli bir koşula bağlı olarak kodu
yönlendirmektir. Bu koşulları java’da ifade etmek için de mantık
operatörleri kullanılır:
== İki tarafındaki terimler birbirine eşitse true döndürür
!= İki tarafındaki terimler birbirinden farklı ise true döndürür
Karar verme yapılarının temel amacı belirli bir koşula bağlı olarak kodu
yönlendirmektir. Bu koşulları java’da ifade etmek için de mantık
operatörleri kullanılır:
== İki tarafındaki terimler birbirine eşitse true döndürür
!= İki tarafındaki terimler birbirinden farklı ise true döndürür
&& Mantıktaki ve operatörüyle aynı işi yapar
|| Mantıktaki veya operatörüyle aynı işi yapar
Karar verme yapılarının temel amacı belirli bir koşula bağlı olarak kodu
yönlendirmektir. Bu koşulları java’da ifade etmek için de mantık
operatörleri kullanılır:
== İki tarafındaki terimler birbirine eşitse true döndürür
!= İki tarafındaki terimler birbirinden farklı ise true döndürür
&& Mantıktaki ve operatörüyle aynı işi yapar
|| Mantıktaki veya operatörüyle aynı işi yapar
< ve <= Soldaki terim sağdakinden küçük(veya eşit) ise true
döndürür
> ve >= Soldaki terim sağdakinden büyük(veya eşit) ise true
döndürür
int x = 10;
Düşünelim
else if yerine if kullansaydık ne olurdu?
Düşünelim
else if yerine if kullansaydık ne olurdu?
if kullanırsak
if(yaprak == 3){
System.out.println("3 yaprakli yonca");
}else if(yaprak == 4){
System.out.println("Sanslisin, 4 yaprakli yonca");
}else if(yaprak == 5){
System.out.println("5 yaprakli yonca var miymis?");
}else{
System.out.println("Onun yonca olduguna emin misin?");
}
Düşünelim
switch’i yazarken break; satirini yazmazsak ne olur?
İpucu: else if’e çok yakın bir etkisi var
Evet
Karar Ver Koşul Sağlandı
Hayır
Koşul Sağlanmadı
Devam
int toplam = 0;
System.out.println(toplam);
do{
sayi = s.nextInt();
toplam += sayi;
}while(sayi != 0);
System.out.println(toplam);
int total = 0;
int i = 1;
while(true){
total += i;
i++;
}
int i = 1;
for(; i > 0; ){
System.out.println(i);
i = i * 2;
}
int i = 1;
for(; i > 0; ){ // while(i > 0)
System.out.println(i);
i = i * 2;
}