DATA STRUCTURES. Part III. Sınıflar, Nesneler ve İlgili Programlama Örnekleri

Benzer belgeler
Java String İşlemleri

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Operator Aşırı Yükleme (Operator OverLoading)

Sunum İçeriği. Programlamaya Giriş

BMH-303 Nesneye Yönelik Programlama

11- FONKSİYONLAR (FUNCTIONS)

Programlama Dilleri 3

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

public static int Toplam int x, int y

7. HAFTA. Erişim Belirleyiciler

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Nesne Yönelimli Programlama

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

BİL-142 Bilgisayar Programlama II

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

HSancak Nesne Tabanlı Programlama I Ders Notları

JAVADA DİZİ İŞLEMLERİ

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Ders 8: Metotlar. barisgokce.com

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

Lambda İfadeleri (Lambda Expressions)

HSancak Nesne Tabanlı Programlama I Ders Notları

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

HSancak Nesne Tabanlı Programlama I Ders Notları

BİL-141 Bilgisayar Programlama I (Java)

C# Metotlar ve Metot Tanımlama

ALGORİTMA VE PROGRAMLAMA II

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

YZM 2105 Nesneye Yönelik Programlama

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Ders 8 Konu Özeti ve Problemler

Java Class Yapısında Finalize Metotunun Kullanımı

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir.

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ByteArrayOutputStream

/*int sayi1, sayi2,toplam=0;

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

Dizi ( Array ) ve Dizgi ( String )

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

İNTERNET TABANLI PROGRAMLAMA- 4.ders

NESNEYE YÖNELİK PROGRAMLAMA

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

// hataları işaret eden referans

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

C#(Sharp) Programlama Dili

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Yrd. Doç. Dr. Caner ÖZCAN

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Nesne Yönelimli Programlama

1 PROGRAMLAMAYA GİRİŞ

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Erişim konusunda iki taraf vardır:

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

Veri Yapıları ve Algoritmalar dönem

C++ Dersi: Nesne Tabanlı Programlama

Pointer Kavramı. Veri Yapıları

Diziler İndisli Değişkenler

NESNEYE YÖNELİK PROGRAMLAMA

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

BTEP243 Ders 3. class Yazım Kuralı:

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

MOBIL UYGULAMA GELIŞTIRME

Nesne Tabanlı Programlama

NESNEYE YÖNELİK PROGRAMLAMA

İNTERNET TABANLI PROGRAMLAMA- 3.ders

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Programlama Dillerinde Kullanılan Veri Tipleri

Yrd. Doç. Dr. Caner ÖZCAN

Nesneye Dayalı Programlama

Yazılım Kodlama ve İ simlendirme Standartları v1.0

BİLG Dr. Mustafa T. Babagil 1

Transkript:

DATA STRUCTURES Part III Sınıflar, Nesneler ve İlgili Programlama Örnekleri

Sınıf (Class) ve Nesne (Object) Sınıflar, verileri (değişkenler, ) ve onlar üzerinde işlem yapacak kodu (metotları, ) bir çatı altında toplayarak bütünleştirirler. Metotları da içeren daha geniş kod blokları oluşturulmasını sağlarlar. Nesneleri oluşturmak için bir sınıf şablonu kullanılmaktadır. Bir nesne, oluşturulduğu sınıfın bir örneğidir. Sınıflar, nesne yönelimli yazılım geliştirmenin temel yapıtaşlarındandır. Doç. Dr. Aybars UĞUR 2

Örnek 1 Sınıf Oluşturma ve Kullanımı class Öğrenci public int numara; public string ad, soyad; Öğrenci sınıfı (ve aynı zamanda yeni bir veri tipi) oluşturuluyor. Öğrencinin numarasını, ad ve soyadını tutacak değişkenler tanımlanıyor. Bu sınıf metot içermiyor. Nesne Oluşturuluyor class Program Ana metot içerisinde Öğrenci sınıfı kullanılıyor. Değişken tanımlamadan static void Main(string[] args) önemli bir farkı, new ile bellekte, Öğrenci sınıfından oluşacak nesneler için yer ayrılması gerekliliği. Öğrenci int i = 5; sınıfından ogr nesnesini oluşturduk. Öğrenci ogr = new Öğrenci(); ogr.ad = "Ali"; ogr.soyad = "Yılmaz"; ogr.numara = 14; Sınıf üyelerine, sınıf dışından erişim. ile yapılır. Doç. Dr. Aybars UĞUR 3

Örnek 2 I - Sınıfa Metot Ekleme ve Çağırma class Öğrenci public int numara; public string ad, soyad; public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); class Program static void Main(string[] args) Öğrenci ogr = new Öğrenci(); ogr.numara = 14; ogr.ad = "Ali"; ogr.soyad = "Yılmaz"; ogr.yazdır(); ogr nesnesinin yazdır metodunu, ana metottan çağırıyoruz. Öğrenci sınıfına yazdır metodunu ekledik. Sınıf içerisindeki değişkenlerin değerlerini ekrana yazdırıyor. Ekran Çıktısı : 14 Ali Yılmaz Doç. Dr. Aybars UĞUR 4

Örnek 2 II - Sınıfa Üyelerine Dışarıdan Erişim class Öğrenci public int numara; public string ad, soyad; public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); class Program static void Main(string[] args) Öğrenci ogr = new Öğrenci(); Yazdır metodu yerine elle yazılabilir. numara, ad ve soyad, public tanımlı oldukları için sınıf dışından erişilebilir. Ancak, bu tür bir kullanım yerine, Öğrenci sınıfına metot eklenmesi önerilir. ogr.numara = 14; ogr.ad = "Ali"; ogr.soyad = "Yılmaz"; Console.WriteLine(ogr.numara+" "+ogr.ad + " " + ogr.soyad + " "); Doç. Dr. Aybars UĞUR 5

Örnek 2 III - Dışarıdan Erişimin Engellenmesi class Öğrenci private int numara; public string ad, soyad; public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); class Program static void Main(string[] args) Öğrenci ogr = new Öğrenci(); numara değişkenini private tanımlarsak, sınıf dışından erişilemez. Error1 ConsoleApplication11.Öğrenci.num ara' is inaccessible due to its protection level şeklinde 2 adet hata mesajı verir. ad ve soyad değişkenlerinin kullanımında ise sorun çıkmaz. ogr.numara = 14; ogr.ad = "Ali"; ogr.soyad = "Yılmaz"; Console.WriteLine(ogr.numara+" "+ogr.ad + " " + ogr.soyad + " "); Doç. Dr. Aybars UĞUR 6

Örnek 3 Öğrenci Sınıfından Nesne Oluşturma class Öğrenci private int numara; public string ad, soyad; ogr numara ad soyad class Program static void Main(string[] args) Öğrenci ogr = new Öğrenci(); Öğrenci ogrtemp = new Öğrenci(); ogr ve ogrtemp olmak üzere, iki adet nesne oluşturduk. ogrtemp numara ad soyad Doç. Dr. Aybars UĞUR 7

Örnek 4 Bellekte Yer Ayrılmazsa! class Öğrenci private int numara; public string ad, soyad; class Program static void Main(string[] args) Öğrenci ogr; ogr.ad = "Ali"; ogr / New ile bellekte yer ayrılmadı! Hata Mesajı Verir: Error1 Use of unassigned local variable 'ogr ogr referansı null içerip bir adresi göstermez. ad sahası için bellekte yer de ayrılmamıştır. Doç. Dr. Aybars UĞUR 8

Örnek 5 Nesne Dizisi Oluşturma öğrenciler class Program static void Main(string[] args) Öğrenci[] öğrenciler = new Öğrenci[10]; 10 adet Öğrenci referansı için yer ayrıldı. for (int i = 0; i < öğrenciler.length; ++i) öğrenciler[i] = new Öğrenci(); öğrenciler[3].ad = "Kemal"; öğrenciler Her bir öğrenci için bellekte yer ayrılması gerekiyor. Kemal Doç. Dr. Aybars UĞUR 9

Örnek 6 Yapılandırıcı (Metot) - Constructor class Öğrenci private int numara; public string ad, soyad; public Öğrenci() class Program static void Main(string[] args) Öğrenci ogr1 = new Öğrenci(); public Öğrenci(string adı, string soyadı, int no) ad = adı; soyad = soyadı; numara = no; public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); Yapılandırıcı Metot, sınıfla aynı ismi taşır. Bu örnekte, 2 adet constructor (yapılandırıcı) tanımlanmıştır. 1. si parametre almamaktadır. 2. si 3 adet parametre içermektedir. Ekran Çıktısı : 0 11 Ali Yılmaz Öğrenci ogr2 = new Öğrenci("Ali","Yılmaz",11); ogr1.yazdır(); ogr2.yazdır(); 2. yapılandırıcı, nesneye doğrudan değer aktarmayı sağlayarak işlemleri kolaylaştırır. Yapılandırıcı Metot, ilgili sınıftan bir nesne oluşturulduğunda devreye girer. Örnekte, parametre uyumluluğu dolayısı ile, ogr1 nesnesi oluşturulurken 1. yapılandırıcı otomatik çağrılır. ogr2 nesnesi oluşturulurken 2. yapılandırıcı otomatik çağrılır. Doç. Dr. Aybars UĞUR 10

Nesneye Yönelik Programlama Temel Bilgi ve Terminoloji - I Sınıf (Class) : Soyut bir veri tipinin hem verilen tiplerdeki veriler kümesini, hem de bu değerler üzerinde yapılabilecek işlemler kümesini bir araya getirir. Örnek : "Öğrenci" sınıfı. Nesne (Object) : Sınıfın örneğine (sınıf tipindeki değişkenlere) nesne adı verilir. Örnek : "ogr1" ve "ogr2" nesneleri. Metot (Method) : Bir eylemi veya işlemi gerçekleştiren sınıf üyesidir. "Öğrenci()" yapılandırıcıları ve "yazdır()" metodu Öğrenci sınıfının metotlarıdır. Sınıf Üyeleri (Class Members) : Sınıfın elemanlarına üye adı verilir. Değişkenler, metotlar... Örnekler : "ad", "soyad", "numara" degişkenleri; "Öğrenci()" yapılandırıcıları ve "yazdir()" metodu Öğrenci sınıfının üyeleridir. Doç. Dr. Aybars UĞUR 11

Nesneye Yönelik Programlama Temel Bilgi ve Terminoloji - II Yapılandırıcı metot (Constructor) : Sınıftan yeni bir nesne oluşturulduğu anda çağrılan metoda yapılandırıcı adı verilir. Yapılandırıcı metot ismi, sınıf ismi ile aynıdır. Sınıfların bu kısmında, ilk değerlerin atanması ve kullanılacak veri yapılarının tanımlanması gibi işlemlere ilişkin kodlar yazılır. Öğrenci ogr2 = new Öğrenci("Ali","Yılmaz",11); ogr2 nesnesi, new deyimi ile oluşturulurken, Öğrenci sınıfının sırayla iki tane string ve bir tane tamsayı alan yapılandırıcı metodu devreye girer. // Yapılandırıcı metot public Öğrenci(string adı, string soyadı, int no) ad = adı; soyad = soyadı; numara = no; Doç. Dr. Aybars UĞUR 12

Nesneye Yönelik Programlama Temel Bilgi ve Terminoloji - III Çokbiçimlilik (polymorphism) : Bir metot ismi bulunmakla birlikte, farklı şekillerde tanımlanıp çağrılabilme özelliği bir tür çokbiçimliliktir: public Öğrenci() public Öğrenci(string adı, string soyadı, int no) ad = adı; soyad = soyadı; numara = no; Öğrenci yapılandırıcısının farklı parametrelere sahip iki farklı biçimi. int, float, double sayılar için tanımlanmış matematiksel fonksiyonlar (topla gibi) da benzeri şekilde örnek olarak verilebilir. Doç. Dr. Aybars UĞUR 13

Örnek 7 this referansı Sınıf değişkenleri class Öğrenci private int numara; public string ad, soyad; public Öğrenci() 2. yapılandırıcıda önceki örneğe göre değişiklik yaptık. Önceki örnekte, parametre bölümündeki değişkenleri tanımlarken, karışıklık yani isim çakışması olmaması için sınıf değişkeni olanlarla farklı isimler kullanmıştık. Bu örnekte ise ad ve soyad parametreleri Sınıf değişkenleri ile aynı ismi taşıyor. this referansı, sınıf değişkenlerine erişmeyi sağlar. public Öğrenci(string ad, string soyad, int no) this.ad = ad; this.soyad = soyad; numara = no; public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); Doç. Dr. Aybars UĞUR 14

Örnek 8 Part I : Öğrenci Sınıfı private üyelere dışarıdan erişim class Öğrenci private int numara; private string ad, soyad; Sınıfın tüm değişkenlerini, private olarak tanımladık (yetkisiz erişimleri engellemek için) public Öğrenci(string ad, string soyad, int no) this.ad = ad; this.soyad = soyad; numara = no; public string adal() return ad; adal metodu ile, nesnenin ad sahasını dışarıdan okuyabiliyoruz. public void adata(string adı) ad = adı; adata metodu ile, nesnenin ad sahasına değer atayabiliyoruz. public void yazdır() Console.WriteLine(numara+" "+ad+" "+soyad); Doç. Dr. Aybars UĞUR 15

Örnek 8 Part II : Ana Metot private üyelere dışarıdan erişim class Program static void Main(string[] args) Öğrenci ogr = new Öğrenci("Ali", "Yılmaz", 11); ogr.yazdır(); // ogr.ad = "Ali"; inaccessible ogr.adata("veli"); ogr.yazdır(); Console.WriteLine(ogr.adAl()); Ekran Çıktısı: 11 Ali Ylmaz 11 Veli Yılmaz Veli Console.ReadKey(); Doç. Dr. Aybars UĞUR 16

Kalıtım (Inheritance) Yazılım yeniden kullanılabilirliğinin bir çeşididir. Diğer sınıfların özelliklerini devralmasını sağlar. Temel sınıftan türetilen bir sınıf için, aynı olan değişken ve metotları yeniden yazmaya gerek kalmaz. Farklılıklar üzerine yoğunlaşılabilir. Kaynak kod yazım ve hata ayıklama sürelerini de azaltır. Doç. Dr. Aybars UĞUR 17

Temel Sınıf (Base Class) ve Türetilen Sınıf (Derived Class) Öğrenci Temel Sınıf ErasmusÖğrenci Türetilen Sınıf Doç. Dr. Aybars UĞUR 18

Örnek 9 Kalıtım I : Temel Sınıf class Öğrenci public int numara; public string ad, soyad; public Öğrenci() public Öğrenci(string adı, string soyadı, int no) ad = adı; soyad = soyadı; numara = no; public void yazdır() Console.WriteLine(numara + " " + ad + " " + soyad); Doç. Dr. Aybars UĞUR 19

Örnek 9 Kalıtım II : Türetilmiş Sınıf class ErasmusÖğrenci: Öğrenci public string country; public void yazdır() base.yazdır(); Console.WriteLine(country); class Program static void Main(string[] args) ErasmusÖğrenci ogr = new ErasmusÖğrenci(); ogr.ad = "John"; ogr.soyad = "Doe"; ogr.numara = 25; ogr.country = "England"; ogr.yazdır(); Ekran Çıktısı: 25 John Doe England Doç. Dr. Aybars UĞUR 20

protected erişim belirleyicisi (protected access modifier) Kalıtım içeren durumlarda kullanılır. Türetilmiş alt sınıflar tarafından erişilebilmesi hariç private dır. Protected belirleyicisinin kullanıldığı metot veya değişkene tanımlandığı sınıf içerisinden veya bu sınıftan türetilmiş sınıflardan erişilebilir. Doç. Dr. Aybars UĞUR 21

Örnek 10 Özellikler (Properties) : Getter, Setter Bir alanı bu alana erişen metot ile birleştirirler. Değişkenler üzerindeki kontrolü artırırlar. Get ve set metotlarına da gerek kalmaz. class Maaş private int maaş; public int maaşözellik get return maaş; set if (value < 500) maaş = 500; else maaş = value; class Program static void Main(string[] args) Maaş m = new Maaş(); m.maaşözellik = 350; Console.WriteLine(m.maaşÖzellik); Ekran Çıktısı: 500 Doç. Dr. Aybars UĞUR 22

İndeksleyiciler (Indexers) Diziler System.Array sınıfı türünden birer nesnedirler. System.Array sınıfının üyelerinden biri olan Length özelliği dizinin eleman sayısını tutar. İndeksleyiciler, bir nesnenin bir dizi gibi indekslenebileceği bir mekanizma sağlarlar. Doç. Dr. Aybars UĞUR 23

Örnek 11 İndeksleyiciler (Indexers) class Öğrler public string[] mydata; public Öğrler(int boyut) mydata = new string[boyut]; class Program static void Main(string[] args) int boyut = 10; public string this[int indeks] get return mydata[indeks]; set mydata[indeks] = value; Öğrler ogrler = new Öğrler(boyut); ogrler[7] = "Kemal"; ogrler[6] = "Ali"; Console.WriteLine(ogrler[6]); Console.WriteLine(ogrler[7]); Console.WriteLine(ogrler[8]); Ekran Çıktısı: Ali Kemal Doç. Dr. Aybars UĞUR 24

Değişen Sayıda Argüman Alabilen Metot Tanımlamak static int topla(params int[] sayılar) params niteleyicisi kullanılır int t=0; for (int i = 0; i < sayılar.length; ++i) t+=sayılar[i]; return t; static void Main(string[] args) int toplam; toplam = topla(3,4,5); // 12 toplam = topla(7, 8, 9, 15); // 39 Console.WriteLine(toplam); Doç. Dr. Aybars UĞUR 25

AD UZAYI NAMESPACE Doç. Dr. Aybars UĞUR 26

Ad Uzayı (namespace) Ad Uzayı Tanımı: namespace Öğrenci1 class Öğrenci Doç. Dr. Aybars UĞUR 27

Ad Uzayı Kullanımı using Öğrenci1; şeklinde kullanabiliriz. Ad Uzayı mekanizması, isim çakışmalarını önler. Program ve Sınıfların farklı sürümlerinin oluşturulmasını sağlar. Doç. Dr. Aybars UĞUR 28

System bir ad uzayıdır. System Ad Uzayı Math, Console, Convert, String sınıfları, System ad uzayı altında yer alır. Kod içerisinde System. yazdığımızda System ad uzayı içerisindeki diğer elemanları da görürüz. System.String. yazdığımızda string sınıfına ilişkin hangi metotları kullanabileceğimizi görürüz. Doç. Dr. Aybars UĞUR 29

STRING SINIFI STRING CLASS Doç. Dr. Aybars UĞUR 30

String Sınıfı Metotları Method ToUpper() ToLower() ToTitleCase() Length() Concat() Contains() Compare() CompareTo() CompareOrdinal() Copy() Format() Insert() PadLeft(), PadRight() Remove(), Replace() Split() Trim() http://www.c-sharpcorner.com Meanings Creates a copy of a given string in upper case or lower case or in title case. Returns the length of the string. Returns a new string that is composed of two discrete strings. Determine if the current string object contains a specified string. Compares two strings. Returns a fresh new copy of an existing string. Formats string literal using other primitives like numerical data and other strings and the 0 notation we uses. Receives a copy of the current string that contains newly inserted string data. Returns copies of the current string that has been padded with specific data. Receives copy of string with modifications. Separates strings by a specified set of characters and places these strings into an array of strings. Trim method removes white spaces from the beginning and end of a string. TrimStart() TrimStart method removes characters specified in an array of characters from the beginning of a string. TrimEnd() TrimEnd method removes characters specified in an array of characters from the end of a string. Substring() ToCharArray() Returns a string that represents a substring of the current string. Returns a character array representing the current string. Doç. Dr. Aybars UĞUR 31

String Sınıfı string yapılandırıcıları, özellikleri, metotlarına ve diğer aytıntılarına : http://msdn.microsoft.com/enus/library/system.string.aspx bağlantısından da ulaşabilirsiniz. Doç. Dr. Aybars UĞUR 32

String Karşılaştırma string str1 = "abc"; string str2 = "abz"; Console.WriteLine(str1.CompareTo(str2)); // -1 döndürür. string str1 = "abc"; string str2 = "aba"; Console.WriteLine(str1.CompareTo(str2)); // 1 döndürür. string str1 = "abc"; string str2 = "abc"; Console.WriteLine(str1.CompareTo(str2)); // 0 döndürür. Doç. Dr. Aybars UĞUR 33

String Eşitlik Kontrolü if(str1 == str2) Java da farklı : Referans değerlerini karşılaştırır. Java da İçerikleri karşılaştırmaz. Equals ve CompareTo==0 şeklinde de eşitlik kontrolü yapılabilir. Doç. Dr. Aybars UĞUR 34

String Split Metodu Verilen string i parçalarına ayırır: string str1 = "abc 123 aaab derece"; String[] dizi = str1.split(); dizi içerisine 4 adet string parçası olarak atar. 0. abc 1. 123 2. aaab 3. derece http://msdn.microsoft.com/en-us/library/ms228388.aspx: char[] delimiterchars = ' ', ',', '.', ':', '\t' ; string text = "one\ttwo three:four,five six seven"; System.Console.WriteLine("Original text: '0'", text); string[] words = text.split(delimiterchars); Doç. Dr. Aybars UĞUR 35

Strings are immutable Strings are immutable--the contents of a string object cannot be changed after the object is created, although the syntax makes it appear as if you can do this. For example, when you write this code, the compiler actually creates a new string object to hold the new sequence of characters, and that new object is assigned to b. The string "h" is then eligible for garbage collection. string b = "h"; b += "ello"; Doç. Dr. Aybars UĞUR 36

String parameter example and ref keyword static void strmethod(string str) str = "Modified"; void strmethod(ref string str) static void Main(string[] args) string str = "Original"; Console.WriteLine(str); strmethod(str); Console.WriteLine(str); Console.ReadLine(); Output : Original Original strmethod(ref str); Output : Original Modified See also out keyword Doç. Dr. Aybars UĞUR 37