Bir çok dili temel ve orta seviyede biliyorum. Java da temel bildiğim dillerden bir tanesi. Java'yı yıllardır bilmeme rağmen OOP konusunda takılıp/kendimi çok geliştirmeden kaldım. Bu blog'da yeni öğrendiğim şeyleri kodları ile beraber sizlerle paylaşacağım.
Bu blog'a ilk olarak OOP mantığını azcık anlatarak başlayacağım. İnternet tanımından kaçınıp kendi tanımım ile anlatacağım. Eğer bu blog'u okuyan birileri var ise bu tanımlara bir de internetten bakmalarını öneriyorum.
OOP "nesne yönelimli program" anlamına gelir uzun yazımı ise "object oriented programming" dir. OOP temelde bir sınıf oluşturup o sınıfa bağlı nesneler üretebilmenizi ve o sınıfa ait fonksiyon ve değişkenleri kullanabilmenizi sağlar. Bu kavramı öğrenebilmek için Java da fonksiyonlara kadar temel bilginizin olması gerekmektedir.
Java OOP'de bilmemiz gereken kavramlar class(sınıf) ve nesne(obje)dir. OOP temelde bu iki kavramdan oluşur. Örnek vermek gerekirse;
Java:
class insan{
int boy;
int kilo;
String isim;
}
public class Furkaninkosesi { //java programlarken içinde olduğunuz ana sınıf.
}
Yukarıdaki örnekte bir insan sınıfı tanımladım ve insana ait olan bazı değişkenler oluşturdum. Şu anda java da class(sınıf) oluştu. Bu sınıfa Ali, Veli, Mehmet, Ayşe.... gibi insanların tümü dahil olabilir fakat herhangi bir nesne şu anda bu sınıfa bağlı değil.
Bir insanı yani objeyi sınıfa bağlamak için java'da "new" kelimesini kullanırız. "new" ile tanımlanan class için RAM'de bir alan açılır. O nesneyi siz artık bir değişkenmiş gibi kullanabilirsiniz. Kullanımı şu şekildedir;
<Sınıf adı> <Nesne adı> = new <Sınıf adı();>
Örnek kullanım:
Java:
class insan{
int boy;
int kilo;
String isim;
}
public class Furkaninkosesi {
public static void main(String[] args) {
insan ali = new insan(); //"insan" sınıfına "ali" isimli birini bağladık.
ali.boy = 175; //"insan" sınıfından oluşturduğumuz "ali" nesnesine boy değişkeni girdik.
System.out.println(ali.boy);
}
}
Program çıktı olarak
175
verdi. Bu işlemi diğer değişkenler için de hatta fonksiyonlar için de uygulayabiliriz. Örnek:
Java:
class insan{
int boy;
int kilo;
String isim;
int boyogrenme() { //boyu geri döndüren fonksiyon oluşturduk.
return boy;
}
}
public class Furkaninkosesi {
public static void main(String[] args) {
insan ali = new insan();
ali.boy = 175;
System.out.println(ali.boyogrenme()); //boyogrenme fonksiyonunu çağırdık.
}
}
175
verdi.OOP'de bir class(sınıf)'a birden fazla nesne bağlayabilirsiniz. Bu oluşan nesneler birbirinden bağımsızdır. OOP'nin genel kullanış amaçlarından biridir. Birden fazla nesne oluşturup aynı değişkenleri birbirinden bağımsız bir şekilde yönetebilirsiniz. Örnek:
Java:
class insan{
int boy;
int kilo;
String isim;
}
public class Furkaninkosesi {
public static void main(String[] args) {
insan ali = new insan();
insan fatma = new insan();
ali.boy = 175;
fatma.boy = 170;
System.out.println(ali.boy);
System.out.println(fatma.boy);
}
}
Çıktı olarak sıra ile
175
170
verdi. RAM'de ikisi için de bağımsız ayrı bir alan oluştu ve değerler oraya kaydedildi.Ek bir bilgi de vereyim C dillerinden birini temel düzeyde biliyorsanız, OOP yapısı "Şadi Evren SEKER" hocamın da dediği gibi C dillerindeki pointer yapısına benzer.
OOP girişi bu günlük bu kadar... Bundan sonraki konular için araştırma yapacağım ve öğrendiklerimi sizlere aktaracağım. Teşekkür ederim.