Kategoriler
Java

Java Nesne Yönelimli Programlama Ders Notları -1

apuntes_de_java-logo

Diğer dersleri gördünüz mü? https://selimkaratas.com.tr/java-se-ders-notlari

Nesne Yönelimli Programlama:

Nesne nedir? Sınıf nedir? Kavramlarına yakından bakarak nesne yönelimli programlama giriş yapalım.

Nesneler sınıflardan türetilir. Sınıf soyut bir kavramdır ancak nesne somuttur. Bir sınıftan nesne oluşturma işlemine instance denir.  Bir sınıfın hafıza da yer alması için instance edilmesi gerekir. Oluşturulan her nesne kendi için de bağımsızdır. Nesnelerin diğer nesnelerle olan ilişikisi mesaj gönderme- alma gibi işlemlerdir. Buradan anlamamız gereken her nesne verilerini kendi içerisinde saklar. ( erişime açık vs olabilir )

public class eskisehirDirenis {

Direnisci aliIsmailKorkmaz = new Direnisci () {

aliIsmailKorkmaz.yas=19;
aliIsmailKorkmaz.sehir= "Eskişehir";

}
}

Sınıfların kullanım amacını verileri tek tek değişkenlerde dağınık tutmak yerine  birbiri ile ilişkili verileri bir araya getirmek ve erişimi sağlamaktır. Örneğin bir çalışana ait isim, maaş, departman adı gibi verileri ayrı ayrı değişkenlerde tutmak yerine çalışan adında bir sınıf oluşturup çalışana ait bilgileri bu sınıf içerisinde toplayabiliriz.  Ve bu sınıfı ilgili sınıflarla ilişkilendirerek performans artışı sağlanabilir.

New Operatörü:

Bu operator sınıf adı ile birlikte kullanılır ve bellekte sınıfa ait bir nesne oluşturur.  Yukarıda ki örnekte Direnicsi sınıfına ait aliIsmailKorkmaz adından bir nesne oluşması için yer sağlamış oldu.  Eğer nesneler new operatörü ile oluşturulmazsa ‘null’ değerini alırlar. Böyle durumlarda nesneye ulaşmak istediğimizde Java NullPointerException hatasını verir.

Nokta Operatörü:

Nesneleri new operatörü ile oluşturduktan sonra nesnelere dışarıdan erişim sağlamak amacıyla kullanırız.

aliIsmailKorkmaz.yas örneğinde olduğu gibi oluşturulan nesnenin özelliğini çağırmış oluruz.

Garbage Colletion:

Kullanılmayan nesnelerin otomatik olarak bellekten silinmesi sürecidir. Böylece JVM bellek yönetim sürecini eline almış olur.  Bu sayede bellekte yer açılarak performans artışı sağlanır.

Direnisci aliIsmailKorkmaz = new Direnisci;
Direnisci ethemSarisuluk = new Direnisci;
aliIsmailKorkmaz = ethemSarisuluk;

yaptığımızda artık ethemSarisuluk adlı nesnenin bellekte kalmasına gerek olmadığından silinir.

Constructors:

Yapılandırıcılara kurucu da denilmektedir. Farklı kaynaklardan faydalanırken kavramlara uzak kalmamak açısından bu tabirlere kulak aşinalığı sağlamakta fayda var.

Yapılandırıcılar sınıf ismi ile aynı ismi taşıyan ancak değer döndürmeyen metotlardır. 

Nesnelerin başlangıç durumları için gerekli işlemleri yaptıklarından olmazsa olmazlardandır. Herhangi bir nesne oluşturulduğu anca yapılandırıcı metot çağrılmaktadır.

Kopya Yapılandırıcı Metot:  Bir yapılandırıcı metot bağlı bulunduğu sınıftan oluşturulan bir nesneyi parametre olarak alırsa ve nesnenin değişken değerlerini sınıfa ait tüm değişkenlere atayabiliyorsa kopya yapılandırıcıdır.

Tekrarlardan kaçınmak için yapılandırıcı metot içinde sabit değerlerimizi ve sabit özelliklerimizi belirtebiliriz.

Bir örnek üzerinde bakalım.

Bir proje açıyoruz. Sınıf adına Main diyelim.  Daha sonra bir class daha oluşturup ismini Ucgen yapalım.

Ucgen classına aşağıdaki kodları ekliyoruz.

public class Ucgen {

public double kenar1;
public double kenar2;
public double kenar3;

// x,y,z kopya yapılandırıcılarımız

public Ucgen(double x, double y, double z){

kenar1 = x;
kenar2 = y;
kenar3 = z;   }

//sınıfın metodu
public double UcgenCevresi(){

return kenar1+kenar2+kenar3;
}

}

Daha sonra Main classına ise şunları ekleyelim.

public class Main {
public static void main ( String [] args) {

// nesneleri oluşturuyoruz
 Ucgen cevre = new Ucgen(2,3,5);
 Ucgen cevre2= new Ucgen(7,9,12);

System.out.println("1. Üçgenin Çevresi " + cevre.UcgenCevresi());

 System.out.println("2. Üçgenin Çevresi " + cevre2.UcgenCevresi());
 }
}

yapılandırıcı çıktı

“Java Nesne Yönelimli Programlama Ders Notları -1” için 5 yanıt

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir