Turgay Can adlı üyeden alıntı

C# object oriented(nesne yönelimli) bir dildir. Object oriented'ın temelini öğrenmeden, direkt kod yazmaya başlarsan. Bir süre sonra yazdığın kod, çöp koda dönüşür.

Tavsiyem öncelikle object oriented prensiplerini öğrenmen yönündedir. Inheritance(kalıtım), Polymorphism(Çok şekillik), Encapsulation(kapsülleme) ve encapsulation altındaki 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.

//Yazacağım kodlar java kodudur, c#'ada çok benzer maksat, düşünme ve aktarım gücüne katkıda bulunmak

Kalem sınıfımız.

public class Kalem(){

private String grafit;
private String ahsap;

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

public String getGrafit(){
return grafit;
}

public void setGrafit(String grafit){
this. grafit = grafit;
}

public String getAhsap(){
return ahsap;
}

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


}


Şuanda kalem sınıfımızı oluşturdur. 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.

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


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

public class Kalem(){

private String grafit;
private String ahsap;

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

public String getGrafit(){
return grafit;
}

public void setGrafit(String grafit){
this. grafit = 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.

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 bir obje yaratmış oluyorsunuz. Bi 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();
}


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.


Programlamada esas olan bu kavramları sindirmektir. Yazıyı al, ona, çevir, çarp, böl çıkar işin keyifli tarafıdır ;)




}

Ek Olarak:

Regex'i ona göre düzenlersin. Benim yazdığım sadece sayılar içindi mesela ;

Sen "1234a" yazarsan Regex sana false değer dönecektir. "1234" yazarsan true değer dönecektir.

http://www.regular-expressions.info/dotnet.html

Burada .net framework'üne ait, regex tanımlamaları mevcut lakin ingilizce bu meslekte şart bilgin olsun. Olmadı translatorlar kullan. Bilmen avantajınadır ;)


Öncelikle teşekkür ederim hocam uğraşıp bu kadar anlattığınız için. Evet tabi dil farklı olduğundan biraz farklı geldi yinede anladım hocam söylediğim gibi deneyerek öğrenmek , kurcalayarak öğrenmek ya da sizler gibi bilen birilerine danışarak öğrenmek çok mantıklı geliyor . Özellikle açıp araştırmak yeni bir şeyler yazabildiğini keşfetmek en kötüsünden 2 saattir aradığım bu yazı mı sayı mı kodlarını yazabildiğini , işleyişini anlamak insanı mutlu ediyor :)

Ve dediğiniz gibi biraz ingilizce ve mantıkla aslında söylendiği gibi "DİL" yani bunuda akıcı konuşabiliyorsunuz :)

Ek Olarak:

Turgay Can adlı üyeden alıntı


Ek Olarak:

Regex'i ona göre düzenlersin. Benim yazdığım sadece sayılar içindi mesela ;

Sen "1234a" yazarsan Regex sana false değer dönecektir. "1234" yazarsan true değer dönecektir.

http://www.regular-expressions.info/dotnet.html

Burada .net framework'üne ait, regex tanımlamaları mevcut lakin ingilizce bu meslekte şart bilgin olsun. Olmadı translatorlar kullan. Bilmen avantajınadır ;)


Hocam bugun işlemiştik şimdi hatırladım ama zaten "asdadad12312" bir string grubu olmuş olmuyor mu yanı bunuda string olarak değerlendirmeliyiz ? Yani en azından hocamızın bıze soyledıgı buydu. Çünkü öbür türlü çok ileri gitmiş oluyor çünkü bu paylaştığınız kodların hıcbırını zaten bıze ogretmemişti ben + olarak ogrenıp anlatımlarını arkadaslarıma yapmaya calısıyorum :)