OBJECT ORIENTED PROGRAMMING TEMELLERİ

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "OBJECT ORIENTED PROGRAMMING TEMELLERİ"

Transkript

1 OBJECT ORIENTED PROGRAMMING TEMELLERİ Geçenlerde kitaplığımı kurcalarken eskimiş bir not defteri buldum, yıllar önce (sanırım ) OOP öğrenirken aldığım kısa notlarla karşılaştım, yazarak öğrenme metodunu kullanan biri olarak o zaman aldığım notlar nesne yönelimli programlama temelleri konusunda şimdi hâlâ geçerliliğini koruyor. Notlarımı derleyerek, imlâ hatalarından arındırarak ve bu günün yansımalarından birkaç not ekleyerek burada paylaşıyorum, umarım bu notlar faydalı olur. Yazılım kitaplarında nesne yönelimli programlama başlığı altında bu konu anlatılıp, nesne kavramı açıklanırken, Okul-Sınıf-Öğrenci örneği verilir. Öğrenci bir nesne ve öğrenciye erişmek için, önce okula sonra sınıfa sonra da öğrenciye (nesneye) erişilir. Daha önce, düşük seviyeli diller ile kod yazmayan, ilk öğrendiği dil C# gibi temeli nesneye dayanan bir dil ile uğraşan birisi, bu örnek sonrasında - e başka türlü nasıl olabilirdi ki zaten? gibi bir soruyu aklına getirebilir. Nesne yönelimli olmayan bir dil yazmış olan geliştiriciler, nesne yönelimli programlamanın ne ifade ettiği, sunduğu kolaylıkları, neden ihtiyaç duyulduğu gibi konuları kavrama konusunda avantajlıdırlar, bu nedenle kavranması açısından biraz geriye gidip nasıl aşamalardan geçildiğine değinmekte fayda var.

2 OOP öncesinde işler nasıl yürüyordu? Programlama dillerinin evrimi derin bir konu, bu nedenle 0-1 lere, instruction pointer lara kadar derinlere inmemize gerek yok. Kısaca özetleyecek olursak programlama dili kavramının ortaya çıktığı uzun yıllar öncesinden yana bu evrimi; doğrusal programlama, yapısal programlama ve nesne tabanlı programlama olarak üç başlık altında inceleyebiliriz. Doğrusal programlama, alt alta yazılan ve çoğu zaman aynı satırlardan oluşan, start, goto, end gibi ifadelerin kullanıldığı, program büyüdükçe karmaşıklaşan ve geliştirilmesi yeniden yazılması kadar bir zaman gerektiren bir yapısı olduğundan yapısal programlama kavramı geliştirilmiştir. Yapısal programlama da kodlar işlevselliklerine göre mantıksal olarak parçalara bölünebilirler ve bu sayede uzun ve karmaşık programların küçük parçalar haline getirilip yazılmasını mümkün kılmaktadır. Bu yapı üzerinde çalışmak için metotlar kullanılırken nesneye yönelimli programlamada ise sınıflar içinde metot yapısını veri yapısı ile ilişkilendirilir, nesneler her biri kendi içlerinde veri işleyebilir ve diğer nesneler ile çift yönlü veri transferinde bulunabilir, yapısal programlamada ise programlar sadece bir komut dizisi olarak görülebilmektedir. Bu nesne yönelimli programlamayı diğer yapılardan öne çıkaran en önemli özelliklerden biridir. Yüz binlerce satır kod nesne yönelimli bir dil ile yazıldığında yönetilmesi daha kolay olacaktır, çünkü kendi içerisinde yüzlerce nesneye bölünecektir. Amaç geliştirilen programın mümkün olduğu kadar küçük ve anlamlı parçalara bölüp, her parçayı bir türde nesne haline getirip daha sonra bu nesneleri gerektiği yerde kullanmaktır. Özet olarak oop reusable kodların yazılması, bu da yazılan programın esnetilebilmesi ve geliştirilebilmesinde büyük kolaylık sağlamaktadır. C++ programlama dilinin yazarı Bjarne Stroustrup a göre bir dilin kendisini nesne yönelimli olarak tanımlayabilmesi için, üç kavramı desteklemesi gerekir: nesneler, sınıflar ve kalıtım. Ancak nesne yönelimli diller; Encapsulation (sarmalama), Inheritance (Miras Alma) ve Polymorphism (Çok Biçimlilik) üçlüsü üzerine oturtulmuş diller olarak düşünülür. Tanımlamadaki bu değişimin nedeni, geçen yıllar boyunca encapsulation ve polymorphism in class ve inheritance gibi nesne yönelimli sistemler oluşturmanın bir iç parçası olduğunun farkına varılmasıdır. Sahi, başından beri nesne yönelimli programlama demişken nedir bu Nesne? Her şey nesnedir! Bu felsefi bir yaklaşım gibi oldu kabul ediyorum, bunu biraz açıklayalım. Her şey bir nesnedir demiştim, etrafınıza bir bakın, ilk gözünüze çarpan şey nedir? Ben bu makaleyi siyah 0.5 uç kullanan bir kalemle yazıyorum, bu kalemin bir ağırlığı, bir rengi, bir markası var, bunlar bu kelemin özellikleri. Aynı zamanda bu kalemin tepesindeki metal kapağa basıp içindeki ucu çıkartabiliyorum; bu da davranışı. Nesneler iki temel bileşenden oluşur. Bunlar özellik (property) ve davranış (behavior) dır. Burada kalem bir nesnedir. İşe.net tarafından bakınca, C# nesne yönelimli bir dildir ve bu dili kullananlar; tanımladığımız her şey System.Object ten türediğine göre her şey bir object(nesne)dir diyebilir..net tarafından bakılınca bu manaya da gelebilir ama bu sadece bir kavramdır, yani nesnenin tanımı değildir.

3 Bu konuştuklarımızın kod karşılığını görelim. Nesneleri yazmak için önce bir şablon(kalıp) oluşturur, daha sonra bu şablondan istediğimiz kadar nesneyi çıkartabiliriz. Bu şablonlara class, bu şablonlardan oluşturulan nesnelere de object adı verilir. Class ile object arasındaki ilişki bu şekildedir. class Kalem string Renk; string Marka; string Uc; int Uzunluk; int Agirlik; void Bas() // üzerine basılınca bir miktar uç çıkar Yukarıdaki kod örneğinde görüldüğü gibi, sınıf nesneyi tanımlayan bir veri türü, nesne ise sınıftan türetilebilen bir yapıdır. Nesneleri yazmak için önce bir şablon oluşturur, sonra bu şablondan istediğimiz kadar nesneyi çıkartabiliriz. Kalem k = new Kalem(); Yukarıdaki tek satırlık kodda new Kalem(); diyerek kalem sınıfının instance ını almış yani Kalem classından nesne türetmiş olduk. Peki, instance alınca ne oluyor? Burada Ram yapısına göz atmakta fayda var. Ram kısaca, stack ve heap olan iki alandan oluşur. Stack, local variable ların olduğu, heap ise class instance larının olduğu alandır. Kalem sınıfını instance alıp, değer atamak gibi birkaç işlem yapıp, bu işlemlerin ram e nasıl yansıdığını göstermek için basit bir stack-heap schema hazırladım. (Bu dökümanın sonunda yer almaktadır) Eğer linkteki pdf i incelediyseniz gördüğümüz gibi Kalem sınıfı k ile tanımladık (Kalem k;) ama türetmedik; türetmediğimiz için ram de stack alanına olarak atandı, k değeri Kalem sınıfına ulaşmak için bir değerdir. Kalem bilgisinin tutulabilmesi için Heap bölümünde tanımlanması (instance alınması) gereklidir. new Kalem() diyerek instance alıp ramdeki değişikliğe baktığımızda kalem nesnesinin bir adres ile ilişkilendirildiğini görüyoruz. Bu adres bizim için referans adresi, yani biz kalem nesnesini call ettiğimiz zaman bu adresten çağırılır, steak alanında, biz yeni bir instance almadan, yeni bir kalem nesnesi oluşturmaz. Steak heap yapısı detaylı bir konu; bu nedenle Memory management başlığı altında bu konuyu araştırmanızı öneririm.

4 Buraya kadar nesneleri tanımladık fakat tanımlanan nesne ile ilgili bir erişim sorunumuz var: Acces Modifiers (Erişim Belirleyiciler) Yazdığımız program içerisindeki classlara, bu classlar içindeki metodlara, değişkenlere nasıl ve ne zaman erişeceğimizi belirten kurallar var, bunlara Acces Modifiers (Erişim Belirleyiciler) denir. Bu kurallar nesne içerisindeki üyelerin erişim durumlarını belirler. Bunlar : public, private, protected, internal, protected internal dır. Şimdi bunları inceleyelim. public : Public olarak tanımlanan üye tüm erişimlere açıktır. protected : Kendi üyesi olduğu (tanımlandığı) sınıflardan ve bu sınıftan türetilmiş sınıflardan erişilir. private : Yalnızca üyesi olduğu sınıftan erişilir. internal : Aynı program(assembly) içerisinden erişilir. protected internal : Class ın içinden ve ondan türetilen sınıfların içinden erişilir. Nesneyi anlatırken yazdığımız Kalem sınıfı içerisindeki değişkenlerin bir erişim belirleyicisi olmadığını fark etmişsinizdir, yazılan her hangi bir nesne için erişim belirlenmemiş ise, bu nesnenin erişimi default olarak private dır. Aşağıdaki tabloda yapıların erişilebilirlik durumunu görebiliriz. Yapı Adı Default Erişilebilirlik Geçerli olabilen erişilebilirlik Enum İnternal internal public private protected Struct İnternal İnternal Public Interface Public Public internal Private (nested struct) Üyelerin erişebilirliği Public protected internal private protected internal Public İnteral private

5 Constructor (Yapıcı) Metot Bir sınıftan bir nesne oluşturulduğu zaman, yani nesneyi ram de inşa ederken başlangıç olarak o nesne ile ilgili yapısını değiştirecek bazı farklılıklar olsun isteyebiliriz, bunun için constructor adı verilen özel bir metodumuz var. Aslında bir nesneyi türetirken new anahtar sözcüğünü kullandığımızda default olarak bir constructor oluşturmuş oluruz, eğer kendi constructor ımızı oluşturmaz sak default olarak bu temel alınacaktır. (variable initilializer) Constructor sınıf adı ile aynı adı taşır, dışarıdan parametre alabilirler, geriye değer döndürmezler, overload yapılabilirler. (overload nedir? gibi bir soru var ise kafanızda, yazının ilerleyen bölümlerinde öğreneceksiniz) Şimdi Kalem sınıfında çalışarak bir constructor yazalım ve yazdığımız kodu yorumlayalım. public class Kalem public Kalem() Marka = "Faber Castell"; public Kalem(string marka) Marka = marka; private string Renk; private string Marka; private string Uc; private int Uzunluk; private int Agirlik; private void Bas() // üzerine basılınca biraz uç çıkar Kod Yorumu: Kalem adlı sınıfımızda bir constructor oluşturuyoruz, constructor sınıf adı ile aynı adı taşır, birden fazla constroctor olabilir, bu kod bloğunda iki tane constructors var, ilki default olarak markamızı tanımlayan, Faber Castell değerini verendir, biz bu nesneyi üretirken, marka değişkenine otomatik olarak Faber Castell değeri atanır. Nesneyi her ürettiğimiz yerde tekrar bu marka değişkenine değer atamak zorunda kalmayız. İstisnai durumlarda ise overload yapılabilsin diye, ikinci construcor parametre alarak marka değişkenine değer atanması sağlanır. int, byte, char gibi değer tiplerinin de yapıcı yordamları bulunmaktadır, kod yazarken bu değerlere tiplerine ilk değerlerini vermeden kullanmak istediğimizde hata alınır.

6 Destructor (Yıkıcı) Metot Oluşturduğumuz nesnenin, bellekten silinmeden önceki gerçekleştireceği son işlemi gerçekleştiren metoddur. Tilde (~) işareti ile başlar. public class Kalem ~Kalem() // bellekten silinmeden önceki gerçekleştirilecek işlemler Encapsulation (Sarmalama) Encapsulation adı verilen yapı, bir sınıf içerisindeki değişkenlere kontrollü bir şekilde erişimi sağlamak / denetlemek için kullanılan bir yapıdır. Class içerisindeki değişken privete yapılırak dışarıdan direkt erişilmesi engellenir, bu değişken içerisine değer atıp değer okumak için get ve set adı verilen metodlar kullanılır. Yani direkt değişkene değil, bu değişkene erişmek (işlem yapmak) için bu metodlar ile çalışılır. set değeri alıp değişkene atar, get de değeri geri döndürür, tabii bu işlem sizin belirlediğiniz, olması gereken kurallar çerçevesi içinde gerçekleşir. Basit bir örnek verecek olursak; kitap adında bir class ınız var ve bu class ın içinde yazar adı, yayın evi, kitap sayfası, baskı yılı vb. property ler mevcut. Bu property lerden kitap sayfasına, her kitabın 2 den fazla sayfası olmak zorunda olduğu için 2 sayısından az bir değer girdirmemeliyiz, buna teşebbüs edildiğinde de hata döndürmeliyiz, bu nedenle sayfa sayısı propertysini encapsulete edelim. (Property de nedir? En basit hali ile public int MyProperty get; set; şeklindeki yapıdır) public class Kitap public string yazaradi get; set; private int _sayfasayisi; public int sayfasayisi get return _sayfasayisi; set if (value <= 2) throw new Exception("Kitap Sayısı 2'den büyük olmalıdır."); _sayfasayisi = value; public string yayıneviadi get; set; public DateTime basimtarihi get; set;

7 Kod Yorumu : Sayfa sayısı property sini 2 den küçük ve 2 sayısına eşit olduğunda Kitap Sayısı 2'den büyük olmalıdır." Şeklinde bir hata dönecektir. Kitap class ı içerisindeki SayfaSayisi propertysini encapsulate etmiş olduk. Çok basit değil mi? Not: c# dilinin v6 sürümünde auto property initilalizers özelliği gelerek property yapısı biraz daha geliştirilmiştir public string Key get; = "ABC123"; public int ID get; set; = 17; set değerini kaldırarak Key propertysi sürekli ABC123 değerini döndürecektir. Ve readonly dir. Inheritance (Miras Alma, Kalıtım) Miras kelimesini tanımı olarak, en basit haliyle birinden başka birine kalan varlık anlamına geldiğini biliyoruz, bunun programlama tarafındaki anlamı ise; bir class içersindeki elemanların (property, metod) farklı nesneler tarafından kullanılabilmesini sağlayan yapıdır. Yine yayın evi örneğinden gidecek olursak; bir yayın evi sadece kitap değil, farklı türlerde baskılı ürün (aylık dergi, broşür) yayınlayabilir, bunların ortak özelliklerinden biri de baskı tarihinin olmasıdır. Yukarıda Kitap sınıfını düşünelim, yazaradi, yayinevi, sayfasayisi ve basimtarihi olarak propertyleri var, kitap classında basimtarihi olduğu gibi, benim brosur adlı bir nesnem olduğunda da basimtarihi ne, dergi adlı bir nesnem olduğunda da basimtarihi ne ihtiyac duyacağım, bu nedenle türeteceğim nesnede bu property leri tek tek yazmaktansa, bir tane class ım olsun(base class), bu class ın içinde benim oluşturacağım her class ta ihtiyacım olan propertyler olsun, ve ben oluşturduğum bu class ları (derived class), bu sınıf ile yani base class ile ilişkilendireyim. Bu yazdıklarımızı kod haline dönüştürüp yorumlayalım.

8 // Base Class ımız public class YayinEvi public string yayıneviadi get; set; public DateTime basimtarihi get; set; // Base Class tan inheritance almış Kitap sınıfımız public class Kitap : YayinEvi public string yazaradi get; set; private int _sayfasayisi; public int SayfaSayisi get return _sayfasayisi; set if (value <= 1) throw new Exception("Kitap Sayısı 1'den büyük olmalıdır."); _sayfasayisi = value; Kitap ki = new Kitap(); ki.yayıneviadi = "Everest Yayınları"; ki.basimtarihi = new DateTime(2009, 06, 01); ki.sayfasayisi = 367; ki.yazaradi = "Alev Alatlı"; ki.kitapadi = "HoolyWood'u kapattığım gün"; Kod Yorumu: Kitap sınıfının içerisinde yayıneviadi ve basimtarihi adlı propertyler olmamasına rağmen, bu sınıfı türettiğimizde, bu propertylere erişebildiğimizi görüyoruz, çünkü Kitap sınıfı, YayınEvi sınıfından miras aldığı için ve bu sınıfın elamanlarına erişebilmektedir. class Kitap : YayinEvi c# dilinde multiple inheritance yoktur, sadece bir sınıftan miras alabilirsiniz.

9 Abstract (Soyutlama) Inheritance olayını öğrendiğimize göre, olayı biraz daha ileriye götürelim. Soyut kavram, sözlük tanımı olarak; nesnelerin oluş tarzını ifade eden kavramlara soyut kavram denir. Bir restorana gittiğimiz zaman, bizimle ilgilenen garsona bize biraz besin getirebilir misin? diyebilir miyiz? Aklıselim bir insan isek cevabımız hayır olacaktır. Biraz besin yerine zeytinyağlı enginar dersek daha doğru olacaktır, çünkü besin soyut bir kavramdır, zeytinyağlı enginar ise besin sınıfına ait bir nesnedir. Bu örneğe kod tarafından yaklaşalım; kendisinden nesne üretmeye izin vermeyen, sadece miras alınabilen sınıfları abstract class olarak tanımlayabiliriz. Abstract classın içerisine, gövdesi olan abstract bir metod yazdığınızda ' cannot declare a body because it is marked abstract hatası alırsınız, çünkü abstract metodların gövdesi olmaz. Yine bu metodu private olarak tanımladığınızda virtual or abstract members cannot be private hatası alırsınız, yani hata metninden de anlaşılacağı üzere abstract metodlar private olamaz. Abstract base class mantığındadır, sadece temel oluşturmak için kullanılır, yani bu sınıf inheritance alındıktan sonra kullanılabilir, tek başına işlevi yoktur, bu nedenle en karakteristik özelliği kendisinden nesne üretmesine izin vermez, abstract olmayan bir sınıfın içerisinde abstract bir elaman olamaz. Abstract bir sınıfı, miras alan bir sınıf, bu miras aldığı abstract sınıfı içerisindeki metodu override eder. Kod tarafına göz atalım: public abstract class KitapBase public abstract int SayfaSayisi get; set; // KitapBase sınıfını inheritance almış Kitap sınıfımız. public class Kitap : KitapBase private int _sayfasayisi; public override int SayfaSayisi get return _sayfasayisi; set _sayfasayisi = value; Kod yorumu: Kitap sınıfı, base class olan KitapBase sınıfını miras alıyor ve SayfaSayisi property sini override ediyor.

10 Polymorphism (Çok Biçimlilik) Polymorphism; bir sınıftan miras alınan metodun, miras alındığı sınıftaki işlevi ile, miras alan sınıfta farklı işlevlerle çalıştırılabilme özelliğidir. Bu işlemin nasıl olduğunu görmeden önce bilmemiz gereken bazı kavramlar var: virtual : Metodun türetilmiş bir sınıfta geçersiz kılınmasını sağlamak için kullanılır. override : Inheritance alınan bir sınıftaki metodu tekrar yazarak, base class takini ezmiş, yoksaymış yani override etmiş oluruz. Bunun gerçekleşebilmesi için base class taki metodun virtual olarak tanımlanması gerekir, yani buna izin vermesi gerekir ki virtual un tanımını bu şekilde yapmıştık. overload : Türkçe karşılığı ile bir metodun aşırı yüklenmesidir, yani aynı isimde birden fazla metod farklı parametreler alabilir, ya da almayabilir. Hatırlarsanız Constructor ı anlatırken Kalem sınıfı örneği vermiştik, Kalem sınıfında iki tane constuctor vardı, biri sadece sadece Marka Değişkenini set ediyor, diğeri de dışarıdan parametre alıyordu. Yani iki farklı şekilde işleyişi vardı, yani overload edilebiliyordu. base : türetilmiş sınıfın içerisinden, türetildiği sınıftaki base class taki (public, internal, protected olarak tanımlanmış) elemanlara erişmek için kullanırız. Özetle Base class ı referans alır. (abstract olarak tanımlanmış üyeler için kullanılamaz) base sınıfı bir üst sınıfı temsil eder. grandparent-parent-child gibi bir yapıyı düşünelim, grandparent ta tanımlanış bir metoda child üzerinden this ile erişemeyiz. Sadece bir üst sınıfa, yani türetildiği sınıfa erişilebilir. this : bu sözcüğün base den farkı içinde bulunduğu nesneyi referans alır. Bu anlattıklarımızı pekiştirmek için basit bir kod bloğu yazalım. // Base classımız class Base public virtual void Yaz1() Console.WriteLine("Yaz1 base olan sınıftan, virtual olarak geldim"); public virtual void Yaz2() Console.WriteLine("Yaz2 base olan sınıftan, virtual olarak geldim"); public void Yaz() this.yaz1(); this.yaz2(); // Base class tan türetilmiş Print classımız class Print : Base public override void Yaz1() Console.WriteLine("derived olan sınıftan, override olarak geldim");

11 private static void Main() Print prt = new Print(); prt.yaz(); Console.ReadLine(); Kodun çıktısı aşağıdaki gibi olacaktır: derived olan sınıftan override olarak geldim Yaz2 base olan sınıftan, virtual olarak geldim Kod Yorumu: Kodun çıktısından da gördüğümüz gibi this sözcüğünün kullandık ve metodu çağırdık, var ise türetmiş sınıftan override edilmiş olanı, yoksa temel sınıftan asıl halini getirdi. Şimdi öğrendiğimiz bu yeni bilgiler dâhilinde polymorphisme dönelim. Bir sınıftan miras alınan metodun, (bu temel bir sınıf olabilir), bu metodun temel sınıftaki işlevi ile, miras alan sınıfta farklı işlevlerle çalıştırılabilme özelliğidir demiştik, şöyle bir senaryomuz olsun, çeşitli ürünler satan online bir dükkanınız var, Türkiye nin her yerine sabit bir tutar ile kargo gönderiyorsunuz, fakat sadece taşıma esnasında kırılabilmesi muhtemel ürünlerinizi (cam vazo gibi) korumalı kargo kutusunda gönderiyorsunuz, bu da kargo fiyatını farklılaştırıyor. Her ürün için farklı bir metod yazmak bir çözüm ama OOP ilkelerine ters bir çözümdür, peki bunu polymorphism ile nasıl yaparız bunu kod üzerinde görelim. // Base Classımız public abstract class Transfer public string KargoFirması get; set; public string TeslimSuresi get; set; public virtual double KargoUcreti() return 10.00; public class OzelUrun:Transfer public string UrunAdi get; set; public override double KargoUcreti() return 15.00;

12 Kod Yorumu : OzelUrun adlı classımız, base class olan Transfer classından miras alıyor, buraya kadar her şey anlaşılır durumda, fakat burada farklı bir durum var, iki class içinde de aynı isimli metod var biri virtual diğeride override olarak tanımlanmış. Base classımızdaki KargoUcreti() metodu her ürün için geçerli olup sadece özel ürünlerde farklı bir şekilde çalışması gerekiyordu. Bunun için baseclass ımızdaki KargoUcreti() metodunu override ederek içeriğini değiştirdik, böylece OzelUrun adlı classımızdaki KargoUcreti() metodu, bizim tanımladığımız şekilde çalışacaktır, base classımızdaki metod normal ürünler için değerini döndürürken, biz base class taki KargoUcreti() metodunu override ederek içeriğini değiştirdik ve bizim belirlediğimiz değerini döndürmesini sağladık. Dikkat ederseniz base classımızdaki KargoUcreti() metodu virtual olarak tanımlanmıştır, bu tanımlama bu metodun override edilebileceğini gösterir, yani buna izin verir, aksi takdirde override etmeniz mümkün değildir. Interface (Arayüz) Interface (arayüz ya da arabirim olarak Türkçeye çevirilmiş) bir sınıfın temelde hangi elemanlardan oluşmak zorunda olduğunu belirleyen şablondur, inheritance kavramında base bir sınıfımız vardı ve bu sınıfı miras alan derived class, base classtaki metodları, özellikleri vb. kullanabilirdi fakat bu zorunlu değildi. interface ise bunu mecburi kılan bir yapıdır, yani içerisindeki tüm elemanlar implement edilmek zorundadır, aksi takdirde class does not implement interface member InterfaceName şeklinde bir hata ile karşılaşırsınız. Bir class birden fazla sınıftan miras alamaz, fakat interface lerin multi inhertitance desteği vardır, yani bir class birden fazla interface den miras alabilir. interface içerisindeki metodlar default olarak abstract seviyesindedir ve içerisindeki tüm elemanlar public olarak tanımlıdır, interface i de soyut bir sınıf olarak düşünebiliriz. Az önceki örnekten gidelim, online dükkanınızda sattığınız her ürün için bir kargo işlemi gerçekleştirmek zorundasınız. Bunun için ürün özelliklerini içeren sınıfınız olduğu gibi, bu ürün sınıfının kargo bilgileri de olmak zorunda olacağından bu urun sınıfı kargo bilgilerinin olduğu bir Interface den implement olmak zorundadır. Bu konuştuklarımızın kod karşılığı aşağıdaki gibidir. interface IKargo string KargoFirması get; set; string TeslimSuresi get; set; void KargoUcreti(); public class Urun : IKargo public string UrunAdi get; set; public double UrunFiyati get; set; public string KargoFirması get; set; public string TeslimSuresi get; set; public void KargoUcreti() throw new NotImplementedException();

13 Kod Yorumu: Interfaceler bir standart olarak i harfi ile başlar. interface içerisindeki tüm elemanların miras alınan sınıf tarafından implement edilmek zorunda olduğunu söylemiştik. IKargo interface i içerisindeki tüm elemanların, onu miras alan Urun sınıfı içerisinde görüyoruz. Bir sınıf birden fazla interface den miras alabileceğini söylemiştik, bunun için araya bir virgül eklemek yaterli. public class Urun : IKargo, IBaskaBirInterface, IBaskaBirInterfaceDaha, Bir sınıf hem bir class, hem de birden fazla interface ile ilişkilendirilebilir. public class Urun : BaseClass, IBaskaBirInterface, IBaskaBirInterfaceDaha, Son Olarak Bazı Notlar : Bu makaledeki örnekler c# dili baz alınarak hazırlandı, peki OOP sadece c# dili için geçerli bir kurallar kümesi değil, içinde bulunduğumuz zamanda pek çok dilin OOP desteği mevcut. (php, ruby vb.) sadece syntax farklılıkları var, bunları kısaca örnekleyecek olursak C# inheritance -> class Kitap : YayinEvi Php inheritance -> class Kitap extends YayinEvi Java inheritance -> class Kitap extends YayinEvi Ruby inheritance -> class GoodDog < Animal Görüldüğü gibi, c# dilinde : miras alınacak sınıf : işareti ile belirtilmişken, java ve php de extends ile, ruby de de < işareti ile belirtilmiştir. Çalışma mantığı aynıdır. Bu makale, yazının başında da belirttiğim gibi benim notlarımdan oluşan, for beginners seviyesinde bir makale; oop bir makalede özetlenmeyecek kadar geniş bir konu, bu noktada okuduğum ve çok faydasını gördüğüm bir kitabı tavsiye etmek istiyorum, Beginning Object-Oriented Programming with C# - Jack Purdum. Kitabın kindle ve baskılı halini amazon dan temin edebilirsiniz. Engin Tosun Makalenin yayındaki link adresi: (kaynak gösterilmek şartı ile kullanılabilir)

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

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

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kalıtım Kavramı Java da Çok Biçimlilik Kavramı Fonksiyonların Çok Biçimliliği Yapıcı Fonksiyonun Çok Biçimliliği Java da Kalıtım Kavramı 4 Kalıtım;

Detaylı

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

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

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu WEB PROGRAMLAMA II Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta Oturum yönetimi 2. Hafta Cookies kullanımı ve oturum yönetimi

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

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

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

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

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - I Bu bölümde;

Detaylı

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

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

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

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

NESNE TABANLI PROGRAMLAMA Temel Kavramlar NESNE TABANLI PROGRAMLAMA Temel Kavramlar Özkan BİNGÖL Gümüşhane Üniversitesi Not: Bu sunumda, Yrd. Doç. Dr. Özlem AYDIN ve Doç. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından,

Detaylı

Operatörlerin Aşırı Yüklenmesi

Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Tıpkı fonksiyonlara yaptığımız gibi öperatörlere de aşırı yükleme yapabiliriz.yani, operatörlere normal görevlerinin yanında farklı görevler

Detaylı

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA GİRİŞ SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA Yazılım teknolojileri son 40 yılda artan bir ivmeyle gelişmeye devam etmektedir. Buna paralel olarak zamanla artan ve çeşitlenen kullanıcı istekleri doğrultusunda

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

Kalıtım (Inheritance)

Kalıtım (Inheritance) Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.

Detaylı

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

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları

Detaylı

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

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

İç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.

İç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. İçerik Geçen ders: Kalıtım ( inheritance ) Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

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

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz. C# da Diziler Diziler için aynı tipteki verilerin tutulduğu bir koleksiyon diyebiliriz. Örneğin integer verinin bir yığın şeklinde tutulması için dizileri kullanırız. C# da diziler referans tipinde değişkenlerdendir.

Detaylı

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

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

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

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

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

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) İçerik Geçen ders: Kalıtım ( inheritance ) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

7. HAFTA. Erişim Belirleyiciler

7. HAFTA. Erişim Belirleyiciler 7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar

Detaylı

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

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

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

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 6 Prof. Dr. Ümit KOCABIÇAK Öğr. Gör. Özgür ÇİFTÇİ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim"

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

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

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

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.

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. 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. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

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;

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; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 9: Sınıf İçerik Sınıf Tanımı Nesne Tanımı İkili Kapsam Çözme Operatörü UML ile Sınıfların Gösterimi 2 Sınıf kavramı, nesne-tabanlı programlamanın temelini oluşturur.

Detaylı

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

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

Detaylı

NESNE TABANLI PROGRAMLAMA

NESNE TABANLI PROGRAMLAMA NESNE TABANLI PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Nesne Tabanlı Programlama Sınıf, Nesne Kavramları Kapsulleme, Kalıtım ve Çok Biçimlilik Kavramları Nesne Tabanlı Programlama NESNE TABANLI PROGRAMLAMA

Detaylı

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:

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: BÖLÜM 4 Değişken Tipleri 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: type identifier [ = value][, identifier [=

Detaylı

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

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 14: Çoklu İşlev İçerik Çoklu İşlevin Gerçekleştirilmesi Saf Sanal Fonksiyonlar ve Soyut Sınıflar Sanal Yıkıcı Fonksiyonlar Statik ve Dinamik Bağlama 2 Çoklu İşlev

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Kalıtım, Temel/Alt Sınıf, Temel/Alt Sınıf Tip Dönüşümleri, Temel Sınıf Yapıcıları, super Anahtar Kelimesi, Sınıf Üyesi Görünürlüğü, Statik Üyeler ve Final Üyeler Sınıflar Programcı tarafından

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama Nesne Yönelimli Programlama Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır. Konular Giriş Alt Sınıflar

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9 ARAYÜZLER VE DAHILI SINIFLAR Diğer programlama dillerinde olan çoklu kalıtım (multiple inheritance) özelliği Java programlama dilinde yoktur. Java programlama dilinde

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

Nesneye Yönelik Programlama (OOP) 7.Hafta

Nesneye Yönelik Programlama (OOP) 7.Hafta Nesneye Yönelik Programlama (OOP) 7.Hafta Örnek : Yapılar vs Sınıflar Yapılar ve sınıflar büyük oranda benzerlik gösterirler. Yapıların sakladığı veriler her zaman public yani erişime açıktır. Sınıflarda

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 OOP Hatırlatma Bu bölümde Nesneye Yönelik

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - II Bu bölümde;

Detaylı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2) BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Kalıtım - II Bu bölümde; Soyut Sınıflar,

Detaylı

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

if (ad == Sabri) Console.WriteLine(Merhaba Sabri. Ne zamandır gözükmüyodun...); Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

C# Metotlar ve Metot Tanımlama

C# Metotlar ve Metot Tanımlama C# Metotlar ve Metot Tanımlama Metot Kavramı : Metotlar bir program içerisinde aynı işi gerçekleştiren satırları belirli düzende sadece bir kez oluşturarak gerektiğinde tekrar tekrar kullanabilmemizi sağlayan

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Metot Yeniden Tanımlama, Metot Aşırı Yükleme, Dinamik Metot Yükleme, Soyut Sınıflar, Soyut Metotlar, Arayüzler, Çoklu Kalıtım, Anonim Sınıflar ve java.lang.object Sınıflar Programcı

Detaylı

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

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir. Sınıflar (Classes) Çözülmesi istenene problemi çeşitli parçalara ayırıp her bir parça arasındaki ilişkiyi gerçeğine uygun bir şekilde belirleme tekniğine nesne yönelimi denir. Bu parçalar arasındaki ilişkiyi

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi

Detaylı

Görsel Programlama-I (Visual Programming) 1.Hafta

Görsel Programlama-I (Visual Programming) 1.Hafta Görsel Programlama-I (Visual Programming) 1.Hafta 2011-2012 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2012 Muhammer İLKUÇAR 1 Görsel Programlama Console

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

1. SINIFLAR Sınıf (Class) Mantığı

1. SINIFLAR Sınıf (Class) Mantığı 1. SINIFLAR Günlük hayatta kullanılan pek çok kelime bir sınıflandırmanın sonucu ortaya çıkmıştır. Örneğin insan, ev, araba vb. kelimeler bir tek nesneyi değil, ortak davranış ve özellikleri olan nesnelerin

Detaylı

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

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 3 Prof. Dr. Ümit KOCABIÇAK Öğr. Gör. Özgür ÇİFTÇİ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim"

Detaylı

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

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Java Programlama (Crash Course) Class, Nesne, Metodlar, Overloading,

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 12 Prof. Dr. Ümit KOCABIÇAK Öğr. Gör. Özgür ÇİFTÇİ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim"

Detaylı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

Nesne Yönelimli Programlama ve Kalıtım

Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama Modern dillerin bir çoğunda nesneye yönelimli programlama tekniği desteklenmektedir. Bu teknik yazılım geliştirmeyi kısaltan ve sistematik

Detaylı

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN 16/04/2009

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN  16/04/2009 Nesne Yönelimli Programlamaya Giriş - 2 Cem Ahmet MERCAN http://www.be.itu.edu.tr/~mercan/ 16/04/2009 Nesne Yönelimli Programlama Kavramlar Class (Sınıf): Nesneyi tanımlayan teorik yapıdır. Nesnenin yetenek

Detaylı

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

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı