
JAVA DERSLERİ ANASAYFA ÖNCEKİ DERS SIRADAKİ DERS
Konu başlığına tıklayarak detayları görebilirsiniz!!!
Java'da class (sınıf) konusu işlediğimiz ve işleyeceğimiz tüm konular için büyük öneme sahiptir. Daha sonra işleyeceğimiz konularda da sıkıntı yaşamamak açısından bu konuyu iyi anlamamız çok önemli.
Daha önceki derslerimizde sadece bir class oluşturup işlemlerimizi bu class'ın içinde gerçekleştiriyorduk. Bu dersimizde ise class mantığını daha iyi kavrayabilmek için iki class oluşturup bu class'ları birbiriyle etkileşime sokacağız. Class'ları da birer obje gibi değerlendirebilirsiniz. Ama biz bu objenin içerisinde bir değil birden fazla özelliği barındırıyoruz. Yani önceden bir kitap değişkeni oluşturup sadece kitabın adını yazabilirken, değişken işlevi görebilecek bir class oluşturup kitapla ilgili bir çok özelliği içinde barındırıp onu diğer class'lar içerisinde de kullanabiliriz.
Birden fazla class oluşturacağımız için ilk class'ımızı Ders10_Kitap olarak belirliyoruz. Normalde class adlarını bu kadar uzun tutmazdım ama konu takibi ve işleyiş açısından daha iyi olacağı için bu şekilde isimlendirmek zorunda kalıyorum Siz nasıl isterseniz o şekilde isim verip devam edebilirsiniz.
public class Ders10_Kitap {
Ders10_Kitap class'ı içerisinde ilk olarak değişkenlerimizi ve değişken türlerimizi belirliyoruz. Kitap ile ilgili olarak kitap ismi (String kitapIsim;), yazarı (String yazar;) ve yılından (int yil;) oluşan değişkenlerimizi tanımlıyoruz.
String kitapIsim; String yazar; int yil;
Sonrasında ise bu değişkenleri ileride çağırmamıza yardımcı olması açısından java'da sık sık kullanacağımız terimlerden olan bir constructor oluşturmamız gerekiyor. Bu kısımda class ifadesini kullanmamıza gerek yok sadece public Ders10_Kitap ifadesini yazıyoruz.
public Ders10_Kitap (String atama1, String atama2, int atama3) {
Constructor içerisinde this. ifadesini kullanarak her kitap oluşturma işlemimde bu değerlere ihtiyacım var diyoruz.
this.kitapIsim = atama1; this.yazar = atama2; this.yil = atama3; } }
Sonrasında Ders10_Ana class'ımızı oluşturup, main yani atamaları yaptığımız bölümü oluşturuyoruz.
public class Ders10_Ana {
public static void main (String[]args) {
Nasıl ki yeni bir değişken oluştururken başına int veya String yazıyorduk kitap öğesiyle ilgili birşey oluştururken de başına Ders10_Kitap yazıyoruz. Yani bir bakıma daha önce oluşturduğumuz Ders10_Kitap class'ı Ders10_Ana class'ımızda bir değişken gibi oluyor. Ama üç özellik birden taşıyor. new Ders10_Kitap diyip kitap1 adında yeni bir kitap oluşturarak parantez içerisinde kitap1 değişkenlerine atamalarımızı. yapıyoruz. Bu noktada parantez içerisinde kitap ismine, yazarına ve yılına karşılık gelecek şekilde değişken türlerini de göz önünde bulundurarak atama yapıyoruz (String ise string, int ise int vs.).
Ders10_Kitap kitap1 = new Ders10_Kitap (¨Suç ve Ceza¨, ¨Dostoyevski¨, 1866);
System.out.println kullanarak oluşturduğum kitabın her bir değişkenini çağırmak için başlarına kitap1 objesinin adını yazıyorum. Bu şekilde istediğimiz değişkeni yazarak ya da yazmayarak ekrana istediğimiz çıktıyı yazdırabiliyoruz. Tümünü kullanacağız diye bir şart yok. Bu ifadeler aslında bizim oluşturduğumuz Ders10_Kitap class'ından geliyor. Yoksa hiçbirşey gelmez yani içi boş olur. Bu değişkenleri kullanarak örnekteki gibi çeşitli uyarlamalarda yapılabilir. Kitabımız üç değişkeni bir arada tutabiliyor artık ve istediğimiz şekilde bu değişkenleri kullanabiliyoruz.
System.out.println(kitap1.kitapIsim + ¨ ¨ + kitap1.yil + ¨ yılında ¨ + kitap1.yazar + ¨ tarafından yazılmıştır.¨); System.out.println(kitap1.kitapIsim); System.out.println(kitap1.yazar); System.out.println(kitap1.yil); } }TOPLU DERS KODLARI VE KONU ÖZETİ
Ders10_Kitap.java
// public static void main yazmamıza gerek yok, main kısmını işlem yapacağımız veya bierşey döndüreceğimiz zaman kullanıyoruz public class Ders10_Kitap { // oluşturacağımız kitap objesinin neleri içermesini istiyorsak ona göre değişkenlerini oluşturuyoruz String kitapIsim; String yazar; int yil; // bu kısım java dünyasında constructor olarak geçiyor. yani atama işlemlerinin yapıldığı alan public Ders10_Kitap (String atama1, String atama2, int atama3) { this.kitapIsim = atama1; this.yazar = atama2; this.yil = atama3; } }
Ders10_Ana.java
public class Ders10_Ana { public static void main (String[]args) { // String int vb. değişken türü atamak yerine Ders10_Kitap diyoruz direk ardından kitap1 adında yeni // bir kitap oluşturuyoruz. Ders10_Kitap class'ından gelen kitapIsim, yazar, yil değişkenlerine denk gelecek atamalar yaparak Ders10_Kitap kitap1 = new Ders10_Kitap (¨Suç ve Ceza¨, ¨Dostoyevski¨, 1866); // tanımladığımız kitap1 objesinin her öğesini artık istediğimiz şekilde kullanabiliriz System.out.println(kitap1.kitapIsim + ¨ ¨ + kitap1.yil + ¨ yılında ¨ + kitap1.yazar + ¨ tarafından yazılmıştır.¨); // direk yukarıda tanımladığımız kitapla ilgili bilgileri (kitap1) çağırıyoruz // çağırmak için her değişkenin başına kitap1 yazıp nokta koyuyoruz System.out.println(kitap1.kitapIsim); System.out.println(kitap1.yazar); System.out.println(kitap1.yil); } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ
Ders10_Kitap.java
Ders10_Ana.java

Metodları javada programa birşeyler yaptırmak için kullanıyoruz. Yani elimizde insana ait değişkenler, özellikler ve diğer elemanlar var ama insanı yürütmek için bir metoda ihtiyacımız var. Metodu (method), fonksiyon (function) ismiyle de duyacaksınızdır. Aynı anlama gelmemektedir. Bir örnekle açıklayacak olursak daha iyi anlayacaksınızdır. Örneğimizde IMDB tarzı kullanıcıdan bir film için puanlama sistemi geliştireceğiz. Bu dersimizle alakalı olarak; Ders11_Film, Ders11_Kullanici ve Ders11_Metod adında 3 adet class oluşturacağız.
İlk olarak Ders11_Film adında bir class oluşturup filmle ilgili elemantları tutmak için String türünden filmAd, yonetmen adında iki değişken oluşturuyoruz. Bir de verdiğimiz puanları kesirli olarak tutması için double türünden puan adında bir değişken daha oluşturuyoruz.
public class Ders11_Film { String filmAd; String yonetmen; double puan;
Sonrasında bir önceki dersimizde öğrendiğimiz üzere constructor oluşturup, atama işlemlerini gerçekleştiriyoruz.
public Ders11_Film (String atama1, String atama2, double atama3) { this.filmAd = atama1; this.yonetmen = atama2; this.puan = atama3; } }
İlk class'ımızı oluşturduktan sonra kullanıcı bilgilierini tutacağımız Ders11_Kullanici class'ımızı oluşturuyoruz. Kullanıcı class'ımızda String türünden kullaniciAdi değişkenimizi oluşturup, filmListe[] adında bir Array yani liste değişkeni oluşturuyoruz.
public class Ders11_Kullanici { String kullaniciAdi; Ders11_Film filmListe[];
Bu class'ımız için de ayrı constructor oluşturma ve atama işlemlerini gerçekleştiriyoruz.
public Ders11_Kullanici (String atama1, Ders11_Film[] atama2) { this.kullaniciAdi = atama1; this.filmListe = atama2; } }
Şimdi ise konumuz ile ilgili kısma geliyoruz ve kullanıcının puanladığı filmelerin ortalamasını alan bir metod yazmaya başlıyoruz. Metodları yazdıktan sonra çağırırken metod adını yazarak bunu gerçekleştirebiliyoruz. Tutacağımız değer bir filmin puan ortalaması olacağından bazen tam sayı çıkmayabilir. O nedenle double filmPuanOrtalamasi() adında bir metod (fonksiyon) oluşturuyoruz.
public double filmPuanOrtalamasi() { double ortalamaPuan = 0; int a = 0;
Kullanıcının puanladığı tüm filmlerin üzerinde geçmek ve verdiği tüm puanları çekebilmek için bir for döngüsü yazıyoruz. Bu döngü ile ilk olarak film listesinde kaç film olduğunu bulmasını (length) ve bu elemanlara teker teker ulaşmasını sağlıyorum. Sonrasında film sayısı a değişkeninden yani 0'dan küçük olduğu sürece bu döngüyü çalıştır diyorum.
for (;a < this.filmListe.length; a++ ) {
Sonrasında yukarıda tanımladığımız ortalamaPuan değişkenini çağırıp, film listesindeki filmlerin ortalamasını alma amacıyla bir işlem yapıyorum. Karışık görünse de temelde matematikten aşina olduğumuz basit ortalama işlemlerinden biri gibi düşünebilirsiniz. Sonuna da Ders11_Film class'ından gelen puan değişkenini ekliyoruz.
ortalamaPuan = ortalamaPuan + this.filmListe[a].puan; }
Son olarak da genel ortalamayı bulmak için kodumuzu yazıp return diyerek sonucu ekrana yazdırmasını istiyoruz.
ortalamaPuan = ortalamaPuan / a; return ortalamaPuan; } }
Kodlarımızı ve fonksiyonlarımızı yazdıktan sonra Ders11_Metod adıyla bir main metod oluştururak yazdığımız kodların çalışmasını sağlayacağız. Class'ımızı oluşturup standart main metodumuzu oluşturuyoruz.
public class Ders11_Metod { public static void main (String[] args) {
4 adet film tanımlayıp daha önce Ders11_Film class'ında belirttiğimiz üzere filmAd, yonetmen, puan değişkenlerine karşılık gelecek bilgileri giriyoruz.
Ders11_Film film1 = new Ders11_Film (¨The Green Mile¨, ¨Frank Darabont¨, 8.4); Ders11_Film film2 = new Ders11_Film (¨Scent of a Woman¨, ¨Martin Brest¨, 7.9); Ders11_Film film3 = new Ders11_Film (¨The Treasure of Sierra Madre¨, ¨John Huston¨, 8.0); Ders11_Film film4 = new Ders11_Film (¨The Prestige¨, ¨Cristopher Nolan¨, 9.0);
Filmlere puan vermiş olan bir kullanıcı tanımlıyoruz. İstediğiniz kadar kullanıcı tanımlayabilirsiniz. Ders11_Kullanici class'ında belirttiğimiz üzere kullaniciAdi ve film listesine denk gelecek şekilde filmListe değişkenlerine karşılık gelecek bilgileri giriyoruz. 4 adet film bilgisi girdiğimiz için film1, film2, film3, film4 olarak yazmamız yeterli olacaktır.
Ders11_Kullanici kullanici1 = new Ders11_Kullanici (¨raven¨, new Ders11_Film[], {film1, film2, film3, film4});
Artık son olarak ortalamayı ekrana yazırması için bir açıklama ve sonuç kısmını kodumuza ekliyoruz.
System.out.print = (¨Kullanıcının verdiği puanların ortalaması: ¨); System.out.print = (kullanici1.filmPuanOrtalamasi()); } }TOPLU DERS KODLARI VE KONU ÖZETİ
Ders11_Film.java
public class Ders11_Film { // oluşturacağımız film objesinin neleri içermesini istiyorsak ona göre değişkenleri oluşturuyoruz String filmAd; String yonetmen; double puan; // ondalıklı bir sayı olacağı için değişken tipini double yapıyoruz // bu kısım java dünyasında constructor olarak geçiyor yani atama işlemlerinin yapıldığı alan public Ders11_Film (String atama1, String atama2, double atama3) { // tüm değişkenlerimizin atamalarını yapıyoruz this.filmAd = atama1; this.yonetmen = atama2; this.puan = atama3; } }
Ders11_Kullanici.java
public class Ders11_Kullanici { String kullaniciAdi; Ders11_Film filmListe[]; // constructor oluşturuyoruz public Ders11_Kullanici (String atama1, Ders11_Film[] atama2) { this.kullaniciAdi = atama1; this.filmListe = atama2; } } // film puan ortalamasını bulmak için bir metod oluşturuyoruz public double filmPuanOrtalamasi() { // ortalama puanı tutmak için double bir değişken oluşturuyorum double ortalamaPuan = 0; int a = 0; // for döngüsünü kullanıcının izlediği filmlere göz gezdirip içerisinden bir ortalama puan bulmak için kullanıyorum for (;a < this.filmListe.length; a++ ) { // a sayısı film listesinden küçük olduğu sürece bu döngüyü çalıştır diyoruz ortalamaPuan = ortalamaPuan + this.filmListe[a].puan; // verilen tüm puanları topluyoruz } // tüm puanları toplayıp ortalama puanı bul diyoruz ortalamaPuan = ortalamaPuan / a; return ortalamaPuan; // bize ortalama puanı döndür diyoruz. return demezsek hiçbirşey döndürmez } }
Ders11_Metod.java
public class Ders11_Metod { public static void main (String[] args) { // kullanıcının izlediği filmleri ve verdiği puanları yazıyoruz. Puanları değiştirdikçe ortalama da değişir Ders11_Film film1 = new Ders11_Film (¨The Green Mile¨, ¨Frank Darabont¨, 8.4); Ders11_Film film2 = new Ders11_Film (¨Scent of a Woman¨, ¨Martin Brest¨, 7.9); Ders11_Film film3 = new Ders11_Film (¨The Treasure of Sierra Madre¨, ¨John Huston¨, 8.0); Ders11_Film film4 = new Ders11_Film (¨The Prestige¨, ¨Cristopher Nolan¨, 9.0); // raven adında kullanıcı oluşturup izlediği filmleri liste halinde belirtiyoruz Ders11_Kullanici kullanici1 = new Ders11_Kullanici (¨raven¨, new Ders11_Film[], {film1, film2, film3, film4}); // kullanıcının verdiği puanların ortalamasını bulup yazdırıyoruz System.out.print = (¨Kullanıcının verdiği puanların ortalaması: ¨); System.out.print = (kullanici1.filmPuanOrtalamasi()); } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ
Ders11_Film.java
Ders11_Kullanici.java

Ders11_Metod.java

Bu dersimizde class'larda inheritance (kalıtım/miras) konusunu işleyeceğiz. Adından anlaşılacağı üzere bir bakıma iki veya fazla class arasında küme mantığından yola çıkarsak bir bileşik küme oluşturuyoruz. Bu sayede iki veya fazla class'da ortak olan özellikleri veya değişkenleri tekrar tekrar kodlamamıza gerek kalmadan birbiri içerisinde kullanabiliyoruz. Daha günlük hayattan açıklayacak olursam; Mesela insan diye bir class'ımız var ve her insanın da belli özellikleri ortaktır ve bu özellikler her insan da olmak zorundadır (ad, soyad, doğum tarihi gibi). Bir de personel diye bir class oluşturuyoruz. Her personel aslında bir insandır da, yani bir adı, soyadı, doğum tarihi vardır. Ama personel noktasında insanlar arasında çalıştığı yere ve işe göre değişik özellikler gelir (SGK numarası, firması değişik olabilir, çalıştığı departman değişik olabilir). Bu durumda oluşturduğumuz personel class'ımız insan class'ının alt class'ı olmuş olur.
Örnekle anlatacak olursak Ders12_Insan adında bir class oluşturup String türünden ad, soyad ve Date türünden dogumTarihi diye üç değişken tanımlıyoruz. Date bize java tarafından tanımlanmış bir değişken türü olduğundan java.util.Date; öğesini import etmemiz gerekiyor. Yoksa hata alırız. Import işlemini elle yazarak yapabileceğimiz gibi sol tarafta çıkan hata işaretine tıklayarak çıkan menüden import'a tıklayarak da yapabiliriz.
import java.util.Date; public class Ders12_Insan { String ad; String soyad; Date dogumTarihi;
Bu değişkenler doğrultusunda daha önceki derste öğrendiğimiz şekilde Constructor'ımızı da oluşturuyoruz.
public Ders12_Insan (String atama1, String atama2, Date atama3) { this.ad = atama1; this.soyad = atama2; this.dogumTarihi = atama3;
Hemen sonrasında yaş hesabı yapabilmek için yasBul adında bir de fonksiyon (metod) oluşturuyoruz.
public int yasBul() {
Bulunduğumuz güne ait tarihi bulmak için Date bugun; adında bir öğe oluşturuyoruz. yasKac; adında bir int değişkeni oluşturarak da hesapladığımız yaşı tutmak için kullanacağız. Yaşı bulmak için bulunduğumuz bulunduğumuz tarihten doğum tarihini çıkarıyoruz. Yaşı bulmak için getYear(); fonksiyonunu kullanıyoruz. bugun.getYear(); ile bulunduğumuz tarihin yıl kısmını alıyoruz. dogumTarihi.getYear() ile kişinin doğum gününü alıyoruz. getYear'in üzerinin çizilmiş olmasına takılmayın. Bize farklı metodlarla da bu hesabı yapabileceğimizi bildiriyor ve kırmızı hata almadığımızdan dolayı herhangi bir sıkıntı yoktur. return yasKac; diyerek de yaş hesabının sonucunu döndürmesini istiyoruz. Burada return dememiz çok önemli, yoksa hiçbir sonuç döndürmez bize.
Date bugun = new Date; int yasKac = bugun.getYear() - this.dogumTarihi.getYear(); return yasKac; } }
Sonrasında Ders12_Personel diye bir class oluşturuyoruz. Bir class'dan diğerine kalıtım sağlamak için extends ifadesini kullanıyoruz.Yani başka bir deyişle Ders12_Insan class'ındaki tüm değişkenleri, metodları ve diğer özellikleri Ders12_Personel class'ında kullanılabilir duruma getiriyoruz. Bunu da Ders12_Personel extends Ders12_Insan şeklinde belirtiyoruz.
import java.util.Date; public class Ders12_Personel extends Ders12_Insan {
Bu class'ımızda da Ders12_Insan class'ında tanımladığımız 3 değişkeni de yazıyoruz. Ek olarak da personel için String türünde firmaNo ve firmaAd gibi iki değişken daha ekliyoruz.
String ad; String soyad; Date dogumTarihi; String firmaNo; String firmaAd;
Ardından her zamanki gibi yine Constructor'ımızı oluşturuyoruz. Constructor oluştururken bu sefer Ders12_Insan class'ından gelen değişkenleri başına super ekleyerek farklı şekilde tanımlıyoruz. Ama Ders12_Personel class'ı içerisindeki yeni değişkenleri her zaman yaptığımız şekilde tanımlıyoruz. Ders12_Insan class'ından gelen değişkenleri super (atama1, atama2, atama3); şeklinde tanımlıyoruz. super ifadesiyle extend ettiğimiz class'dan yani Ders12_Insan class'ından bilgileri çek demiş oluyoruz programa.
public Ders12_Personel (String atama1, String atama2, Date atama3, String atama4, String atama5) { super (atama1, atama2, atama3); this.firmaNo = atama4; this.firmaAd = atama5; } }
Üçüncü aşamada yeni bir class oluşturup adını Ders12_Ana olarak belirliyoruz ve main metodumuzu da yazıyoruz.
import java.util.Date; public class Ders12_Ana { public static void main(String[] args) {
Yeni bir Date (tarih) objesi oluşturuyoruz. d1. yazdığımızda java bize çeşitli önerilerde bulunacaktır. Bu noktada gün ataması yapabilmek için setDate(); fonksiyonunu kullanıyoruz. Doğum tarihimizin günü neyse bu kısma onu yazıyoruz (25'i ise 25 gibi). Doğum tarihimizin ayını atamak için setMonth(); sonundaki parantez içerisine doğum tarihimiz ay kısmını yazıyoruz. Burada önemli olan ayı yazarken daha önce öğrendiğimiz gibi java'nın saymaya sıfırdan başladığıdır. Yani haziran ayını belirtmek istiyorsak setMonth(); kısmına 5 yazmamız gerekir. setYear(); kısmına da doğum tarihimizin yıl kısmını yazıyoruz. Bir başka dikkat etmemiz gereken husus yılları -1900 şeklinde yazmamız gerekiyor java'da. Yani misal 1995 için 95, 2019 için 119 gibi. Örneğimizde 25 Haziran 1981 tarihinde doğmuş birinden bahsetmiş olduk.
Date d1 = new Date(); d1.setDate(25); d1.setMonth(5); d1.setYear(81);
Sonra insan1 adında Ders12_Insan objesi oluşturuyoruz. İnsana atadığımız özelliklerden ad, soyad ve d1 olarak eklediğimiz doğum tarihi ile ilgili bilgileri de sonuna ekliyoruz.
Ders12_Insan insan1 = new Ders12_Insan(“Tom”, “Hardy”, d1);
Ardından yasBul(); fonksiyonunu çağırıp insan1'in yaşını hesaplamasını sağlayıp, konsola yazmasını sağlıyoruz.
System.out.println(insan1.yasBul());
Hemen sonrasında benzer işlemleri gerçekleştirip bu sefer bir personel objesi oluşturup sadece firmaNo ve firmaAd bilgilerini yazıyoruz. d2 diye yeni bir Date yani doğum tarihi objesi oluşturuyoruz. Bulunduğumuz tarihe göre personelin yaşını bu tarih doğrultusunda hesaplayarak System.out.println ile sonucu ekrana yazdırıyoruz.
Date d2 = new Date(); d2.setDate(19); d2.setMonth(9); d2.setYear(85); Ders12_Personel personel1 = new Ders12_Personel(“Scarlett”, “Johansson”,d2, “1”, “Warner Bros.”); System.out.println(personel1.yasBul()); } }
TOPLU DERS KODLARI VE KONU ÖZETİ
Ders12_Insan.java
// java kütüphanesinden Date objesini import ettiğimiz kısım import java.util.Date; public class Ders12_Insan { // her insanda bulunan özelliklerden üç tane tanımlıyoruz String ad; String soyad; Date dogumTarihi; // Date türünden bir değişken tanımlarken Date öğesini import etmemiz gerekiyor yoksa hata verir // yukarıda tanımladığımız özellikler doğrultusunda constructor oluşturuyoruz public Ders12_Insan (String atama1, String atama2, Date atama3) { this.ad = atama1; this.soyad = atama2; this.dogumTarihi = atama3; // insanların yaşını hesaplayabilmek için yasBul() adında bir metod yazıyoruz. Bize sayısal bir değer vereceği için türü 'int' yapıyoruz public int yasBul() { Date bugun = new Date; // yasKac adında bir integer oluşturarak bugün tarihinden doğum tarihini çıkararak yaşı hesaplıyoruz. getYear bize yılı verir int yasKac = bugun.getYear() - this.dogumTarihi.getYear(); // sonucu döndürmek için mutlaka return kullanmalıyız. Yoksa hiçbirşey dönmez return yasKac; } }
Ders12_Personel.java
import java.util.Date; // Ders12_Insan class'ındaki değişkenlere ekleme yapmak amacıyla Ders12_Personel class'ı oluşturuyoruz // Extends ile inheritance(miras) özelliğini devreye sokuyoruz. Extends'den sonra kullandığımız class'ın tüm özellikleri bu class'a geçiyor // Ders12_Insan class'ındaki tüm değişkenlerin, metodların vs. burada kullanılmasını sağlıyoruz public class Ders12_Personel extends Ders12_Insan { // Burada Ders12_Insan class'ından her insanda olan özelliklerin yanısıra, personellerde değişkenlik gösteren özellikleri tanımlıyoruz String ad; String soyad; Date dogumTarihi; String firmaNo; String firmaAd; // Yukarıdaki bilgiler doğrultusunda constructor oluşturuyoruz public Ders12_Personel (String atama1, String atama2, Date atama3, String atama4, String atama5) { // Bu sefer constructor oluştururken Ders12_Insan'dan gelenleri super fonksiyonuyla belirtip sadece yeni değişkenlere atama yapıyoruz super (atama1, atama2, atama3); this.firmaNo = atama4; this.firmaAd = atama5; } }
Ders12_Ana.java
// yine Date objesini import ediyoruz import java.util.Date; public class Ders12_Ana { // main metodumuzu yazıyoruz her zamanki gibi public static void main(String[] args) { // yeni bir doğum günü eklemek için yeni bir Date oluşturup yine Date objesini import ediyoruz Date d1 = new Date(); d1.setDate(25); // tarihin gün kısmını atamak için setDate() kullanıyoruz d1.setMonth(5); // tarihin ay kısmını atamak için setMonth() kullanıyoruz. Java'da aylar sıfırdan sayılmaya başlar 5 yazdığımızda haziran oluyor d1.setYear(81); // tarihin yıl kısmını atamak için setYear() kullanıyoruz. Yıllar saymaya 1900'den başlar o yüzden yılları -1900 şeklinde yazıyoruz // yeni bir insan oluşturup bilgilerini giriyoruz. d1 ile yukarıdaki doğum tarihine yönelik bilgileri alıyoruz Ders12_Insan insan1 = new Ders12_Insan(“Tom”, “Hardy”, d1); // Des12_Insan class'ında yazdığımız fonksiyonu kullanarak yukarıda oluşturduğumuz insan1 adlı kişinin yaşını bulmasını söylüyoruz System.out.println(insan1.yasBul()); // yukarıdaki işlemlerin benzerini yaparak personel1'in yaşını bulmasını söylüyoruz bu sefer Date d2 = new Date(); d2.setDate(19); d2.setMonth(9); d2.setYear(85); Ders12_Personel personel1 = new Ders12_Personel(“Scarlett”, “Johansson”,d2, “1”, “Warner Bros.”); System.out.println(personel1.yasBul()); } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ
Ders12_Insan.java
Ders12_Personel.java

Ders12_Ana.java

Getter ve Setter bizim kodlamamızın çeşitli evrelerinde herhangi bir class'taki değişkenlerle iletişime geçmemizi ve bu değişkenler üzerinde değişiklikler yapabilmemizi sağlamaktadır. Getter'ları get yani almak/çağırmak anlamına gelen isminden de biraz anlaşılacağı üzere değişkenleri çağırmak için, Setter'ları ise set yani belirlemek/ayarlamak anlamında, değişkenler üzerinde yeni atamalar veya değişikler yapabilmek için kullanıyoruz gibi düşünebilirsiniz. Bİr örnek üzerinden gösterecek olursak; Ders13_Restoran adında bir class oluşturup String türünden restoranIsim ve restoranAdres ile double türünden restoranPuan adında üç değişken oluşturuyoruz.
public class Ders13_Restoran { String restoranIsim; String restoranAdres; double restoranPuan;
Hemen ardından öğrendiğimiz şekilde constructor oluşturuyoruz. Burada yeni birşey deneyip iki adet constructor oluşturacağız. Aynı isimde bir çok constructor oluşturabiliriz ve program bize hata vermeyecektir. İkinci constructor içerisinde bir değişkene atama yapmayacağız. Burada amaç size illa her değişkene atama yapmak zorunda olmadığımız göstermektir. Bu durumda eclipse bize hata vermeyecektir. Mesela düşünün ki bir restorana ilk kez gittiniz ya da sipariş verdiniz. Restorana hiç puan vermemiş olabilirsiniz ya da mesela adresini bilmiyor olabilirsiniz. Yani bütün verileri bilmiyor olabiliriz. O nedenle bir ya da iki alanı boş bırakmamaız gerekebilir. Bu gibi durumlarda değişken için illa bir atama yapma zorunluluğumuz olmaz. Şimdi constructor'larımızı oluşturalım.
public Ders13_Restoran (String atama1, String atama2, double atama3) { this.restoranIsim = atama1; this.restoranAdres = atama2; this.restoranPuan = atama3; } public Ders13_Restoran (String atama1, String atama2) { this.restoranIsim = atama1; this.restoranAdres = atama2; }
Constructor oluşturduktan sonra konumuz olan Getter ve Setter oluşturma kısmına geliyoruz. Getter ve Setter ilerisi için çok önemlidir. Her java Class'ında kullanma ihtimalimiz olabilir. Herhangi bir class içerisindeki objelere ulaşmamızı sağlayan ve onlar üzerinde işlem yapmamızı sağlayabilecek metodlardır. Ders14_Restoran class içerisinde Getter ve Setter metodlarımızı oluşturmaya başlıyoruz. Burada dikkat etmemiz gereken en önemli şey her zaman olduğu gibi hangi değişken için Getter ve Setter oluşturuyorsak o değişkenin türünü yazmamız gerekiyor. Yoksa zaten hata alırız (Type not match gibi). (Değişken String ise Getter ve Setter'da String, int ise int gibi). Getter ve Setter'ların her değişken için yazılması gerekmektedir.
public String getRestoranIsim() { return restoranIsim; } public void setRestoranIsim(String restoranIsim) { this.restoranIsim = restoranIsim; } public String getRestoranAdres() { return restoranAdres; } public void setRestoranAdres(String restoranAdres) { this.restoranAdres = restoranAdres; } public double getRestoranPuan() { return restoranPuan; } public void setRestoranPuan(double restoranPuan) { this.restoranPuan = restoranPuan; }
toString metodunu class'ın içerisindeki tüm verilerin ekrana veya konsola yazdırılması için bir kısayol gibi düşünebilirsiniz. İngilizce'den çevirdiğinizde de toString yazıya dök gibi bir anlama gelmektedir.
public String toString() { return this.getRestoranIsim() + “ ” + this.getRestoranAdres() + “ ” + this.getRestoranPuan(); } }
Tüm yaptığımız bu işlemlerin ne işe yaradıklarını görmek için Ders13_Ana adında bir class oluşturup, main metodumuzu yazıyoruz. Sonrasında bu class içerisinde, üzerinde işlem yapabilmek için 2 adet restoran bilgisi oluşturuyoruz.
public class Ders13_Ana { public static void main(String[] args) { Ders13_Restoran restoran1 = new Ders13_Restoran(“McDonalds”, “Mecidiyeköy”, 7.2); Ders13_Restoran restoran1 = new Ders13_Restoran(“Burger King”, “Şişli”);
1. restoranın adtesini görmek için restoran1.getAdres diyoruz. Bu bize restoranın adresini birinci restoranın verir. Setter'ın ne yaptığını görmek istersek restoran1.setAdres diyerek yeni bir adres yazıyoruz. Çıktısına baktığımızda önce ilk yazdığımız adresi görüyoruz. Sonrasında ise Set ile belirttiğimiz yeni adresi görüyoruz.
System.out.println(restoran1.getRestoranAdres()); restoran1.setRestoranAdres(“Levent”); System.out.println(restoran1.getRestoranAdres()); System.out.println(restoran1.toString()); System.out.println(restoran2.toString()); } }TOPLU DERS KODLARI VE KONU ÖZETİ
Ders13_Restoran.java
public class Ders13_Restoran { String restoranIsim; String restoranAdres; double restoranPuan; public Ders13_Restoran (String atama1, String atama2, double atama3) { this.restoranIsim = atama1; this.restoranAdres = atama2; this.restoranPuan = atama3; } public Ders13_Restoran (String atama1, String atama2) { this.restoranIsim = atama1; this.restoranAdres = atama2; } // Getter ve Setter'larımızı burada tanımlıyoruz her değişken için. Dikkat edilmesi gereken yukarıda tanımlanan değişken türlerinin burada da doğru yazılmış olmasıdır public String getRestoranIsim() { return restoranIsim; } public void setRestoranIsim(String restoranIsim) { this.restoranIsim = restoranIsim; } public String getRestoranAdres() { return restoranAdres; } public void setRestoranAdres(String restoranAdres) { this.restoranAdres = restoranAdres; } public double getRestoranPuan() { return restoranPuan; } public void setRestoranPuan(double restoranPuan) { this.restoranPuan = restoranPuan; } // toString metodu ile class'ın içerisindeki tüm verilerin ekrana ya da konsola yazdırmak için kullanılan bir kısayol gibi düşünülebilir public String toString() { return this.getRestoranIsim() + “ ” + this.getRestoranAdres() + “ ” + this.getRestoranPuan(); } }
Ders13_Ana.java
public class Ders13_Ana { public static void main(String[] args) { // 2 adet restoran tanımlıyoruz, görüldüğü üzere tüm değişkenleri tanımlamasak da hata almıyoruz Ders13_Restoran restoran1 = new Ders13_Restoran(“McDonalds”, “Mecidiyeköy”, 7.2); Ders13_Restoran restoran1 = new Ders13_Restoran(“Burger King”, “Şişli”); // GET kullanarak yukarıda belirttiğimiz 1. restoranımızın adresini konsola yazdırıyoruz System.out.println(restoran1.getRestoranAdres()); // SET kullanarak yukarıda belirttiğimiz 1. restoranımızın adresinde değişiklik yapıyoruz restoran1.setRestoranAdres(“Levent”); // SET ile değişiklik yaptığımız restoran adresini System.out.println ile konsola yazdırıyoruz System.out.println(restoran1.getRestoranAdres()); // toString kullanarak 1. ve 2. restoranımızın tüm bilgilerini konsola yazdırıyoruz. 2. Restoranda puan bilgisi olmadığı için puan 0.0 çıkar System.out.println(restoran1.toString()); System.out.println(restoran2.toString()); } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ
Ders13_Restoran.java

Ders13_Ana.java

Enum yani Enumeration (döküm) metodunu elimizde belirli sayıda bilgi ya da veri olduğunda kullanıyoruz. Bu sayede uzun uzadıya tanımlamalardan ve ekstra kod kullanımından kurtulmuş oluyoruz. Her zamanki gibi konuyu daha iyi kavrayabilmemiz için Ders14_Dersler adında bir class oluşturuyoruz. Ama bu sefer pubic class yerine pubic enum yazdığımıza dikkat ediyoruz.
public enum Ders14_Dersler {
Bir sonraki aşamada enum için ders adı, ders saati ve dersin ait olduğu bölüm bilgilerini içeren enum'larımızı tanımlıyoruz. Birinci kısım dersin adı, ikinci kısım dersin haftada kaç saat olduğunu ve üçüncü kısım da dersin hangi bölüme ait olduğunu temsil ediyor gibi düşünebilirsiniz. Her enum tanımlamamızda sonuna noktalı virgül değil, virgül koyduğumuza dikkat etmemiz gerekiyor. Sadece listenin sonuna noktalı virgül koyuyoruz.
edebiyat (3, “Sosyal”), coğrafya (5, “Sosyal”), biyoloji (6, “Fen”), matematik (4, “Matematik”), geometri (7, “Matematik”);
enum tanımlamamız bittikten sonra enum içerisindeki değişkenlerimize karşılık gelen değişkenlerimizi tanımlıyoruz. Yani int dersSaati ve String dersBolum diye iki degisken tanımlıyoruz.
int dersSaati; String dersBolum;
Yine her zaman yaptığımız gibi constructor'ımızı oluşturup atamalarımızı yapıyoruz.
Ders14_Dersler (int atama1, String atama2) { this.dersSaati = atama1; this.dersBolum = atama2; }
Constructor oluşturduktan sonra geçen derste öğrendiğimiz üzere Getter ve Setter metodlarımızı oluşturuyoruz.
public int getDersSaati() { return this.dersSaati; } public String getDersBolum() { return this.dersBolum; }
Son olarak da toString metodumuzu oluşturuyoruz. this.name ile dersin adını belirliyoruz.
public String toStirng() { return this.name() + “\t” + this.getDersSaati() + “\t” + this.getDersBolum(); } }
Sonrasında Ders14_Ana adında bir class oluşturup, main metodumuzu yazıyoruz. System.out.println ile "Dersler ve detayları aşağıda bilgilerinize sunulmuştur: " şeklinde bir açıklama alanı ekliyoruz. Bunu daha sonra da yapabilirz ama oluşturduğumuz enum öğelerini kullanabilmek için java kütüphanesinden EnumSet'i import etmemiz gerekiyor. Bunu class'ın ilk satırında gerçekleştiriyoruz.
import java.Util.EnumSet; public class Der14_Ana { System.out.println("Dersler ve detayları aşağıda bilgilerinize sunulmuştur: ");
Bir for döngüsü oluşturacağız. Ama bu bizim bildiğimiz for döngülerinden biraz farklı. Birden fazla öğeyi aynı anda tutan yapılarda öğelerin listesini çıkarabilmek için farklı şekilde yazıyoruz for döngüsünü. Çağıracağımız şey Dersler bu nedenle derslistesi: Ders14_Dersler.values() diyerek for döngüsünün tüm elemanları dolaşmasını sağlıyoruz. Son olarak da System.out.println kullanarak bu dersleri toString metodu ile bize listelemesini söylüyoruz.
for (Ders14_Dersler derslistesi: Ders14_Dersler.values()) { System.out.println(derslistesi.toString()); } System.out.println(" ");
Sonrasında Dersler class'ından sadece istediğimiz bilgileri çekebilmek için java kütühanesinden import java.util.EnumSet; ile import ettiğimiz paketi kullanıyor olacağız. Aynı şeyi for döngüsüyle de yapabilirdik ama EnumSet ile bunu daha kolay gerçekleştirebiliriz.
System.out.println("Seçtiğiniz derslerin ders saatleri ve bölümleri aşağıdaki gibidir: "); for (Ders14_Dersler derslistesi: EnumSet.range(Ders14_Dersler.biyoloji, Ders14_Dersler.geometri)) { System.out.println(derslistesi.toString()); } }TOPLU DERS KODLARI VE KONU ÖZETİ
Ders14_Dersler.java
// public class yerine enum kullanıyoruz public enum Ders14_Dersler { // enum'ları aşağıdaki şekilde tanımlayıp her enum arasında veya sonunda noktalı virgül değil sadece virgül kullanıyoruz edebiyat (3, “Sosyal”), coğrafya (5, “Sosyal”), biyoloji (6, “Fen”), matematik (4, “Matematik”), geometri (7, “Matematik”); // enum tanımları bittikten sonra değişkenlerimizi türe göre tanımlıyoruz int dersSaati; String dersBolum; // enum için atama işlemlerini yapıyoruz Ders14_Dersler (int atama1, String atama2) { this.dersSaati = atama1; this.dersBolum = atama2; } // değişkenlerimiz için GETTER metodlarını oluşturuyoruz public int getDersSaati() { return this.dersSaati; } public String getDersBolum() { return this.dersBolum; } // değişkenlerimizi kullanarak toString metodumuzu yazıyoruz. Ayrıca okunaklı olması için this.name ve "\t" yani tab ekliyoruz aralara public String toStirng() { return this.name() + “\t” + this.getDersSaati() + “\t” + this.getDersBolum(); } }
Ders14_Ana.java
// Java kütüphanesinden EnumSet'i import ediyoruz import java.Util.EnumSet; public class Der14_Ana { // Ekrana kullanıcı için bir bilgilendirme yazısı yazıyoruz System.out.println("Dersler ve detayları aşağıda bilgilerinize sunulmuştur: "); // burada kullandığımız for ile tüm dersler arasından istediğimiz sonuçları yazdırmasını isteyeceğiz. Normal for döngüsünden biraz farklı for (Ders14_Dersler derslistesi: Ders14_Dersler.values()) { // toString kullanarak tüm dersleri bize listele diyoruz System.out.println(derslistesi.toString()); } System.out.println(" "); // enum'da EnumSet.range kullanarak belirli dersleri de listeleyebiliyoruz System.out.println("Seçtiğiniz derslerin ders saatleri ve bölümleri aşağıdaki gibidir: "); for (Ders14_Dersler derslistesi: EnumSet.range(Ders14_Dersler.biyoloji, Ders14_Dersler.geometri)) { System.out.println(derslistesi.toString()); } }
DERSLE İLGİLİ EKRAN GÖRÜNTÜSÜ
Ders14_Dersler.java

Ders14_Ana.java
