IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  digitalpanel

Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 29 Mart 2014, 01:03   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Temel object oriented programlama (hayatın içinden örnek ile)




Programlamaya yeni başlamış genç bir arkadaşımız farklı bir forumda ufak, tefek sorular sorup duruyordu. Yönlendirme ve bakış açısı kazanması adına programlamın temelinden bir örnek yazdıydım. Burada bu tür soru soran çok arkadaşımız var ve varolacaktırda. Onların program yazmaya bakış açısına katkıda bulunması temennisi ile buradada paylaşayım.

----------------

Amaç : Düşünme ve aktarım gücüne katkıda bulunmak

Tavsiyem öncelikle object oriented prensiplerini öğrenmeniz yönündedir. Inheritance(kalıtım), Polymorphism(Çok şekillik), Encapsulation(kapsülleme) ve Encapsulation altındaki access modifier(erişim denetleyici anahtarları) public, private, protected gibi terimlere aşina olmak gerek.

Sonra fonksiyonlar üzerine kod yazmayı ve kodu sınıflara ayırmaya başladığınızda bu terimlerin mükemmel faydasını görürsünüz.

Gerçek hayatta düşündüğünüz her nesneyi, programlama diline çevirirken yazdığınız kod hem okunabilir hemde oldukça anlamlı olacaktır.

Basit bir örnek vereyim;

Kalem bizim nesnemiz olsun.

Nesne = Class(Sınıf) yani Kalem diye bir sınıf yaratalım.

Kalem'i(kurşun kalem) oluşturan özellikler nelerdir. grafit (karbonla karıştırılmış kil) ve ahşap.

Kalem ne işe yarar : yazmak için kullanılır.

Kalem sınıfını oluşturalım.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Kalem(){

private 
String grafit;
private 
String ahsap;

public 
Kalem(String grafitString ahsap){
this.grafit grafit;
this.ahsap ahsap;
}

public 
String getGrafit(){
return 
grafit;
}

public 
void setGrafit(String grafit){
thisgrafit grafit;
}

public 
String getAhsap(){
return 
ahsap;
}

public 
void setAhsap(String ahsap){
this.ahsap ahsap;
}




Şuanda kalem sınıfımızı oluşturduk. Geçelim ikinci kısıma ne tür davranış gösterecek kalemimiz. yazmak eylemini gerçekleştirecek.

yazmak Kalem sınıfı için bir metod(fonksiyon)'dur.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public void yazmak(){
System.out.println("Kalem yazı yazıyor..");


Şimdi metodumuzu sınıfımızın içine ekleyelim.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Kalem(){

private 
String grafit;
private 
String ahsap;

public 
Kalem(String grafitString ahsap){
this.grafit grafit;
this.ahsap ahsap;
}

public 
String getGrafit(){
return 
grafit;
}

public 
void setGrafit(String grafit){
thisgrafit grafit;
}

public 
String getAhsap(){
return 
ahsap;
}

public 
void setAhsap(String ahsap){
this.ahsap ahsap;
}

public 
void yazmak(){
System.out.println("Kalem yazı yazıyor..");
}



Kodumuzu çalıştırmak için bir main sınıf yazalım.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class TestApp(){

public static 
main void (String[] args){
//new operatörü varolan cansız bir sınıfı, canlı hale getirir. Programlamada buna instance denir. Yani yeni bir obje yaratmış oluyorsunuz. Biz aşağıdaki kodda Kalem sınıfını yaratmış olduk.
//Kalem sınıfının constructor'ı iki parametre alıyor String, o yüzden constructor'ına iki String değer verdim
 
Kalem kalem = new Kalem("grafit maddesi""ahsap maddesi");
//yazmak metodunu çağırarak, kalem sınıfının yazma becerisini kullandım. 
kalem.yazmak();
//Metod çağrıldığında konsol ekranına  -> "Kalem yazı yazıyor.." yazacaktır.
}  


Olayı dahada açarsak ;

Mesela senin dolma kalemin, kurşun kalemin ve tükenmez kalemin olsun. Sen bu kalemler için bir yazılım yapcaksın. buradada object oriented prensiplerinden kalıtım ve çok şekillikten yararlanman gerekecek. Onuda daha müsait bir zaman diliminde yazarım.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet
Alt 16 Aralık 2014, 00:12   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Temel object oriented programlama (hayatın içinden örnek ile)




Ara ara uğruyordum, eski bir konuma göz atayım dedim. Sonra yazarım diyip yazmamışım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Basit bir şekilde hızlıca yazayım.

Dolma kalem, kurşun kalem filan demişim aslında interitance(kalıtıma) prensibinden bahsetmişim. Yukarıdaki örneğe sadık kalarak, bu prensibide implemente edelim.


Kalem bizin ana sınıfımız olsun, bu sınıf 2 adet özellik ve bir adet fonksiyon ile yazmak yeteneği vardı. Şimdi bunu basit bir yazılım dizaynı ile daha seksi hale sokalım.


Tüm kalemlerin ortak özelliği yazmaktır. O zaman Kalem 'den türeyen tüm alt sınıflar bu metodu implement etmek zorundadır. Hopsss burada akla ilk gelen şey interface(arayüz) sınıflarıdır. Java'da arayüz sınıflarını implement eden tüm alt sınıflar bu metodu gerçekleştirmek zorundadır. Bu interface' sınıfların bir özelliğidir. Mutlak interface'den forumda bir konuda bahsetmişimdir daha detaylı bilgiyi konuyu bulup, okumanızda fayda var.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public interface IKalem{
  public 
void yazmak();



PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class Kalem {

private 
String maddeTipi;
private 
String kalemUcuTipi;

public 
Kalem(String maddeTipiString kalemUcuTipi){
this.maddeTipi maddeTipi;
this.kalemUcuTipi kalemUcuTipi;
}

//getter, setter



PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class DolmaKalem extends Kalem implements IKalem{

@
Override
public void yazmak(){
System.out.println("Dolma kalem yazıyor..");
}




PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class KursunKalem extends Kalem implements IKalem{

@
Override
public void yazmak(){
System.out.println("Kursun kalem yazıyor..");
}



Uygulamayı test edelim.. Direkt yazdığımdan test edemedim, hatalı yazım olabilir, düzeltirseniz sevinirim.
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
public class TestApp(){

public static 
main void (String[] args){

 
DolmaKalem dolmaKalem = new Kalem("demir""mürekkep");
 
kalemdolmaKalem.yazmak();
//Metod çağrıldığında konsol ekranına  -> "Dolma kalem yazıyor.." yazacaktır.

KursunKalem kursunKalem = new Kalem("ahsap""grafit");
 
kursunKalem.yazmak();
//Metod çağrıldığında konsol ekranına  -> "Kursun kalem yazıyor.." yazacaktır.

}  



Yukarıda arayüz sınıfının basit bir kullanımı, inheritance(kalıtımın) 'ın basit bir kullanımı ve @Override metod kullanımını basitçe implement etmiş olduk. Sorunuz olursa, başlık altında alıntı yaparak sormanızda fayda var. Ara ara giriyorum, uyarı gelirse anca bakarım.

Sevgilerle,

Turgay Can

 
Alıntı ile Cevapla

Cevapla

Etiketler
hayatın, icinden, ile, object, oriented, programlama, temel, örnek


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C# OOP - Object Oriented Programing (Nesne Yönelimli Programlama) OzGuR C# 0 06 Nisan 2012 01:22
OOP (Object Oriented Programming) 13 Örnek Sunay C# 0 23 Nisan 2010 20:05
AdoNet OOP (Object Oriented Programming) Sunay C# 0 23 Nisan 2010 19:42