PDA

Orijinalini görmek için tıklayınız : ASp ile class kullanımı


Subay
28.06.07, 17:32
MaxiASP.com'da bu günden itibaren yeni bir yazıdizisine başlıyoruz. Herkesin aklına takılan, çok ulaşılmaz gelen ve açıkçası korkulan Class yapısını sizlere anlatmaya çalışacağım. Bu yapıyı anlatırken birlikte baştan sona bir class hazırlayacağız ve eminim ki bu class sizlerinde benim işime yaradığı gibi işinize yarayacak.

Class nasıl yazılır sorusuna geçmeden önce biraz class'lardan ve kullanım alanlarından bahsetmek isterim.Şimdi ilk aklımıza gelen soru herhalde, neden class kullanarak script veya program yazmalıyım?
Bilindiği üzeri class nesneye yönelik bir programlama tipidir ve bir çok getirdiği avantajlar vardır. Class kullanarak yazılan scriptler veya programlar , içinde gerçekleşen olaylara daha değişik bakmanızı sağlar.

Ne gibi faydaları olur?

• Nesne kavramı, nesnelerin metod ve özellikler içermeleriyle, artık programcının kendisine yüklemiş olduğu değişkenler, durumlar, fonksiyonlar arasında bulunan ilişkileri, programcıdan alıp nesnenin depolama özelliği sayesinde nesneye yükleyebiliyor. Programcı kendisine yüklemiş olduğu bu sorumluluğu, nesne kavramı ile halledebiliyor.
• Nesneye Yönelik Programlama, kalıtım özelliği sayesinde, yazılan kod başka amaçlar için ek özellikler eklenerek tekrar kullanılabiliyor.
• Nesneye Yönelik Programlama, ile yazılan kod daha okunabilir ve anlaşılabilir oluyor.
• Nesneye Yönelik Programlama ve kalıtım programcıların, kollektif çalışmalarına olanak sunuyor.
• Zor problemleri, sunduğu yaklaşım ile daha kolay ve hızlı çözülebilir hale getiriyor.


Class Nasıl Yazılır?

Class yazarken kullanabileceğimiz bazı ifadeler(statements) bulunmaktadır.Bunları sıralayacak olursak1. Public
2. Private
3. Const
4. Class_Initialize
5. Class_Terminate 6. Property Get
7. Property Let
8. Property Set
9. Function
10. Sub


İlk olarak yukarıdaki ifadelerin(statements) nasıl kullanıldığına geçmeden önce class nasıl tanımlanır onu bir inceleyelim.

Syntax :
Class ClassAdi
İfade(statement)
End Class

Class tanımlaması yukarıda görüldüğü şekildedir.

1. Public
Public olarak tanımladığınız bir değişkenle, class içine dışarıdan veri gönderebiliriz.

Syntax :
Class ClassAdi
Public DegiskenAdi
..... (İfade/Statement)
End Class

<%
Class ClassAdi
Public Deneme
Public Sub Yazdir
Response.Write Deneme
End Sub
End Class

Set Demo = New ClassAdi
Demo.Deneme = "MaxiASP"
Set Demo = Nothing
%>

Bu kodun çıktısı "MaxiASP" olacaktır

2. Private
Private olarak tanımladığımız değişkeni, sadece açılan class içinde kullanabiliriz.

Syntax :
Class ClassAdi
Private DegiskenAdi
..... (İfade/Statement)
End Class

<%
Class ClassAdi
Private RS
Public Sub RecordSet
Set RS = Server.CreateObject("ADODB.RecordSet")
End Sub
End Class

Set Demo = New ClassAdi
Demo.RecordSet
Set Demo = Nothing
%>

Bu kod ile "RS" isminde bir recordset yaratmış oluruz.


3. Const
Const ile sabit(değişmeyen) değişkenler tanımlayabilirsiniz.

Syntax :
Const DegiskenAdi = Alınacak Değer

<%
Const adInteger = 3
Class ClassAdi
Private RS
Public Sub RecordSet
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Fields.Append "Size", adInteger
RS.open
End Sub
End Class

Set Demo = New ClassAdi
Demo.RecordSet
Set Demo = Nothing
%>

Bu kod ile "RS" isminde bir recordset yarattik ve "adInteger" değerini "3" olarak tanımladık.

4 / 5. Class_Initialize & Class_Terminate
Class_Initialize ile class çalıştırıldığı anda, çalıştırılmasını istediğiniz kodları yazabilirsiniz. Class_Terminate ise class sonlandırıldığı anda (Nothing) çalıştırılmasını istediğiniz kodları yazabilirsiniz.

Syntax :
Class ClassAdi
Private Sub Class_Initialize
.....
End Sub

Private Sub Class_Terminate
.....
End Sub
End Class

<%
Class ClassAdi
Private RS
Private Sub Class_Initialize
Set RS = Server.CreateObject("ADODB.RecordSet")
End Sub
Private Sub Class_Terminate
If IsObject(RS) Then RS.Close : Set RS = Nothing
End Sub
End Class

Set Demo = New ClassAdi
Set Demo = Nothing
%>

Yukarıda yaptığımız işlemde class açıldığında "RS" isimli bir recordset oluşturduk. Class'ımızı sonlandırdığımızda bu oluşturduğumuz "RS" isimli recordsetimizi kullanılmaz hale getirdik.

6. Property Get
Bu ifade ile çağırılan programa değerleri gönderebilir ve alabiliriz.

Syntax:
Public | Private Property Get isim(value)
....
Exit Property
....
End Property

<%
Class ClassAdi
Public Property Get Link(strurl,strtitle)
Link = "<a href='"& strurl &"'>"& strtitle &"</a>"
End Property
End Class

'veya

Class ClassAdi
Public strurl
Public strtitle

Public Property Get Link
Link = "<a href='"& strurl &"'>"& strtitle &"</a>"
End Property
End Class

Set Demo = New ClassAdi
'Demo.strurl = "[Only registered and activated users can see links]"
'Demo.strtitle = "MaxiASP - ASP Eğitim Merkezi"
'Response.Write Demo.Link
'veya
Response.Write Demo.Link("[Only registered and activated users can see links]","MaxiASP - ASP Eğitim Merkezi")
Set Demo = Nothing
%>
...