9 Nisan 2010 Cuma

Object Oriented Programming (13) - Class İçerisine Method Eklemek

Class İçerisine Method Eklemek

Class içerisine method eklemek için, void yada function yazmak yeterli olacaktır.

Method'ların access modifier'ı public, private veya protected olabilir. Private modifier ile tanımlanan method'lar, sadece bulundukları Class içerisinde geçerli olurlar. Bu tür Method'lara iç method da denilebilir. Bu tür methodlar daha çok Class içerisinde tekrar eden işler için kullanılır.

Protected modifier ile tanımlanan methodlara, hem bulunduğu Class içerisinden hem de Inheritance (miras alındığı) yapılan Class içerisinden erişilebilir. Protected access modifier ile method tanımlama işlemi Inheritance (Miras Alma) konusunda detaylı bir şekilde ele alınacaktır.

Methodun Solution üzerinden erişilebilir olması için, method'u public access modifier ile tanımlanmanız gerekir. Access modifier eklenmeyen methodlar .NET IDE'si tarafından varsayılan olarak private modifier'lı kabul edilir.

Aşağıdaki örnekte, geriye 10 karakter uzunluğunda string değer döndüren, bir method tanımı yapılmıştır. Bu method ile karakterleri harf ve rakamdan oluşan rastgele şifreler üretilmektedir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SifreUretici
{
public class Sifre
{
//Field
private int _uzunluk;


//Property
public int Uzunluk
{

get { return _uzunluk; }
set { _uzunluk = value; }
}

//Method


public string SifreUret()
{
char[] karakter = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };


Random rnd = new Random();
int RastgeleSayi;
string sonuc = null;


for (int i = 1; i <= 10; i++)
{
RastgeleSayi = rnd.Next(0, karakter.Length - 1);
sonuc += karakter[RastgeleSayi].ToString();
}
return sonuc;
}


} //Class
} //NameSpace

Method içersisindeki işlemleri gerçekleştirirken field değerlerinden faydalanabiliriz. Örneğin yukardaki method da kullandığımız 10 karakterlik sabit şifre uzunluğunu, Uzunluk adında bir property'den alarak değişken hale getirebiliriz. Böylece SifreUret methodumuz, girilen şifre uzunluğuna göre otomatik olarak şifre üretir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace SifreUretici
{


public class Sifre
{


//Field
private int _uzunluk;


//Property
public int Uzunluk
{
get { return _uzunluk; }
set { _uzunluk = value; }
}


//Method
public string SifreUret()
{
char[] karakter = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };


Random rnd = new Random();
int RastgeleSayi;
string sonuc = null;


for (int i = 1; i <= _uzunluk; i++)
{
RastgeleSayi = rnd.Next(0, karakter.Length - 1);
sonuc += karakter[RastgeleSayi].ToString();
}
return sonuc;
}


} //Class
} //NameSpace

Son olarak Method isimleri belirlerken Fiil kullanmamız önerilir. Örnek: SifreUret(),Focus(),Clear() gibi...

Hiç yorum yok: