Skip to content

Instantly share code, notes, and snippets.

View muhomerdogu's full-sized avatar
💭
Programmer

OMER DOGU www.omerdogu.com muhomerdogu

💭
Programmer
View GitHub Profile
package Test_5;
public class Test_1 {
public static void main(String[] args) {
/* biz inşaat projesi yapmıyoruz. 3.Katına çıktınız. 3.katta şu denmez bu evleri birazdaha genişletelim diyemeyiz. Çünkü inşaat projesi sabittir. insanların hayatını programlıyoruz.
30 yıl önce de ikametgah belgesi alırdık şimdi de ikametgah belgesi alıyoruz. şimdi ise telefondan belgeleyebiliyoruz. yine aynı ikametgah belgesi buna ek olarak tckimlik numarası da eklenmiştir.
bizim işimiz değişime direnmeyen programlar yazmaktır. Eğer programcı olarak mimarimi başka bir şeyin üzerine kurmuştum diyemezsiniz. biz burada dersek, çuvaldızı kendimize batırmalıyız.
bizim işimiz değişim geldiğinde gelen isteklere cevap verebilmeliyiz. Burada amacımzı kendimizi toparlamak ve kendimizi iyi noktaya getirmektir. vb
bir bankacılık uygulaması düşünün. Bir kredi hesaplama modülü olsun. taırm kredisi, emekli kredisi, çalışan kredisi üretmektedirler.
bir tane kredi türü girelim.
package override;
public class BaseKrediManager {
public double hesapla(double tutar){
return tutar*1.18;
}
//benim için bir operasyon herkes için aynı olsun dersek sabit olsun dersek farklı şekilde uygularız.
//bunu private etmeyiz. başka yerde kullanamayız.
//final ile sabitleriz.
public final double hesapla_geri_donus(double tutar){
package override;
public class OgrenciKrediManager extends BaseKrediManager{
//devlet diyor ki 1.10 kredi uygulanacaktır.
public double hesapla(double tutar){
return tutar*1.10;
}
}
package override;
public class OgretmenKrediManager extends BaseKrediManager {
}
package override;
public class TarimKrediManager extends BaseKrediManager {
}
package override;
public class Test_2 {
//biraz da override yani üzerine yazmak için kullanılan bri yöntemdir.
//yeni özellikleri söylemediğim durumu aktarıyor olacağım.
//recap olacak. terkararlama demosu da olsun.ç
public static void main(String[] args) {
OgretmenKrediManager ogretmenKrediManager=new OgretmenKrediManager();
System.out.println(ogretmenKrediManager.hesapla(200)); //236 olarak karşımıza çıkar. oldukça ilerledik.
//artık prof. tekniklere geçtik. çok iyi anlayacak şekilde yapalım.
package abstractClass;
/*
public class abstract GameCalculator {
//erkek çocuk ve kadınlar için bir hespalama var.
//hemen bu durumda bir Base aklınıza gelecektıir. çünkü heposinde bir hesaplama vardır.
////temel bir yapımız olacaktır.
// public void hesapla(int tip)
// {
//
// System.out.println("Puanınız.:100");
package abstractClass;
public class KidsGameCalculator extends GameCalculator{
}
package abstractClass;
public class ManGameCalculator extends GameCalculator{
}
package abstractClass;
public class Test_1 {
//abstract classlar yapı farkı yoktur. kullanım farkı vardır.
/*
yapısal anlamda aynıdır sınıflarla. Sadece kulanım farkı vardır.
abstract klasları belirli kurallardan geçirerek kullanırız.
bir class bir sınıfı inherit edebilri miras alabilir.
abstract sınıflar sadece başka bir sınıfı inherit edebilir, veya bir sınıf bir abs. sınıf inherit edebilir.
//syntax anlamında kullanım farkı vardır. çok güzel kullanır ve öğrenirler ve gerçek hayatta kullanırken sıkıntılar çıkar.