sinif ve interface
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 52
- Kayıt: 03 May 2005 06:16
sinif ve interface
Merhabalar.
Benim iki sinifim var.
Tozellik=class
renk:tcolor;
function miktar:integer;
function doku:string;
end;
Taraba=class
function ozellgi:Tozellik;
end;
izninizle sunu sormak istiyorum.
Bir degisken tanimladim.
var araba:taraba;
Derleme yaparken
araba.ozelligi.renk
araba.ozellgi.miktar arabanin sartlarina uyuyor.
fakat doku uygun degil.Buna kisitlama getiremez miyiz?
Yani araba.ozelligi.doku gorulmeyecek....Yoksa bunun icin ayri bir sinif acmamiz mi gerekiyor?Umarim anlatabilmisimdir....
Diger sorum ise interface olayini anlamak icin kisa ise bir ornek yazabilirmisiniz? Tesekkur ederim.
iki clas tanımla en basiti bu olur.
interface ise bu unitin dışardan kullanılacak method procedure fonksiyon değişken vs herşeyin gösteren bölümdür. implemantation ise karşılık kodların yazıldığı yerdir.
interface ise bu unitin dışardan kullanılacak method procedure fonksiyon değişken vs herşeyin gösteren bölümdür. implemantation ise karşılık kodların yazıldığı yerdir.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
protected ve private özellikler diğer unitlerden görünemezler. Mesela TEdit bileşeninin kodlarına bakarsanız TCustomEdit bileşeninden türemiştir ve hiç kod yoktur. Sadece protected özelliklerin birçoğunu published olarak tekrar tanımlamış ve dışarıdan görünebilir yapmıştır. Ek olarak başka da hiç kod yoktur.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
yapilmak istenen cok net degil.
TAraba sinifinda ve diger benzer siniflarda Ozelligi alanin tipinin illa TOzellik mi olmasi gerekiyor ? Eger gerekmiyorsa TAraba sinifina ve diger benzer siniflara uygun degisik TOzellik sinifi olusturman lazim.
interfaceler ile de yine ayni sekilde ozellikleri uygun guruplara ayirip bu ozelligi iceren siniflara bunlari uygulaman lazim.
mesela TOzellik, TArabaOzellik, TBenzerOzellik siniflarini birer interface olarak dusunursek bu ozellikleri diledigin kadar siniflara uygulayabilirsin.
mesela TAraba soyle olabilir.
ya da daha kompleks bir sinif icin butun ozellikleri icermesini saglayabilirsin.
vs.
TAraba sinifinda ve diger benzer siniflarda Ozelligi alanin tipinin illa TOzellik mi olmasi gerekiyor ? Eger gerekmiyorsa TAraba sinifina ve diger benzer siniflara uygun degisik TOzellik sinifi olusturman lazim.
Kod: Tümünü seç
TOzellik = class
Renk:TColor
end;
TArabaOzellik = Class(TOzellik)
Miktar:Integer;
end;
TBenzerOzellik = Class(TOzellik)
Doku:String
end;
TAraba = Class
Ozelligi:TArabaOzellik
end;
TBenzerSinif = Class
Ozelligi:TBenzerOzellik
end;
mesela TOzellik, TArabaOzellik, TBenzerOzellik siniflarini birer interface olarak dusunursek bu ozellikleri diledigin kadar siniflara uygulayabilirsin.
mesela TAraba soyle olabilir.
Kod: Tümünü seç
TAraba = Class(TInterfacedObject, IArabaOzellik)
Kod: Tümünü seç
TKompleksNesne = Class(TInterfacedObject, IArabaOzellik,IBenzerOzellik)