Oluşturucuları Tanımlama
Parametreli oluşturucularla örnekler oluşturun.
Oluşturucuları Tanımlama, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
Oluşturucu Nedir?
Oluşturucu, bir nesne new ile oluşturulduğunda çalışan özel bir yöntemdir. Sınıfla aynı ada sahiptir ve dönüş türü yoktur. Görevi, nesneyi geçerli bir başlangıç durumuna getirmektir.
using System;
class Dog
{
public Dog()
{
Console.WriteLine("A dog was created");
}
}
class Program
{
static void Main()
{
var d = new Dog();
}
}Parametreli Oluşturucular
Bir oluşturucu parametre alabilir; böylece çağıran kod başlangıç değerlerini sağlar. Bu, gerekli verileri ayarlamanın en yaygın kalıbıdır.
using System;
class Person
{
public string Name;
public int Age;
public Person(string name, int age)
{
Name = name;
Age = age;
}
}
class Program
{
static void Main()
{
var p = new Person("Ada", 36);
Console.WriteLine(p.Name + " is " + p.Age);
}
}Oluşturuculardaki Bu Anahtar Sözcüğü
Bir parametrenin adı alan adıyla eşleştiğinde, alana başvurmak ve onu parametreden ayırmak için this. kullanın.
using System;
class Book
{
public string Title;
public Book(string title)
{
this.Title = title;
}
}
class Program
{
static void Main()
{
var b = new Book("C# Basics");
Console.WriteLine(b.Title);
}
}Varsayılan Oluşturucu
Hiçbir oluşturucu yazmazsanız derleyici parametresiz bir oluşturucu sağlar. Ancak herhangi bir oluşturucu tanımladığınız anda bu varsayılan oluşturucu ortadan kalkar; kendiniz eklemediğiniz sürece kullanılamaz.
using System;
class Empty
{
// No constructor written -> compiler supplies a default one
public int Value;
}
class Program
{
static void Main()
{
var e = new Empty();
Console.WriteLine("Default Value: " + e.Value);
}
}Oluşturucuda Doğrulama
Bir oluşturucu, bağımsız değişkenlerini doğrulayarak nesnenin hiçbir zaman geçersiz bir durumda oluşturulmamasını garanti edebilir.
using System;
class Account
{
public decimal Balance;
public Account(decimal initial)
{
if (initial < 0)
throw new ArgumentException("Initial balance cannot be negative");
Balance = initial;
}
}
class Program
{
static void Main()
{
var a = new Account(100m);
Console.WriteLine("Balance: " + a.Balance);
}
}Oluşturucu Aşırı Yükleme
Bir sınıf, farklı parametre listelerine sahip birden fazla oluşturucu içerebilir. Derleyici, gönderdiğiniz bağımsız değişkenlerle eşleşen oluşturucuyu seçer.
using System;
class Point
{
public int X;
public int Y;
public Point()
{
X = 0;
Y = 0;
}
public Point(int x, int y)
{
X = x;
Y = y;
}
}
class Program
{
static void Main()
{
var origin = new Point();
var p = new Point(3, 4);
Console.WriteLine(origin.X + "," + origin.Y + " | " + p.X + "," + p.Y);
}
}Oluşturucudan Özellikleri Ayarlama
Oluşturucular genellikle yalnızca başlatmada ayarlanan veya özel ayarlayıcılara sahip olanlar da dâhil olmak üzere otomatik özelliklere değer atar.
using System;
class Product
{
public string Name { get; }
public decimal Price { get; }
public Product(string name, decimal price)
{
Name = name;
Price = price;
}
}
class Program
{
static void Main()
{
var p = new Product("Pen", 1.50m);
Console.WriteLine(p.Name + ": " + p.Price);
}
}Varsayılan Parametre Değerleri
Oluşturucu parametrelerinin varsayılan değerleri olabilir; böylece çağıran kod bunları belirtmeyebilir. Bu, çoğu zaman birkaç aşırı yüklemeye duyulan ihtiyacı azaltır.
using System;
class Circle
{
public double Radius;
public string Color;
public Circle(double radius, string color = "black")
{
Radius = radius;
Color = color;
}
}
class Program
{
static void Main()
{
var c1 = new Circle(2);
var c2 = new Circle(3, "red");
Console.WriteLine(c1.Color + " | " + c2.Color);
}
}Oluşturucuda İş Yapma
Bir oluşturucu, alanlara değer atamanın yanı sıra türetilmiş verileri hesaplayabilir veya nesnenin ihtiyaç duyduğu kaynakları hazırlayabilir.
using System;
class Rectangle
{
public double Width;
public double Height;
public double Area;
public Rectangle(double w, double h)
{
Width = w;
Height = h;
Area = w * h;
}
}
class Program
{
static void Main()
{
var r = new Rectangle(4, 5);
Console.WriteLine("Area: " + r.Area);
}
}Oluşturucular ve Gerekli Veriler
Gerekli değerleri oluşturucuya koymak, onları zorunlu hâle getirir: bu değerleri sağlamadan nesneyi oluşturamazsınız.
using System;
class User
{
public string Id;
public string Email;
public User(string id, string email)
{
Id = id;
Email = email;
}
}
class Program
{
static void Main()
{
var u = new User("u1", "a@b.com");
Console.WriteLine(u.Id + " / " + u.Email);
}
}Hepsini Birleştirme
İyi tasarlanmış bir oluşturucu girdiyi doğrular, alanlara değer atar ve nesneyi kullanıma tamamen hazır hâlde bırakır.
using System;
class Temperature
{
public double Celsius { get; }
public double Fahrenheit { get; }
public Temperature(double celsius)
{
if (celsius < -273.15)
throw new ArgumentException("Below absolute zero");
Celsius = celsius;
Fahrenheit = celsius * 9 / 5 + 32;
}
}
class Program
{
static void Main()
{
var t = new Temperature(25);
Console.WriteLine(t.Celsius + "C = " + t.Fahrenheit + "F");
}
}Hızlı Kontrol
Oluşturucular hakkındaki anlayışınızı sınayın.
Özet
Bir oluşturucu, sınıfın adını paylaşır, dönüş türü yoktur ve new kullanıldığında çalışır. Parametreli oluşturucular başlangıç değerlerini alır; this., alanları parametrelerden ayırt eder. Oluşturucuları aşırı yükleyebilir ve varsayılan parametre değerlerini kullanabilirsiniz. Herhangi bir oluşturucu tanımlamak, otomatik oluşturulan varsayılan oluşturucuyu kaldırır.
using System;
class Demo
{
public string Name;
public Demo(string name = "anon")
{
this.Name = name;
}
}
class Program
{
static void Main()
{
Console.WriteLine(new Demo().Name);
Console.WriteLine(new Demo("Kai").Name);
}
}Sıkça Sorulan Sorular
“Oluşturucuları Tanımlama” dersi ücretsiz mi?
Evet — “Oluşturucuları Tanımlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“Oluşturucuları Tanımlama” dersinde ne öğreneceğim?
Parametreli oluşturucularla örnekler oluşturun. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Oluşturucuları Tanımlama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Oluşturucuları Tanımlama
- this ile Oluşturucu Zincirleme
- Nesne ve Koleksiyon Başlatıcıları
- Statik Oluşturucular