5.00 / 1 oy

Programlamada metodların static olması ile olmaması arasındaki fark nedir?

Bu başlığı sadece C# olarak açmak istemedim, çünkü Java, C#, C++ gibi programlama dillerinde static metodlar vardır ve static olmaları ile olmamaları arasındaki fark aynıdır.

Statik bir metod (static) bir sınıftan üretilmiş olan tüm nesneler için paylaşılır. Bu da pratikte aslında bizim için şu anlama gelir, static metodları nesne yaratmadan doğrudan kullanabiliriz. Static olmayan metodları kullanabilmek için ise önce o sınıfa ait yeni bir nesne üretmemiz gerekir.

static olan ve olmayan iki metodun kullanımı arasındaki farkları şu örnekte görebilirsiniz.

- Araba sınıfının çalıştır metodu statik olsun, hızlan metodu ise statik olmasın. Bu durumda yeni bir araba nesnesi üretmeye gerek kalmadan araba çalıştırmak mümkün olacak, ama arabanın hizlan metodunu kullanabilmek için araba nesnesi oluşturmak zorunda olacağız.

using System;

namespace csharp
{
    class Program
    {
        static void Main(string[] args)
        {
            Araba.Calistir();
            //Araba.Hizlan(); hata
            Araba araba = new Araba();
            araba.Hizlan();
        }
    }

    class Araba
    {
        public static void Calistir()
        {
            Console.WriteLine("araba çalıştı");
        }

        public void Hizlan()
        {
            Console.WriteLine("araba hızlandı");
        }
    }
}

Çıktı:

araba çalıştı
araba hızlandı

Not: Hizlan() metodunu yeni bir araba nesnesi oluşturmadan kullanırsak error CS0120: An object reference is required for the non-static field, method, or property 'Araba.Hizlan()' hatası alırız.

Önceki yazılarımdan bazıları için;

bkz: Metodlarda void ile return ifadeleri arasındaki fark nedir?

bkz: C# programlama dilinde metod tanımlamak ve metodu kullanmak

bkz: C# sabit (const) kullanımı ve örnekleri

bkz: C# Veri Tiplerinin Sınırlarını Görmek

bkz: C# String.Format Metodu Kullanımı ve Örnekleri

bkz: C# baştaki ve sondaki boşlukları silmek (trim)

mbologlu

01.04.2021 02:17

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Programlamada metodların static olması ile olmaması arasındaki fark nedir?

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.