aofsorular.com
BİL107U

Nesneye Yönelik Programlamaya Giriş

6. Ünite 20 Soru
S

Nesne tabanlı programlamanın asıl amacı nedir?

Her şeyi en küçük parçasına kadar parçalamak, bu parçaları bir araya getirerek bütünü oluşturmak ve tüm bu parçaları tekrar tekrar kullanmaktır.

S

Bir sınıfı tanımlamak için belirtilmesi gerekenler nelerdir?

Bir sınıfı tanımlamak için “class” anahtar kelimesi ve sınıfımıza vermek istediğimiz ismi belirtiriz.

S

Struct ile class yapılarının farkları nelerdir?

struct yapıları değer (value) tipinde, sınıf yapıları ise referans (reference) tipindedir. Hafızada tutuldukları yerler farklıdır. Bu yüzden sınıf tipinde oluşturulan bir nesne boş olabilir fakat struct tipinde oluşturulan nesne boş olamaz.

S

Nesne nasıl tanımlanır?

Nesneler, sınıflarda tanımı yapılmış değişkenlere anlamlı bir şekilde değer atanabildiği ve sınıfın sahip olduğu metotları kullanabilen bir yapıdır. Daha açık bir ifade ile sınıf şablonunu kullanarak oluşturduğumuz somut yapıdır.

S

Nesne başlatıcılar hangileridir?

Sınıflara tanımlı değişkenlere veri atanması ve veriyi okuma sırasında bu işi yapacak bir metoda ihtiyaç duyulmaktadır. Bu işlemleri gerçekleştiren metotlar set/setter (değer atayan) ve get/getter (değer okuyan) metotlar olarak adlandırılmaktadır.

S

Field (alan) terimi hangi durumda kullanılmaktadır?

Field kelimesinin Türkçe karşılığı alan’dır. Bu terimi de nesneye yönelik programlamanın temel ilkelerinden olan sarmalamayı (encapsulation) uygularken kullanıyoruz. Bu ilkeye göre, sınıf tanımlaması içindeki değer tutan değişkenlere (field) doğrudan erişim engellenmelidir. Bu değişkenlere değer ataması için de özelliklerden (property) faydalanırız.

S

Namespace kavramı programlamada ne anlama gelmektedir?

Türkçe karşılığını isim alanı olarak çevirebileceğimiz namespace kavramı, programlamada kütüphane
kavramına karşılık gelmektedir.

S

Yapıcı metotlar hangi amaçla kullanılır?

Yapıcılar, nesne oluşturmak ve nesnenin varsayılan değerlerinin atanmasına imkân sağlamak için tasarlanmış özel metotlardır.

S

Yapıcı metotların özellikleri nelerdir?

Yapıcı metotlar parametre alan ve almayan şekilde dizayn edilebilir. Yapıcı metotlar, kendi sınıfları ile aynı isme sahiptirler ve herhangi bir geri dönüş değeri içermezler yani void de yazılmaz. Ayrıca yapıcı metotlar sınıf içerisinde tanımlanmadıysa bile bu sınıftan nesne oluşturulurken otomatik olarak çağırılırlar.

S

Kopya yapıcı metotların kullanım amacı nedir?

Kopya Yapıcı metotlar, değişkenleri başka bir nesneden kopyalayarak bir nesne oluşturan ya da bir nesnenin verilerini başka bir nesneye kopyalayan yapıcı metotlara verilen isimdir. Kopya yapıcı metodumuz aslında aynı sınıf tipinde bir parametre içeren parametreli bir yapıcıdır. Kopya yapıcı metodun kullanım amacı, mevcut bir nesnenin değerleri ile yeni bir nesne oluşturmaktır. C# programlama dili, nesneler için kopya yapıcı metot sağlamamaktadır; ancak programda bir kopya yapıcı metot hazırlanmak isteniyorsa, ihtiyaca göre oluşturulabilir.

S

Yıkıcı metotlar hangi durumlarda çalışır?

Yıkıcı metotlar, nesneye artık ihtiyacın olmadığı durumlarda çalışan metotlardır.

S

Yıkıcı metotların özellikleri nelerdir?

Yapıcı metotlara benzer şekilde yıkıcı metotların da isimleri sınıf ismi ile aynı olmak zorundadır; yalnız bir farkla: yıkıcı metot isminin başına tilda “~” işareti alır. Yıkıcı metotlar parametre alamaz ve geri değer döndüremezler. Parametre alamadıkları için de birden fazla tanımlanma şansı da yoktur.
Yapıcı metotlara benzer şekilde, yıkıcı metotları da tanımlamak zorunda değiliz. Tanımlanmadığı zaman yıkıcı metot arka planda otomatik olarak çağrılmaktadır; dışarıdan çağrılamaz.

S

"public" erişim denetleyicisinin kullanım amacı nedir?

C# programlama dilinde her şey sınıflar içerisinde tanımlanır. Kod içerisinde tanımlanmış değişkenler de sınıflar, metotlar ya da kod blokları içinde yer almaktadır. Global yani her yerden erişilebilen değişken ve fonksiyonlara izin verilmez. Bunun yerine “global” yetki verilmesi istenen sınıfın üyesi, “public” erişim denetleyicisi ile tanımlanır. Böylece “public” yani her yerden erişilebilen bir yetkiye sahip olan sınıfın üyesine başka sınıflardan da erişebiliriz.

S

"private" erişim denetleyicisinin işlevi nedir?

Kelime anlamı olarak özel demektir. C# programlama dilinde, private olarak tanımlanan bir metoda sadece tanımlandığı sınıf içerisinden erişim mümkündür. Başka bir sınıf içinde bu sınıftan türetilen bir nesnenin yine bu metotlara erişim izni olmayacaktır.

S

"internal" erişim denetleyicisi hangi amaçla kullanılır?

internal olarak tanımlanan bir metoda aynı program içerisinden erişilebilir fakat başka bir program ya da farklı bir katmandan erişim mümkün değildir. Program içinde herhangi bir kısıtlaması yoktur.

S

"protected" erişim denetleyicisinin işlevi nedir?

protected kelime olarak korunan manasındadır. Protected değiştiricisi, aynı sınıftaki veya o sınıftan türetilen bir sınıftaki kodların metoda veya üyelerine erişmesine izin verir.

S

"protected internal " erişim denetleyicisinin işlevi nedir?

Aktif projeye ait sınıflardan ve bunların türevlerinden erişilebilir. Bileşik bir belirteçtir. Bir üye, “protected internal” hariç diğer erişim belirleyicilerden sadece birini alabilir.

S

Genişletilebilir metotlar hangi amaçla kullanılır?

Kelime manası genişletilebilir metot anlamına gelen Extension metotlar, .Net içerisinde bulunan sınıflara yeni metotlar eklenebilmesini sağlamaktadır.

S

Genişletilebilir metotları yazarken uyulması gereken kurallar nelerdir?

• Static bir sınıf içerisinde static olarak tanımlanmalıdır.
• Genişletilecek sınıf, ilgili extension metoduna önünde “this” anahtar kelimesi eklenerek metodun ilk parametresi olarak verilmelidir.
• Extension metodu birden fazla parametre alabilir, ama sadece bir parametre “this” anahtar kelimesi ile tanımlanabilir.

S

"this" anahtar kelimesi ne amaçla kullanılır?

This anahtar kelimesi, kullanıldığı sınıfı temsil eder. Bu sınıftaki tüm üyelere bu sözcük ile erişilebilir