Menu
Coddy logo textTech

Statik Sınıflar

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 13 / 70.

Bir sınıf yalnızca statik üyeler içerdiğinde ve ondan hiçbir zaman örnek oluşturmanız gerekmediğinde, tüm sınıfı static olarak bildirebilirsiniz. Bu, derleyiciye sınıfın örneğinin oluşturulamayacağını ve yalnızca statik üyeler içerebileceğini bildirir.

public static class MathHelper
{
    public static double Pi = 3.14159;
    
    public static int Square(int number)
    {
        return number * number;
    }
    
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

Statik sınıfları, statik üyeleri kullandığınız gibi, doğrudan sınıf adı üzerinden çağırarak kullanırsınız:

int result = MathHelper.Square(5);
double pi = MathHelper.Pi;

Statik sınıfların önemli kısıtlamaları vardır. new ile bir örnek oluşturamazsınız, örnek yapıcıları olamaz ve miras alınamazlar. Yalnızca statik alanlar, özellikler ve metotlar içerebilirler.

Kullanmakta olduğunuz Console ve Math sınıfları, statik sınıfların mükemmel örnekleridir. Nesne durumuna ihtiyaç duymadan yardımcı işlevsellik sağlarlar. Statik sınıflar, örneğe özgü herhangi bir veri gerektirmeyen ilgili yardımcı metotları veya sabitleri gruplandırmak için idealdir.

challenge icon

Görev

Kolay

Herhangi bir nesne durumu gerektirmeyen ilgili yardımcı yöntemleri gruplandırmak için statik bir sınıf kullanarak bir sıcaklık dönüştürme aracı oluşturalım.

Kodunuzu düzenlemek için iki dosya oluşturacaksınız:

  • TemperatureConverter.cs: TemperatureConverter ad alanında Utilities adlı statik bir sınıf tanımlayın. Bu sınıf şunları içermelidir:
    • AbsoluteZeroCelsius değerine ayarlanmış bir statik alan: -273.15
    • Celsius'u Fahrenheit'a CelsiusToFahrenheit(double celsius) formülünü kullanarak dönüştüren (celsius * 9 / 5) + 32 adlı statik bir yöntem
    • Fahrenheit'ı Celsius'a FahrenheitToCelsius(double fahrenheit) formülünü kullanarak dönüştüren (fahrenheit - 32) * 5 / 9 adlı statik bir yöntem
    • Sıcaklık mutlak sıfırın üzerindeyse IsAboveAbsoluteZero(double celsius) döndüren true adlı statik bir yöntem
  • Program.cs: Ana dosyanızda dönüşümleri gerçekleştirmek için statik sınıfı kullanın. Girdiden Celsius cinsinden bir sıcaklık değeri okuyun, ardından dönüşümleri ve doğrulamayı görüntüleyin.

Bir girdi alacaksınız: Celsius cinsinden bir sıcaklık değeri.

Sonuçları şu formatta yazdırın:

{celsius}C = {fahrenheit}F
{fahrenheit}F = {convertedBack}C
Above Absolute Zero: {True/False}
Absolute Zero: {AbsoluteZeroCelsius}C

Örneğin, girdi 25 ise çıktı şu şekilde olmalıdır:

25C = 77F
77F = 25C
Above Absolute Zero: True
Absolute Zero: -273.15C

Statik sınıfların örneğinin oluşturulamayacağını unutmayın; tüm yöntemleri TemperatureConverter.CelsiusToFahrenheit(25) gibi doğrudan sınıf adı üzerinden çağıracaksınız.

Kendin dene

using System;
using Utilities;

class Program
{
    public static void Main(string[] args)
    {
        // Celsius cinsinden sıcaklığı oku
        double celsius = Convert.ToDouble(Console.ReadLine());
        
        // TODO: TemperatureConverter statik metotlarını kullanarak şunları yapın:
        // 1. Celsius'u fahrenheit'a çevirin
        // 2. Fahrenheit'ı tekrar celsius'a çevirin
        // 3. Sıcaklığın mutlak sıfırın üzerinde olup olmadığını kontrol edin
        // 4. Mutlak sıfır sabitini alın
        
        // TODO: Sonuçları istenen formatta yazdırın:
        // {celsius}C = {fahrenheit}F
        // {fahrenheit}F = {convertedBack}C
        // Above Absolute Zero: {True/False}
        // Absolute Zero: {AbsoluteZeroCelsius}C
        
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C# derleyicisi