Delphi Can
OOP : Polymorphism, Inherited Class - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Eğitim (https://www.delphican.com/forumdisplay.php?fid=19)
+---- Forum: Makale (https://www.delphican.com/forumdisplay.php?fid=20)
+---- Konu Başlığı: OOP : Polymorphism, Inherited Class (/showthread.php?tid=5022)

Sayfalar: 1 2


OOP : Polymorphism, Inherited Class - delphi.developer - 29-06-2020

Emeğinize sağlık uğur bey yararlı bir eğitim videosu hazırlamışsınız. Kendi adıma naçizane olarak bu tarz videoların arka fonlarında hareketli müziklerin biraz dikkat dağıtıcı olduğunu söylemek isterim.


OOP : Polymorphism, Inherited Class - frmman - 29-06-2020

Teşekkürler @uparlayan bey.

Videoda konuşma olmadığı için @delphi.developer ses kısılabilir, nede olsa müzik zevkleri herkesin farklı olabiliyor Smile


OOP : Polymorphism, Inherited Class - uparlayan - 29-06-2020

(29-06-2020, Saat: 13:12)delphi.developer Adlı Kullanıcıdan Alıntı: Emeğinize sağlık uğur bey yararlı bir eğitim videosu hazırlamışsınız. Kendi adıma naçizane olarak bu tarz videoların arka fonlarında hareketli müziklerin biraz dikkat dağıtıcı olduğunu söylemek isterim.

Eyvallah Wink 

(29-06-2020, Saat: 18:21)frmman Adlı Kullanıcıdan Alıntı: Teşekkürler @uparlayan  bey.

Videoda konuşma olmadığı için @delphi.developer ses kısılabilir, nede olsa müzik zevkleri herkesin farklı olabiliyor Smile

En çok o konuda zorlanıyorum zaten Smile Müziği beğenmek bi dert, seçmek başka dert, beğendirmek ap ayrı   Wink



Bu arada, bir sonraki video hangi konuda olmalı sizce?


OOP : Polymorphism, Inherited Class - mrmarman - 29-06-2020

Sırası belli üstadım,
  • Sınıfı başka sınıftan inherited aldık, tüm özellikler cepte, 
  • Buna ek özellik ile donatmak, 
  • Ardından da ürünü bir unit altında vcl bileşen formuna evirmek. 
  • Bileşen paletinde görüp gururla bunu formumuza koyup çalıştığını görmek.



Cvp: OOP : Polymorphism, Inherited Class - Hayati - 29-06-2020

(29-06-2020, Saat: 20:23)mrmarman Adlı Kullanıcıdan Alıntı: Sırası belli üstadım,
  • Sınıfı başka sınıftan inherited aldık, tüm özellikler cepte, 
  • Buna ek özellik ile donatmak, 
  • Ardından da ürünü bir unit altında vcl bileşen formuna evirmek. 
  • Bileşen paletinde görüp gururla bunu formumuza koyup çalıştığını görmek.
Abi bence sıralamayı ileri değil geriye doğru yapalım  Smile 
Bilenler zaten biliyor, bilmeyenler için sıfırdan, küçük bir örnek üzerinden constructor, destructor, özellikler, metotlar, kapsülleme, creat-free vs vs neyin ne işe yaradığını, ne zaman kullanacağımızı bilerek öğrensek fena mı olur? 

Elimdeki kitapLAR da dahil delphi de class yapısını baştan sona anlatan ne yazılı ne görsel Türkçe kaynak görmedim. Kendi adıma konuşayım python java c# bir sürü video var ve gayet anlaşılır, ama gel gör ki delphi syntax'ına uyarlamada zorluk çekiyorum şahsen, yoksa soyut manada class ları kavradığımı düşünüyorum (yapı doğru-yanlış olur o ayrı). Ayrıca yükü sadece Uğur hocaya yüklemeyelim Smile Sorulan soruların verilen cevapların hayranlıkla izlendiği bu güzide platforma böyle bir kaynak yakışmaz mı? Bir makale yazmak, ders çekmek istemez miydiniz? (Derler ki: evet cevabını duymak için, öncesinde cevabı evet yan sorular sorun... bakalım işe yarayacak mı Smile ). Kusurum oldu ise affola, saygılar.


OOP : Polymorphism, Inherited Class - mrmarman - 29-06-2020

Ben öncesinin var olduğunu değerlendirdim devamını yazdım.

Fesih beyin kitabının görsel haline namzet olur.


Cvp: OOP : Polymorphism, Inherited Class - Fesih ARSLAN - 30-06-2020

(29-06-2020, Saat: 22:08)mrmarman Adlı Kullanıcıdan Alıntı: Ben öncesinin var olduğunu değerlendirdim devamını yazdım.

Fesih beyin kitabının görsel haline namzet olur.

Kitabın ilk dönemlerinde (taslak aşamasında),  OOP konu başlığı vardı. En temel kavramlardan, @uparlayan üstadın bahsetmiş olduğu kalıtım ve çok biçimlilik kavramları ile multi-platform bileşen hazırlamaya kadar vardı. 
Yazım sürecinde, OOP ile birlikte bir çok konuyu da elemek zorunda kaldım. Bunun sebebi kitap kalınlığını azaltma ve konu bütünlüğününü (Platformlar arası uygulama geliştirme konseptinin dışına çıkmamak) bozmamak idi.


(29-06-2020, Saat: 20:00)uparlayan Adlı Kullanıcıdan Alıntı: Bu arada, bir sonraki video hangi konuda olmalı sizce?  

Eğer OOP ile devam edilecekse, önümüzde bir çok konu başlığı var.
  • private, public, protected,
  • strict private, strict protected
  • property, read, write, default, nodefault, stored, index, reintroduce, setter ve getter kavramı
  • Static, virtual, dynamic, override, overload
  • Interface ve Implementation kavramları
  • Owner, parent, sender, self
  • Type, enum, implicit, explicit, set of, of object, record, record helper, type cast
  • Class, class method, class var, nested class, nested type ve nested const, class helper, class operator
  • Abstract, sealed, persistent
  • Destructor (FreeAndNil olmazsa olmaz), constructor, raise, initialization, finalization
  • Property, methods (function, procedure ve parametrik direktifleri; const, var, out, ref), events, published ve register kavramlarını bilmeden bileşen yazmak oldukça güç.
  • As, is, in

ve object hiyerarşisini de bilmek gerekiyor.

VCL Object Hiyerarşi:

[attachment=1215]

FMX Object Hiyerarşi:

[attachment=1216]

Son olarak bolca, soyutlama (abstraction), kapsülleme (encapsulation), miras alma (inheritance) ve çok biçimlilik (polymorphism) örneklerini içeren uygulamalarla devam etmek.


Cvp: OOP : Polymorphism, Inherited Class - CesuR - 14-05-2021

(28-06-2020, Saat: 18:11)uparlayan Adlı Kullanıcıdan Alıntı: En basit haliyle, bir class, başka bir class gibi nasıl davranabilir? Atalarında tanımlı olan niteliklere torun class nasıl erişir? Class'lar çok biçimli olarak nasıl kullanır? Ata, yavru ve torun class arasındaki ilişki nedir gibi sorulara yanıt arıyoruz...




Emeğinize sağlık çok güzel olmuş. Dikkatimi birşey çekti, Reportmemoryshutdown çoğu videonuzda ekliyorsunuz sebebi nedir ne işe yarar ?


Cvp: OOP : Polymorphism, Inherited Class - uparlayan - 14-05-2021

(14-05-2021, Saat: 02:30)CesuR Adlı Kullanıcıdan Alıntı:
(28-06-2020, Saat: 18:11)uparlayan Adlı Kullanıcıdan Alıntı: En basit haliyle, bir class, başka bir class gibi nasıl davranabilir? Atalarında tanımlı olan niteliklere torun class nasıl erişir? Class'lar çok biçimli olarak nasıl kullanır? Ata, yavru ve torun class arasındaki ilişki nedir gibi sorulara yanıt arıyoruz...




Emeğinize sağlık çok güzel olmuş. Dikkatimi birşey çekti, Reportmemoryshutdown çoğu videonuzda ekliyorsunuz sebebi nedir ne işe yarar ?

Teşekkür ederim,

@CesuR  haklısınız, buna özellikle dikkat ediyorum. OOP ile uğraşınca ister istemez oluşturduğunuz nesnelerin zamanında yok edilmesini de takip etmeniz gerekiyor. 

ReportMemoryLeaksOnShutdown, Delphi için global bir değişkendir. Bellek Yöneticisi bu değişkenin TRUE olması halinde, uygulamanız sonlandığında meydana gelen bellek sızıntılarının ( henüz bellekten atmamış / temizlememiş olduğunuz bellek bloklarının ( ekseriyetle nesnelerinizin ) ) rapor edilmesini sağlar. Bu önemlidir, çünkü programınızda işi bittiği halde, yok edilmemiş olan nesneleriniz bellekte yer kaplamaya devam eder.

Çok yoğun nesne kullanımı ve uygulamanızın günlerce çalışması durumunda programınızın çöktüğünü görebilirsiniz. Bu tür durumlara sebep olmamak için bunlara dikkat etmek gerekir. Bunu problemli bir insanın kafasının şişmesi, günler sonra bunalıma girmesi gibi düşünün.

http://docwiki.embarcadero.com/Libraries/Sydney/en/System.ReportMemoryLeaksOnShutdown


OOP : Polymorphism, Inherited Class - SimaWB - 14-05-2021

Ben de geliştirme aşamasında hep ReportMemoryLeaksOnShutdown := True; yaparım.
Hatta Delphi'de standart olarak yeni proje oluştuğunda neden şöyle değil diye de düşünürüm:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutdown := True;
{$ENDIF}