2 Nisan 2011 Cumartesi

Cast, downcast orneği ile nesne yönelimli programlamada tip çevirimi

“Cast” ingilizce bir kelimedir. Programladakı manası “bir kalıba dökmek” anlamından geliyor. İleride neyi ne kalıbına dökdüğümüzü göreceksin.
Türkçe karşılığı “çevirim” diye geçiyor.

Cast, nesneyi bir tipden (classtan) diğer tipe çevirme işlemidir.

Yazılışı böyledir:
(EldeEtmekİstediğimTip) EldeOlanBaşkaTipdenObject;

Daha geniş kod:
BaşkaTip EldeOlanBaşkaTipdenObject = new BaşkaTip ();
EldeEtmekİstediğimTip İstediğimObject = (EldeEtmekİstediğimTip) EldeOlanBaşkaTipdenObject;

---

Downcast, nesilde alt tipe çevirme işlemi.
- Validin evlad tipine çevrilmesi. (Casting Parent to Child type)
- Superclassın subclassa çevrilmesi.
- class Child extends Parent{}; Child B = (Child) new Parent();

---

Ha, niye “Down”:
Child extends Parent.

Parent ParentA = new Parent();
Child ChildA = new Child();

Parent ParentB = ChildA; // it's ok. You give a child to it's parent.
Child ChildB = ParentA; // bad. XX. Compiler error. Are you missing a cast? You should use downcasting. You cannot give parent to child easily, it's big responsibility.
Child ChildC = (Child) ParentA; // it's ok.

Bu makale Java ve C# için geçerlidir.

1 yorum:

  1. örnekler tamamda nesne dönüşümlerinin amacı ve faydasından da bahsetseymişsiniz iyi olacakmış

    YanıtlaSil