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

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

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

Transkript

1 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

2 BÖLÜM - 1 OOP Hatırlatma Bu bölümde Nesneye Yönelik Programlama ile ilgili genel hatırlatma yapılacaktır. Sınıf (Class) Nesneler (Object) Kapsülleme ve Arayüz (Encapsulation & Interface) Kalıtım (Inheritance) Çok Biçimlilik (Polymorphism) 2

3 Nesneye Yönelik Programlamaya Giriş Nesne yönelimli programlama (OOP), (Object Oriented Programming) nesneyi merkezine alan bir bilgisayar programlama yaklaşımıdır. Nesneye-yönelik programlamanın temel kavramları; büyük programlar yazmayı kolaylaştıran soyutlama, programları değiştirmeyi ve korumayı kolaylaştıran saklama ve programları kolayca genişletilebilir kılan sınıf hiyerarşisi dir. 3

4 Soyutlama Önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. 4

5 Soyutlama (devam...) Soyutlama temel olarak veri ve kontrol soyutlaması olarak yapılır. Bir veri tipinin nasıl yapılandığının ayrıntılarını göz ardı etmemize izin veren soyutlama tarzına veri soyutlaması denir. Kontrol soyutlaması ise yapısal programlama ile gelen altprogram, fonksiyon gibi kavramlar üzerinde yapılan soyutlamadır. 5

6 Nesne Kavramı Nesne, niteliklere ve davranışlara sahip somut bir varlıktır(entity). Bir nesnenin niteliği onun sahip olduğu özelliklerdir. Nesnenin bir niteliğinin değeri o nesnenin durumunu oluşturur. Bir nesnenin davranışları onun/onunla yapabildiği/yapılabilen şeylerdir. 6

7 Nesneye Yönelik Programlama Bir programlama dilinin Nesneye Yönelik Programlama dili olması için şu özelliklere sahip olması gereklidir: 1. Sınıf (Class) 2. Nesneler (Object) 3. Kapsülleme ve Arayüz ( Encapsulation & Interface ) 4. Kalıtım (Inheritance) 5. Çok Biçimlilik (Polymorphism) 7

8 Sınıf Kavramını Anlamak (devam ) Nesneye Yönelik programlama yaklaşımı ile düşündüğünüzde, her şey bir nesne ve her nesne bir sınıfın somutlaşmış bir örneğidir. Bir sınıf her nesne için farklı olan veri bileşeni, yani üye değişkenler barındırır. Ayrıca nesnelerin özellikleri, sınıf içerisinde kullanılan diğer değişkenler ile karışmaması için field olarak adlandırılır. 8

9 Sınıf Kavramını Anlamak (devam ) Nesnenin örnek değişkenlerinin içerikleri, o nesnenin durumunu belirler. Önceden yaratılmış bir sınıftan nesne türeten bir program ya da bir sınıfa class client(istemci sınıf) denir. 9

10 Sınıflardan Nesne Yaratmak Sınıfları tanımlarken öncelikle bir sınıf başlığı/tanımı yaratılmalıdır. Sınıf başlığı üç parçadan oluşur: 1. İsteğe bağlı bir erişim belirleyici, 2. class anahtar kelimesi, 3. Sınıfın adı [erişim belirleyici] class [sınıfadı] Örneğin; public class Isci Sınıf adları nesnelerin tipini tanımladığı için genellikle tek bir addan oluşur. 10

11 Sınıflardan Nesne Yaratmak (devam ) Sınıf Erişim Belirleyicisi Public Açıklama Sınıfa erişim sınırsızdır Protected Sınıfa erişim bulunduğu sınıf ve bu sınıftan türetilen sınıflar ile sınırlıdır. Internal Private Sınıfa erişim ait olduğu assembly ile sınırlıdır. Sınıfa erişim ait olduğu sınıf ile sınırlıdır. 11

12 Üye Değişkenleri ve Üye Metotları Sınıfların içerisinde private field ların kullanımı, nesneye yönelik dillerin bir özelliği olan information hiding örneğidir. Gerçek hayatta information hiding yöntemiyle sıkça karşılaşırız. Örneğin arabanın deposuna ne kadar yakıt kaldığını öğrenmek için depoya baktığımızda göremeyiz. Bunun yerine gerekli bilgiyi bize aracın gösterge panelindeki yakıt göstergesi vermektedir. 12

13 Üye Değişkenleri ve Üye Metotları (devam ) Benzer şekilde Nesneye Yönelik Programlama yaklaşımında veri field ları sıkça private olarak kullanılır fakat içerdikleri değerlere public metotlar aracılığıyla erişilir. 13

14 Nesne Yaratma (devam ) Isci benimasistanim = new Isci(); ifadesindeki new operatöründen sonra gelen Isci() bölümü bir metot gibi gözükmektedir. Aslında bu Isci nesnesinin constructor ı başka bir deyişle kurucu metodudur. Sınıfınız için bir constructor oluşturmadığınızda otomatik olarak varsayılan kurucu metot sağlanmaktadır. 14

15 Properties Sıklıkla, bir nesne ile çağırılan metotlar, o nesnenin fieldlarının durumunu değiştirmek için kullanılır. Daha sonra Isci sınıfından benimasistanim adında bir nesne yarattığınızda bu metodu aşağıdaki gibi çağırabilirsiniz: benimasistanim.kimliknoayarla(21); Bu teknik farklı dillerde de bu şekilde kullanılabilir Java da programlarken benzer işlemler için properties ler kullanılır. 15

16 Properties (devam ) Property, sınıfın bir fieldına erişim sağlayan bir sınıf üyesidir. Propertyler field ların nasıl ayarlanacağını ve erişimin nasıl olacağını tanımlar. Properties, private field ları ile public metotlar arasındaki en iyi özellikleri bir arada barındırır. Public metotlar gibi private verileri dışarıdan müdahalelere karşı korur, Field lar gibi adları basit değişken adlarının kullanıldığı gibi kullanılır. Properties yarattığınızda, kullandığınız sözdizimi daha kolay anlaşılabilir ve doğal olur. 16

17 Properties (devam ) Bir property, set erişimcisine sahipse yazılabilir, get erişimcisine sahipse okunabilir olmaktadır. Bir property sadece get erişimcisine sahipse bu property sadece okunabilir (ing.: read-only) olur. Eğer kullanılan field private yerine public olarak tanımlansaydı property kullanmamıza gerek kalmazdı. Fakat bu yöntem (Sınıfın fieldlarını private, onlara erişmeyi sağlayan metotları public tanımlanması), nesneye yönelik programlamanın tutarlı olması için genel olarak kullanılmaktadır. 17

18 Const Fieldlar Bir değişkeni const olarak tanımladığınızda, tanımlayıcısında static belirleyici anahtar kelimesi geçmese bile static olarak tanımlanır. Diğer bir deyişle bu field, bu sınıftan yaratılmış tek bir nesneye değil de, tamamıyla sınıfa aittir. Static bir field yarattığınızda, bu sınıftan ne kadar sayıda nesne türetilirse türetilsin, static field ın bir kopyası sınıfın tümü için saklanır. Bu field a o sınıftan nesne yaratmadan da ulaşılabilir. 18

19 this Referansı Bir sınıf yaratıldığında, sınıfın kaynak kodunun bir kopyası bilgisayarın hafızasında saklanmaktadır. Bununla birlikte, er ya da geç bu sınıftan defalarca nesne üretilecektir. Her yeni bir nesne ürettiğinizde, nesnenin her üye değişkeni için bellekte saklama alanı sağlanır. this referansı ile sınıfın o anki instance ına veya nesnesine ulaşabilirsiniz. 19

20 this Referansı Sadece nonstatic metotlar this referansını kabul etmektedir. Nonstatic metotlar üye metotları oldukları için her bir nesnede farklı çalışmaktadırlar ve bu this referansının kullanımını mantıklı kılmaktadır. this referansı kodda karışıklığı engellemek için kullanılabilir. 20

21 Kurucu Metotlar Herhangi bir sınıftan bir nesne yarattığınızda aşağıdaki gibi bir ifade kullanılır: Isci yeniisci = new Isci(); Kurucu metotlar(constructor) bir nesnenin oluşmasını sağlayan metotlardır. Bir sınıf için yazmamış olsanız bile, yarattığınız sınıflar için otomatik olarak parametre almayan public bir kurucu metot sağlanır. Parametresi olmayan kurucu metotlara sınıfın varsayılan kurucu metodu (default constructor) denir. 21

22 Kurucu Metotlar (devam ) Isci nesnesinin fieldlarının başlangıç değerlerinin varsayılan değerler olması istenmediğinde veya Isci sınıfından bir nesne yaratılırken ek işlemler yapmak istediğinizde varsayılan kurucu metot yerine kendi kurucu metodunuzu oluşturabilirsiniz. Sınıfın kurucu metotları sınıf ile aynı isme sahip olmak zorundadır. Kurucu metotların geri dönüş türleri yoktur. (int, float veya void olarak tanımlanmazlar) 22

23 Kurucu Metotlar (devam ) Kurucu metotlara aktarılan parametrelerin değerlerini kullanarak yaratılan nesnenin propertylerinin ya da fieldlarının değerlerini her bir nesne için ayarlamak mümkündür. Sınıf için yeni bir kurucu metot yarattığınızda otomatik olarak yaratılan kurucu metot erişilemez olur. Kurucu metotlar aşırı yüklenebilir.(ing.: overloading: Aynı adda birden fazla metot tanımlanması). Sınıflara birden fazla kurucu metot tanımlamak, bu sınıfı kullanacak olan kullanıcılar için esneklik sağlamaktadır. 23

24 Kurucu Metot Başlatıcıları Kurucu metotlar içerisindeki kod tekrarlarına alternatif olarak, kurucu metot başlatıcılarını (constructor initializers) kullanılabilir. Kurucu metot başlatıcıları kurucu metotların gövdelerinden önce yazılan ve içerisindeki ifadenin gövdedeki ifadelerden önce uygulanan bir deyimdir. 24

25 Nesne Başlatıcılarını Kullanmak Nesne başlatıcısı, bir sınıftan nesne yaratırken o nesnenin yaratılması sırasında erişilebilir üyelerine veya property lerine değer atanmasına izin verir. Örnek: Parametresiz bir kurucu metot içeren ve ve KimlikNumarasi adında public bir property içeren bir sınıfta, aşağıdaki ifadede olduğu gibi nesne başlatıcısı(object initializers) kullanılabilir: Isci yeniisc = new Isci { KimlikNo = 104 }; 25

26 Nesne Başlatıcılarını Kullanmak Bu ifade çalıştırıldığında, ilk olarak sınıfın varsayılan kurucu metodu çalışır ve sonrasında ise nesne başlatıcısı ile KimlikNo propertysine değer ataması yapılır. Çoklu değer atamalar nesne başlatıcısı ile aralarına virgül, konularak aşağıdaki ifadedeki gibi yapılabilir: Isci yeniisc = new Isci { KimlikNo = 104, Maas = 970}; 26

27 Nesne Başlatıcılarını Kullanmak Nesne başlatıcılarının kullanımı, farklı başlangıç değerlerine sahip çoklu nesne yaratılmasına izin vermektedir. Bunu yaparken çoklu kurucu metotların kullanılmasını gereksizleştirmiştir. Ek olarak nesne başlatıcılarının kullanımı farklı propertyleri için farklı başlangıç değerleri atanmasına izin verir. 27

28 Yıkıcı Metotlar Yıkıcı metot, o sınıftan yaratılmış bir nesne yok edildiğinde yapılacak olan eylemleri içeren metotlara denir. Genellikle sınıftan yaratılmış olan nesne kapsam dışında kaldığında yok edilmektedir. Kurucu metotlarda olduğu gibi, sınıf için bir yıkıcı metot tanımlanmadığında otomatik olarak bir yıkıcı metot sağlanmaktadır. 28

29 Yıkıcı Metotlar (devam...) Yıkıcı metot tanımlamak için, ~ (Tilda) işareti ile sınıfın adı olarak tanımlanır. ~ [sınıfınadı] () { } Yıkıcı metotlara herhangi bir parametre geçirilemez. Yıkıcı metotlar aşırı yüklenemezler(overload). Geri dönüş değerine sahip olmazlar. 29

30 Yıkıcı Metotlar (devam...) Yıkıcı metotlar çağırılmaya gerek kalmadan otomatik olarak uygulanırlar. En son yaratılan nesne ilk olarak yok edilir. Sınıftan yaratılmış bir nesne, kodda onunla yapılacak bir işi olmadığında yok edilmeye uygun hale gelir. Yıkıcı metotlar program kapatılırken yapmak istediklerimizi (bağlantı kapatma, geçici dosya silme vb.) yapmamızı sağlarlar. 30

31 Kalıtım (Inheritance) Kavramı Sınıfları anlamak gerçek hayatta nesneleri düzenlemenize yardımcı olur. Kalıtımı anlamak onları daha net bir şekilde organize etmenizi sağlar. Tüm "object-oriented" programlama dilleri kalıtımlardan aynı sebep için faydalanmaktadır: Programlarda kullanılan nesneleri düzenlemek, Kalıtımla bildiklerinizi kullanarak yeni nesneleri yaratmak. 31

32 Kalıtım (Inheritance) Kavramı (devam...) Kalıtım, sizin genel bir kategori hakkındaki bildiklerinizi daha spesifik bir kategoriye uygulamanıza olanak sağlayan prensiptir. class [childsinifadi] extends [parentsinifadi] { } 32

33 Kalıtım (Inheritance) Kavramı (devam...) Nesneye Yönelik programlama dillerinde yaratılan sınıflar, verisini ve metotlarını daha önceden var olan bir sınıftan kalıtabilir. Farklı bir sınıftan kalıtarak bir sınıf yaratıldığında, yeni sınıfın metotları ve veri fieldları sağlanmış olur. Böylece önceden yazılmış ve test edilmiş metotlar ve fieldlar kullanılabilir. 33

34 Kalıtım (Inheritance) Kavramı (devam...) Sınıf diyagramlarında sırasıyla 3 ayrı bölüm bulunur: Sınıf ismi, Sınıfın verisi ve metotları. Sınıfların arasındaki yukarıyı gösteren ok alttaki sınıfın üstteki sınıftan kalıtılarak oluşturulduğunu belirtir. Oku bu şekliyle düzenleme Unified Modelling Language (UML) diyagramlarında kullanılır. UML analistlerin ve programcıların sistemi açıklamak için kullandığı grafiksel araçtır. 34

35 Kalıtım (Inheritance) Kavramı (devam...) Bir sınıfı bir diğer sınıftan kalıtarak yaratılması aşağıdaki faydalar sağlar: Zaman tasarrufu: Aynı sınıfı tekrar yaratmadan onun property ve metotlarını kullanarak yeni bir sınıf oluşturulduğunda zamandan tasarruf edilir. Hata payında azalma: Child sınıf önceden kullanılmış ve test edilmiş bir sınıf olan Parent sınıftan kalıtılmıştır. İşleri kolaylaştırması: Parent sınıfı önceden kullanmış herhangi birisi için Child sınıfı anlamak ve kullanmak kolay olmakta ve böylece sadece sınıfın yeni özelliklerine odaklanabilmektedir. 35

36 Kalıtım (Inheritance) Kavramı (devam...) Kısaca kalıtımı kullanabilme kabiliyeti, programı daha kolay yazma, anlama ve daha az hata ile karşılaşmayı sağlar. Kalıtımı kullanarak, düzgün bir şekilde, hızlıca yeni sınıflar yaratılabilir. Kalıtılmış bir sınıf daha fazla genişletilebilir. Diğer bir deyişle, yavru sınıflar kendi içerisinde yavru sınıflara sahip olabilirler. Kalıtım tek yönlü çalışmaktadır: Yavru sınıf, ana sınıftan kalıtılarak oluşturulur, ters yönde oluşturulamaz. 36

37 G E N E L L E Ş T İ R M E Ö Z E L L E Ş T İ R M E Sınıfların Genişletilmesi (devam...) Daha Genel Sınıflar Sekil Parent SuperClass BaseClass Dortgen Ucgen Daire Dikdortgen Kare Child SubClass DerivedClass Daha Özel Sınıflar 37

38 Temel Sınıfın Metotlarını Ezme (Override) ve Çok Biçimlilik (Polymorphism) 38

39 Temel Sınıfın Metotlarını Ezme Önceden var olan bir sınıftan kalıtarak, genişletilmiş yeni bir sınıf oluşturduğunuzda, yeni sınıf içerisinde temel sınıfın tüm özellik ve metotları tanımlanmış olur. Bazen parent sınıfın fieldları, propertyleri ve metotları tam olarak child sınıftan yaratılan nesneler için uygun olmayabilir. Farklı işlemler yapan fakat aynı isimdeki özellik veya metotların kullanımına çokbiçimlilik (polymorphism) denmektedir 39

40 Temel Sınıfın Metotlarını Ezme (devam...) Çokbiçimlilik, birçok form içeren anlamına gelmektedir. Aynı adda olmalarına rağmen farklı işlemlerin yer aldığı metotlar için kullanılır. Override anahtar kelimesi kullanılarak parent sınıfın metotları ezilebilir. 40

41 Temel Sınıfın Metotlarını Ezme (devam...) Kalıtılarak yaratılmış olan sınıfta sanal bir metodu(virtual metot) ezmek zorunlu değildir; Kalıtılarak oluşturulmuş bu sınıf, temel sınıfın versiyonunu da kullanabilir. Yavru sınıf, temel sınıfın metotlarına (Java da) super anahtar sözcüğü ile erişebilir. 41

42 Soyut Sınıflar (Abstract Class) 42

43 Soyut Sınıflar Kalıtım kavramını anladıktan sonra, sınıfların yaratılması daha da kolaylaşmaktadır. Superclassları düşünmenin bir diğer yolu ise, subcasslarının ortak özelliklerinin tümünü düşünmek olabilir. Kalıtılmış sınıf incelendiğinde, ebeveyn sınıfının daha da genel olduğu gözlenir. 43

44 Soyut Sınıflar (devam...) Bazen child sınıfların daha genel bir örneğini oluşturmak için ebeveyn sınıf oluşturulur. Örneğin, önceden bir Sanatci yaratmamış olabilirsiniz; herbir Sanatci bir Ressam ın, Sair in ya da Muzisyen in daha özel halidir. 44

45 Soyut Sınıflar (devam...) Sonradan genişletilmek üzere yaratılan fakat kendisinden nesne oluşturulmayan sınıflara soyut sınıf (abstract class ) denir. Soyut sınıfları tanımlarken abstract anahtar kelimesi kullanılır. Soyut sınıflar da normal sınıflar gibi fiedlar ve metotlar içermektedir. Normal sınıflardan farklı olarak bu sınıflardan new operatörünü kullanarak nesne yaratılamaz. Bunun yerine, soyut sınıflar basitçe farklı nesnelerin kalıtımla yaratılması için bir ana sınıf sağlar. Metotlar gerekli olmasa da soyut sınıflar genellikle soyut metotlar(abstract methods) içerirler. Soyut bir metot hiçbir metot ifadesi içermez; bu sınıftan türetilen sınıflar da bu metotlara uygun bir şekilde uyarlanmalıdır. Diğer bir deyişle kalıtılmış sınıfta bu metotlar ezilmelidir. 45

46 Soyut Sınıflar (devam...) Soyut bir metodun başlığında, isteğe bağlı erişim belirleyicisi, abstract anahtar kelimesi, istenilen metodun tipi ve adı bulunur: public abstract string Analiz(); Soyut metotlara kıvırcık parantez sağlamasına gerek yoktur. Bu metotların gövdeleri kalıtılan sınıfta tanımlanır. Soyut bir sınıftan kalıtılarak yeni bir sınıf yaratıldığında, yeni sınıfta override anahtar kelimesini kullanarak soyut metotların gövdeleri oluşturulmalıdır. 46

47 Soyut Sınıflar (devam...) virtual anahtar kelimesi ile tanımlanan metot child sınıfta ezilmesi zorunlu değildir. Fakat abstract tanımlanmış metot ezilmek zorundadır. 47

48 Soyut Sınıflar (devam...) Soyut sınıflar, birden fazla child sınıf için ortak özelliklerin ve/veya metotların ihtiyaç olduğu durumlarda ortak kısımları toparlama amacı ile kullanılabilirler. Soyut sınıf kullanımları önemlidir, ancak zorunlu değildir. Soyut sınıftan nesne türetilemez. Soyut sınıflar private olamazlar. Soyut sınıflar sealed olamazlar. 48

49 Arayüzler (Interfaces) 49

50 Arayüzler (devam...) Soyut sınıflar gibi arayüzler, herhangi bir sınıfın üyelerinin ya da metotlarının koleksiyonudur. Bu metotlar herhangi bir sınıf tarafından, arayüzün soyut metotlarının tanımı sağlandığı sürece (override edildiği sürece) kullanılabilirler. Soyut sınıfların içerisinde bazı metotlar soyut olmayabilirdi. Fakat bir arayüzün içerisindeki tüm metotlar soyut olmalıdır. 50

51 Arayüzler (devam...) Bir arayüz tanımlanırken interface anahtar kelimesi kullanılır. Arayüz adlandırmaları, başına I harfi eklenerek adlandırılır. interface IHareketEdebilen { } int HareketEt(); Herhangi bir sınıf IHareketEdebilen arayüzünü implemente ettiğinde, ayrıca geriye int ifadesi döndüren HareketEt() metodunu da içermiş olur. 51

52 Arayüzler (devam...) Arayüzlerden nesne yaratılamamaktadır. Soyut sınıfların arayüzlerden farkı ise soyut olmayan metotlar barındırabilmeleridir. Arayüzlerin barındırdığı tüm metotlar soyut olmalıdır. 52

53 Arayüzler (devam...) Bir sınıf sadece bir sınıftan türetilebilir fakat birden fazla arayüzü implemente edebilir. Örneğin Cocuk sınıfını ele aldığımızda, Yetiskin sınıfından türetilerek oluşturulmuştur. Aynı zamanda iki arayüzü de implemente etmektedir: ICalisabilen ve IOynayabilen. class Cocuk implements Yetiskin, ICalisabilen, IOynayabilen Diğer uygulamalarda bulunan bir metodu barındıran bir sınıf yaratmak için önceden var olan bir arayüz implemente edilir. 53

54 Arayüzler (devam...) Arayüzler bir sözleşme olarak düşünülebilir. Bir sınıf bu arayüzü implemente ediyorsa sözleşmeye uymak zorundadır. 54

55 Arayüzler (devam...) Başlangıçta ne zaman arayüz (Interface) ne zaman soyut sınıf (Abstract Class) kullanılacağına karar vermek zordur. Abstract bir sınıfın bütün metodlarını abstract yaparak onu da aynı bir interface gibide kullanabiliriz. Tipik olarak, child sınıflara bazı verilerin ve metotların aktarılması isteniyor ve bunlardan bazılarının ezilmesi gerekiyorsa soyut sınıflar kullanılır. Her bir metot ezilmek istenilirse arayüz oluşturulur. 55

56 Arayüzler (devam...) Nesnelerin daha spesifik bir örneğini oluşturmak istiyorsak soyut sınıflar, davranışlarının benzemesini istiyorsak arayüzler yaratılır. Abstract sınıfların genellikle IS-A (dır,dir) ilişkilerinde, kalıtım(inheritance) özelliğini kullanarak kod tekrarını azaltmak için kullanılır. Interface sınıfların ise daha çok CAN-DO (yapabilir..) tarzı ilişkilerde değişen kavramları uygulamadan soyutlamak için kullanılır. 56

57 Yararlanılan Kaynaklar Aykut Taşdelen, C++, Java ve C# ile UML ve Dizayn Paternleri, Pusula Yayıncılık, İstanbul, 2014 Eric Freeman, Head First Design Patterns, O'Reilly Media,2004 Stephen Stelting & Olav Maassen, Applied Java Patterns, Prentice Hall PTR,

58 İYİ ÇALIŞMALAR Yrd. Doç. Dr. Deniz KILINÇ 58

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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 - 4 Tasarım Kalıpları - II Bu bölümde; Facade

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ı

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 - 3 Nesneye Yönelik Programlamaya Giriş 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 - 3 Nesneye Yönelik Programlamaya Giriş Bu

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ı

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ı

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ı

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ı

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ı

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ı

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 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 Yazılım Tasarımına Giriş Bu bölümde;

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 - 3 Tasarım Prensipleri Bu bölümde; Tasarım

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 - 4 Tasarım Kalıpları - II Bu bölümde; Singleton

Detaylı

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ı

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ı

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

YZM 2118 Yazılım Mimarisi ve Tasarımı YZM 2118 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Volkan TUNALI Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM 10.4 Tasarım Kalıpları - IV Bu bölümde;

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ı

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ı

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ı

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ı

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 - 3 Tasarım Prensipleri Bu bölümde; Tasarım

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ı

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ı

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ı

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ı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiği

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ı

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ı

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ı

TASARIM KALIPLARI-DEVAM. Singleton Adapter

TASARIM KALIPLARI-DEVAM. Singleton Adapter TASARIM KALIPLARI-DEVAM Singleton Adapter 1 Singleton (Yegane/Tekil) Tasarım Kalıbı Singleton tasarım kalıbı; bir sistem içerisinde yalnızca bir nesne üretilerek bu nesnenin kullanılması gerektiği durumlarda

Detaylı

Java Programlamada Paket Yapısı Ve Import

Java Programlamada Paket Yapısı Ve Import Java programlamada paket yapısı ve import Java Programlamada Paket yapısı ve Java programları paketlerden oluşmaktadır. Paketlerin içinde sınıflar ve arayüzler bulunur. İstenirse var olan paketlerden başka

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ı

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ı

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 - 3 Tasarım Kalıpları Bu bölümde; Anti-Patternler

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ı

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ı

Nesne Tabanlı Programlama. Ders Notları

Nesne Tabanlı Programlama. Ders Notları Nesne Tabanlı Programlama Ders Notları Nesneye tabanlı programlamanın temellerini kavrayabilme Java temelleri ve Netbeans editörünü kavrayabilme Sınıf ve nesne kavramlarını anlayabilme Kalıtım konusunu

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından

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ı

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ı

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ö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ı

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir? Sınıf Diyagramları Sınıf diyagramı statik bir diyagramdır. Bir uygulamanın statik görünümünü temsil eder. Sınıf diyagramı sadece bir sistemin farklı yönlerini görselleştirmek, açıklamak ve belgelemek için

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ı

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ı

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler Fundamentals, Design, and Implementation, 9/e Üç Şema Modeli Üç şema modeli 1975 de ANSI/SPARC tarafından geliştirildi Veri modellemeninç ve rolünü

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Nesne Yönelimli Programlama BİM-222 2/II 1+0+2 2 3 Dersin Dili

Detaylı

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği Nesneye Yönelik Programlama Uygulama 1 Senaryo: Kisi sınıfı TCKimlikNo, Isim ve Adres bilgilerine sahip olup, Adres bilgisi de aynı zamanda bir sınıftır. Adres

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ı

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ı

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ı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA SANAL FONKSİYONLAR VE ÇOK BİÇİMLİLİK Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü GİRİŞ C++, hem derleyici-zamanlı hem de çalışmazamanlı çok biçimliliği destekler.

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ı

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

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 VII 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 2 KOD YAZMAYA BAŞLANGIÇ 11.Net Framework 11 Yeni Proje Oluşturmak

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ı

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ı

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

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ı

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ı

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

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;

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ı

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 İşaretçiler ve Diziler Fonksiyon

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ı

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ı

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ı

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ı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 3 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Sınıflar ve Fonksiyonlar Tekrar kullanılabilir kodlar 1 Nesne Tabanlı Tasarım

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 Bellek ve Adresleme İşaretçi Kavramı

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ı

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ı

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu Java ile Nesne Merkezli ve Fonksiyonel Programlama 3. Bölüm Soyut Sınıflar (Abstract Classes) Akın Kaldıroğlu Kasım 2015 Küçük Ama Önemli Bir Konu Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eğitim

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ı

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ı

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ı

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ı

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ı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 4 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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 13: Miras İçerik Miras Kavramı Miras Yönteminin Uygulanması Erişim Etiketleri: public, private, protected Miras ve Yapıcı Fonksiyonlar Üst Sınıf Tanımlamasında

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

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ı

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ı

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ı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

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ı

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ı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 5 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ı

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ Amaçlar: 1- Arayüzler (Interfaces) 2- Soyut Sınıflar ve Metotlar(Abstract classes and methods) Uygulama-1: interface:cihaz ac() kapat() goster(string) class: TV class: LCD class: Projector... Cihaz adındaki

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ı

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 Dosya İşlemleri (Rastgele Erişim)

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ü Genel Bilgiler Ders konuları 1. Programlamaya Giriş 2. Program Denetimi ve Operatörler 3. Nesnelerin

Detaylı