Son Haberler
Anasayfa / Yazılım / C# / Bir Sınıftan Metot Tanımlama ve Bir Sınıftan Örnekleme Yapma

Bir Sınıftan Metot Tanımlama ve Bir Sınıftan Örnekleme Yapma

Konuyu örnekle açıklamak istiyorum. Bunun için File > New Project diyoruz ve açılan diyalog penceresinde C# dilinde bir console application açıyoruz. İsmini istediğiniz gibi verebilirsiniz. Ben ismini değiştirmedim ConsoleApplication2 bıraktım. Sonra Solution.Explorer alanında Program.cs’nin adını deneme.cs yapıyorum. Daha sonra kodları aşağıdaki gibi yazıyorum.

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

namespace ConsoleApplication2
{
    public class deneme
    {
        static void Main(string[] args)
        {
            
        }

        public void MesajGoster()
        {
            Console.Write("Merhaba Dünya");
        }
    }
}

Örneğimizde deneme adında bir sınıfımız mevcut ve bu sınıf altında MesajGoster adında bir metotumuz yer alıyor. Bu metot ile ekrana Merhaba Dünya yazdıracağız.

Burada sınıfı tanımladığım kısım public class deneme yazdığım bölüm oluyor. Kullanmış olduğum public bir erişim belirleyicidir. Access Modifier olarak bilinmektedir. Access Modifier sayesinde bir sınıf içinde yer alan metotlara ve özelliklere başka bir sınıf içinden ulaşıp, ulaşamayacağımızı belirleriz. Şu anda basit olarak ben sınıfımı public yaptım. Public demek bu sınıf içindeki her özelliğe, her metota uygulama içinde her noktadan erişim açık demektir. Access Modifier kullandıktan sonra class deyimini kullanırız ve bunun ardından sınıfımızın adını veriririz. Sınıf tanımladıktan sonra yine parantez açıp kapatırız. ( {, } )

Daha sonra sınıfımız içinde bir metot tanımladık. Bu metotu tanımlarken yine diğer sınıflardan da erişim sağlanabilmesi için public deyimini kullandık. Daha sonra void deyimini kullandık. Geriye değer döndürmeyen tipte bir metot olduğu için void deyimini kullanıyorum. Daha sonra metotun adını veriyor ve parantez aç ve parantez kapa kullanıyorum. İstediğimiz her şey için metot oluşturabiliriz. Örneğin KaresiniAl diye bir metot oluştururuz ve herhangi bir sayının karesini alır. Veya enbuyugunuBul diye bir metot oluştururuz ve girilen sayılar içinde en büyük sayıyı bulur. Örneğin C#’da console uygulamasında kullandığımız ReadLine bir metottur. Klavyeden girilen değeri okur. Genel yazılım kuralları dahilinde yazılımcılar metotları oluştururken ilk harfi büyük diğer harfleri küçük ancak bir başka kelime ile birleşiyor ise o kelimenin de ilk harfi büyük şekilde yazarlar. Bu isimlendirme tipine Pascal isimlendirme metodu denilir.

MesajGoster gibi.. M ve G büyük diğerleri küçük..

Bizim metotumuzda görev sadece tek bir durumdan ibaret. Bu metot içinde sadece Console.Write(“Merhaba Dünya”); var. Bu yazıyı yazdıktan sonra metotumuz işini bitirir.

Şimdi uygulamaya bir adet dosya ekleyerek devam edelim. Bunu yapabilmek için sağ tarafta yer alan solution explorer alanında proje adına sağ tıklayın ve Add > Class seçiniz. Açılan menüde isim değiştirme alanında ben DenemeTest.cs yaptım. Ve OK dedikten sonra projeme ekledim. Daha sonra kodları şu şekilde düzenliyorum.

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

namespace ConsoleApplication2
{
    public class DenemeTest
    {
        public static void Main(string[] args)
        {
            //deneme sınıfımından instance alıyorum adını ornek verdim
            deneme ornek = new deneme();
            //görüleceği üzere buradan deneme sınıfı altında yer alan bir metota erişebiliyorum.
            ornek.MesajGoster();
        }        
        
    }
}

DenemeTest sınıfımda da uygulamamızı çalıştırabilmek için Main ana yordamı yer alıyor. Herhangi bir uygulamanın çalışması için kendisine ait her bir class içinde Main ana metotu (yordamı) yer alır. Bu sınıfımda sadece Main metodu mevcut başka bir metot yok. Bir önceki Deneme sınıfımda ise hem Main vardı hem de MesajGoster metodumuz vardı. Bu arada Main metodunun statik bir metot olduğuna da dikkat ediniz. Statik metotlar herhangi bir nesne olmadan çalıştırılabilen metotlardır. Burda detayına girmiyorum, bu yazı için bu kadar bilmemiz yeterli.

Şimdi ben DenemeTest sınıfında Main dışında herhangi bir metota sahip değilim. Ancak benim yapmak istediğim bu sınıf içerisinden Deneme sınıfı içindeki MesajGoster metoduna ulaşmak ve buradan uygulamayı çalıştırdığımda da ekrana Merhaba Dünya yazdırmak. Ben Deneme metodunda oluşturduğum sınıfımı public olarak yaptığım için artık o sınıfın altında yer alan metota başka bir sınıf içinden ulaşabilirim. Dolayısı ile bu konuda sıkıntı çekmeden kod kısmında yazabildim. Üstte kodda görüleceği üzere deneme sınıfına buradan ulaştım ve bu sınıftan bir instance alarak yani bir örnek alarak yeni bir obje oluşturdum. Adını da ornek verdim. Ornek objesinin değişken tipi artık deneme oldu. Yani deneme tipinde bir ornek nesnesine sahip oldum. Bu artık deneme sınıfına ait olarak deneme tipinde istediğim kadar nesne oluşturabilirim.

İki sınıfı da public olarak tanımladığım için bu uygulama içinde istediğim her noktadan bu sınıflara erişebilirim. Bu da C#’ın yapısının çok esnek olduğunu gösteriyor. Kodda bir sınıftan nasıl instance alınarak bir obje oluşturulduğuna dikkat edin. Bu yazımda uzun uzun açıklama yapıyorum. Bi sınıftan obje oluştururken yani nesne oluştururken sınıf adını önce yazarız daha sonra nesnemizin adını veririz ve eşittir operatörünün ardından new deyimi ile birlikte hangi sınıftan instance alıyor isek onun adını yazar ve parantez açıp kapatırız. Şu anda constructor ve gibi detaylara girmediğimiz için basit bir şekilde bir sınıftan instance alma bu şekilde oluyor. Bunu bilmemiz yeterli.

Daha sonra oluşturduğum ornek nesnesinin ardından nokta (.) karakterini koyuyorum ve diğer deneme sınıfı altında oluşturduğum MesajGoster metoduna buradan erişebiliyorum. Metodu çağırmak içinde ornek.MesajGoster(); kodunu yazıyorum. Bu metodum herhangi bir parametre içermediği için () şeklinde tanımlamam yeterli.

Şimdi evrensel olarak kullanılan UML’e uyum sağlamak amacı ile oluşturmuş olduğumuz sınıfı birde UML ile ifade edelim. UML’e kısaca değinirsek, UML bir programlama dili değildir. Ancak Nesne Yönelimli Programlama standartlarında program oluşturan kişilerin yaptıkları uygulamaları diyagramsal olarak modellemeleri amacı ile kullanılan bir yöntemdir. Bu yöntem sayesinde yazılım geliştiriciler çalıştıkları uygulama üzerinde oluşturdukları sınıfları, metotları, özellikleri çok daha rahat bir şekilde görebilirler. Şimdi bizde bu sınıfımızın UML ile nasıl ifade edileceğini görelim.

UML ile bir sınıfı tanımlamak için aşağıdaki gibi bir şekil kullanıyoruz.

2013031904

Bu şekilde görüleceği üzere 3 satırdan oluşuyor. En üst satırda sınıfın adı yazar. Bir alt satırda attribute yani özellikler yazar. Bizim sınıfımızda attribute olmadığı için burası boş. En alt kısımda ise metotlar yer alır. Burada metot önünde + işareti kullandık bu işarette ilgili metodun public olduğunu göstermek için. UML’e alışmak adına yazılarımda mümkün olduğunca UML’e yer vereceğim.

Bir sonraki yazıda görüşmek dileği ile..

2 yorum

  1. s.a böyle bir ödevim var yardımcı olabilirmisiniz?
    Bu ödevinizde basit bir hesap makinesi yapacaksınız. Kullanıcıdan sayıları ve işlemi tek satırda alacaksınız ve daha sonra string işlemleri kullanark parçalayıp sonucu bulacaksınız. İşlem sayısı en fazla iki, dolayısıyla rakam sayısı en fazla 3 olabilir. İşlem önceliğini dikkate almalısınız.

    Kullanıcının girebileceği sayı ve işlemlere örnek olarak aşağıdakileri verebiliriz.

    2+3+5

    13+56-11

    23+3*5

    3/5

    12+22

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir