Module ve Mixin Module nedir? 17.2 Neden Module?

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

Download "Module ve Mixin Module nedir? 17.2 Neden Module?"

Transkript

1 17 Module ve Mixin 17.1 Module nedir? En genel anlamıyla, modül (module), programın iyi düzenlenmesini sağlayan yapı taşlarıdır. modül, fiziksel olarak düzenlenmiş ve farklı dosyalara yazılmış Ruby kodlarının lojik olarak biraraya getirilmesini sağlar. Bir modül değişkenler, yürütülebilir kodlar, fonksiyonlar, sınıflar içerebilir. İçerdiği öğeler farklı dosyalarda, farklı fiziksel ortamlarda olabilir. Bir modül bir programa çağrılınca, o modülün içindekiler, sanki o programa yazılmış gibi davranırlar Neden Module? Belli bir işi yapmak için metot tanımlamayı öğrik. Belli nitelikleri ve davranışları olan nesneler yaratmak için de sınıf (class) tanımlamayı biliyoruz. Bunlar programımızın istediğimiz eylemleri yapması için yararlı öğelerdir. Ama, bir programda yazdığımız metodu ya da sınıfı başka bir programda kullanmak istersek, şu ana kadar, kes-yapıştır yöntemi dışında bir yol bilmiyoruz. Çok sayıda metot ve sınıf kullanan büyük programlarda kes-yapıştır yöntemi ideal bir yöntem değildir. Onun yerine, önceden yaratılan metotları ve sınıfları kullanmanın daha iyi bir yolu olmalıdır. Modül (module) bu kolaylığı sağlar. Sınıfları incelerken, Bir Ruby sınıfının en çok bir tane üst sınıfı olabileceğini, ama istenildiği kadar alt sınıfları olabileceğini söylemiştik. Tabii, alt sınıfların da başka alt sınıfları olabilir. Böylece atadan oğula giden sa-

2 216 BÖLÜM 17. MODULE VE MIXIN çaklar oluşur. Ancak, uygulamada bir sınıfta, daha önce başka yerde tanımlanmış olan metotları çağırıp kullanmak gerekir. Tabii, kullanılacak metotların tekrar sözkonusu sınıfta yeniden tanımlanması mümkündür. Ama bu yol çok sayıda tekrarı getirir ve nesne tabanlı programlamanın özüne aykırı düşer. Dolayısıyla, daha önce tanımlanmış metotları ve sabitleri tekrar tekrar tanımlamadan kullanmanın bir yolu bulunmalıdır. C++ dilinde bu sorun, bir sınıfın birden çok üst sınıfı olmasına izin verilerek aşıldı. Ancak, bir sınıfın üst sınıflarından ve alt sınıflarından oluşan atalar ve oğullar, karmaşık bir düğümler kümesi yarattı. Bu yapı, C++ programcısına yeni zorluklar getirdi. Java dili, bu sorunu aşmak için arayüzleri (interface) kullandı. Java nın bulduğu yöntem C++ dilinde karşılaşılan zorlukları kolayca aştığı için geniş kabul gördü. Ondan sonra ortaya çıkan nesne tabanlı diller, sorunu benzer yöntemlerle çözme yoluna gittiler. Ruby nin getirdiği çözüm yolu, düşünce olarak Java ve Python un izlediği yola benzer. Ama teknik ayrıntılarda büyük ayrılıklar vardır Module Ruby nin yukarıda açıkalanan probleme çözümü module yapısı ile verildi. Modül (module) sınıflar, metotlar ve sabitler içeren bir birimdir. Tanımı sınıf tanımına benzer. Aslında her sınıf bir module dir. Modül içinde anlık metotlar (instance methods) ve module metotları olabilir. Anlık metotlar, sınıf içindeki anlık metotlar gibi davranırlar. Onlara ancak bir nesne içinden erişilebilir. Dolayısıyla modülün bir nesne içine konulması gerekir. mixin denilen bu eylemi biraz sonra ele alacağız. Oysa module metotlarını çağırmak için modülü içeren bir nesne üretilmesi gerekmez. Modüllerin iki önemli yararı vardır: 1. Her modülün ki aduzayı vardır. Aduzaylarını bilgisayarımızın kayıt ortamında yarattığımız dizinlere benzetebiliriz. Modüller, büyük programlarda aynı adlı nesnelerin çakışmasını önler. Örneğin aynı adı alan iki metot farklı modüller içine konulursa, her biri ki modülü içindeki rolünü oynar; sonra yazılan öncekinin yerini almaz. Bir modül içindeki öğelere (sabit, metot, sınıf) ancak o modül içinden erişilebilir. [Bir Dizin içindeki dosyalar imiş gibi düşününüz] 2. Modüller başka sınıfların nesneleri içine konulabilir; yani modüller

3 17.3. MODULE 217 mixin uygulamasına izin verirler (Bunu biraz sonra açıklayacağımızı söylemiştik). Liste Her metot bir modüldür. Her sınıf bir modüldür. Modüller sabitler ve metotlar içerir. Modüller aduzayı olarak kullanılır. Modül bildirimi için sözdizimi şöyledir: module Ad deyim1 deyim Module Tanımı Liste module Kurum d e f selam puts " Merhaba " 5 Modül sabitleri sınıf sabitleri gibidir; adları büyük harfle başlar. Modül metotları da sınıf metotları gibi tanımlanır. Ama modüller iki tür metot içerebilir: Anlık metot, module metodu. Program module RuhHali IYIMSER = " iyimserim " KOTUMSER = " kötümserim " 5 d e f selam r e t u r n " Ben #{IYIMSER}. Sen n a s ı l s ı n? " d e f RuhHali. selam 10 r e t u r n " Ben #{KOTUMSER}. Sen n a s ı l s ı n? "

4 218 BÖLÜM 17. MODULE VE MIXIN 15 puts ( " Sabit çağırma : RuhHali : : IYIMSER" ) puts ( RuhHali : : IYIMSER) puts ( " Module Metodu çağırma : RuhHali. g r e e t " ) puts ( RuhHali. selam ) Açıklamalar: Program 17.1, RuhHali adlı bir modül tanımlıyor. Bu modül IYIMSER ve KOTUMSER adlı iki sabit ile selam adlı anlık bir metot ve RuhHali.selam adlı bir module metodu içeriyor. Öntakısız yazılan selam metodu anlık (instance) bir metottur. Modül adını öntakı olarak alan RuhHali.selam metodu ise bir module metodudur. Bu modülü bir sınıfa dönüştürmek için ilk satırındaki module yerine class yazmak yeterlidir. Tanımları benzer olmasına karşılık, sınıf ile module arasında önemli bir fark vardır: Sınıflardan nesne üretilebilir. Alt sınıfları tanımlanabilir. Üst sınıftaki özelikler oğullara kalıtsal olarak geçer (inheritance). Oysa, modüllerin nesnesi ve alt modülleri olmaz. Son söylediklerimize bakarak, modüllerin ne işe yaradığı sorusu akla gelebilir. Sınıf gibi tanımlanıyor ama sınıfın nitelikleine bile sahip değilse, neden modül ile uğraşıyoruz? Bu sorunun yanıtını, aslında bu bölümün girişinde verdik. Ruby nin Class sınıfının önemli modülleri vardır. Math modülüne hepimiz aşinayız. Math modülünün sabitlerini ve metotlarını izinsiz kulanırız. Örneğin, PI sabiti, sqrt metodu, trigonometrik ve loharitmik fonksiyonlar bunlardandır. Ruby de Class sınıfının verdiği ikinci önemli modül Kernel adını alır. Kernel modülü şimdiye dek kullandığımız print, puts, gets gibi metotları bize sunan modüldür. Bunların metotlarını listelemek için methods metodunu kullanabilirsiniz: Kernel.methods irb etkileşimli kabuğunda yazacağınız bu komut size Kernel modülünün bütün metotlarını verecektir. Sabitler Aslında sabitler birer değişkir; tek farkları değerlerinin değişmiyor oluşudur. Çok istiyorsanız sabitin değerini elbette değiştirebilirsiniz; ama o zaman Ruby sizi uyaracaktır.

5 17.3. MODULE 219 Modül den Sabit Çağırma Modül den sabit çağıran sözdizimi örneği: aaa modül, ccc çağrılacak sabit ise aaa::ccc yazılır. Modül_adından sonra ard arda iki tane üst üste iki nokta (::) yı izleyen sabit_adı. Örnek 17.1 de RuhHali::IYIMSER deyimi, modülden IYIMSER adlı sabiti çağırır. Modül den Metot Çağırma Modül den module metodu çağıran sözdizimi şöyledir: aaa modül, mmm çağrılacak metot ise, aaa.mmm yazılır. Modül_adı, nokta bağlacı (.), metot_adı. Örnek 17.1 deki RuhHali.selam modül metodunu çağırmak için RuhHali.selam deyimi yeterlidir. Ama, anlık metot için, puts (selam) deyimi iş yapmayacaktır. O metodu ancak RuhHali modülünü içeren bir nesne içinden çağırabiliriz. include Bir sınıftan üretilen nesne içine bir modülü çağırmak için include (module_adı) deyimi yeterlidir. Bu deyimden sonra modül içindeki her şey nesne içine girecektir. Örnek 17.1 deki selam anlık metodunu çağırmak için puts (selam) deyimi yeterlidir.

6 220 BÖLÜM 17. MODULE VE MIXIN 17.4 mixin Aslında, yukarıda yaptıklarımız mixin işlemini gerçekleştirmiştir. Özetlersek, include metodu ile bir modülü bir nesne içine koymuş oluruz. O andan itibaren, modülün bütün öğeleri nesnenin olur; onlara nesne içinden adlarıyla erişilebilir. Program 17.1 ye puts (selam) deyimini ekleyiniz. irb nin 1 undefined l o c a l v a r i a b l e or method selam f o r main : Object ( NameError ) hata uyarısını verdiğini göreceksiniz. Bunun nedeni, modül içindeki anlık metoda doğrudan erişmek istememizdir. Anlık metotlara ancak bir nesne içinden erişilebilir. Öyleyse, önce bir sınıf tanımlayalım, o sınıfın bir nesnesi içine include metodu ile modülü çağıralım. Ondan sonra modülün selam adlı anlık modülüne erişebiliriz Aduzayları 17.6 index Aduzayı kavramı başka dillerde de kullanılır. Birbirleriyle ilgili program öğelerinin adlarını mantıksal (logic) olarak bir araya getiren bir yapıdır. Ruby de her module bir aduzayı belirler. Module öğeleri ki aralarında iletişim kurabilirler; ama yapı dışarıya kapalıdır. Sanki çevresi kalın duvarlarla çevrilidir. Dışarıdan modülün öğelerine erişim için özel yöntemler gerekir. Onları biraz sonra ele alacağız. Örnek 17.1 ile 17.2 ile tanımlanan Daire ve Kare modüllerinin içerdiği anlık alan_bul metodu ile cevre_bul module metotlarının adları aynıdır. Ama bunlar farklı aduzaylarında yer aldığı için çakışmazlar. Öncekiler dairenin alanı ve çevresini bulurken, sonrakiler karenin alan ve çevresini bulur. Aşağıda iki modül bildirimi yapılmıştır. Her iki modülde yer alan aynı adlı metotlar, birbirleriyle çakışmaz, ki modülleri içinde varlıklarını ve işlevlerini sürdürürler Örnek #! / usr / bin /ruby

7 17.6. INDEX 221 module Daire 4 PI = R = 3 d e f alan_bul alan = PI (R 2) 9 d e f Daire. cevre_bul cevre = 2 PI R 14 puts ( " Dairenin y a r ı ç a p ı n ı ç a ğ ı r : Daire : : R" ) puts ( Daire : : R) puts ( " Dairenin ç e v r e s i n i bulan module metodunu ç a ğ ı r : Daire. cevre \ _bul " ) 19 puts Daire. cevre_bul 1 / / Örnek #! / usr / bin /ruby module Kare KENAR = 3 6 d e f alan_bul alan = KENAR KENAR d e f Kare. cevre_bul 11 cevre = 4 KENAR puts ( " Karenin b i r kenarı : Kare : :KENAR" ) 16 puts ( Kare : :KENAR) puts ( " Karenin ç e v r e s i n i bulan module metodunu ç a ğ ı r : Kare. cevre \ _bul " ) puts Kare. cevre_bul 1 / 3 12 /

8 222 BÖLÜM 17. MODULE VE MIXIN Module Çağırma : include 17.7 include Bir modülü bir sınıf içine çağırmak için include anahtar sözcüğünü kullanırız. Çağrılan modülün her şeyi sınıfın öğesi olur. Liste c l a s s Personel i n c l u d e Kurum selma = Personel. new 6 selma. selam Modül den Nesne Üretilemez Program 17.2 ile tanımlanan Kurum modülünden new operatörü ile bir nesne yaratmayı deneyelim. Derleyici aşağıdaki uyarıyı vererektir. uyarı, modulün new metodunun olmadığını; dolayısıyla onun bir nesnesinin yaratılamayacağını söylüyor. Kurum.new #=> undefined method new for Kurum:Module 17.8 Sınıf ile Modül Karşılaştırması 17.9 Çağrı Yöntemleri load, require, include, ext load require include ext Hepsi aynı işleve sahipmiş gibi görünüyor.

9 EXTEND 223 Tablo 17.1: Sınıf ile Module Karşılaştırması sınıf (class) module üretim (instantiation) üretilebilir üretilemez kullanım nesne yaratılır mixin, aduzayı üst sınıf module object öğeleri metotlar, sabitler, değişkenler metotlar, sabitler, sınıflar metotlar sınıf metodu, anlık metot module metodu, anlık metot kalıtım eylemleri kalıtsal alır/verir kalıtım yok içerme içerilemez sınıfta ve başka modülde include metodu ile içerilebilir genişleme ext metodu ile genişleyemez; kalıtım ile genişleyebilir üretilen modül genişleyebilir: singleton load : Bir dosya içeriğini yükler. load deneme.rb Aynı dosya birden çok kez yüklenebilir (load). Sonuncu etkin olur. require : Bir dosyadan seçilenleri alır require deneme Birden çok kez seçim yapılabilir. İlk yapılan seçim etkindir. include : Modülü, çağıran sınıftan üretilen nesne içine alır ve nesnenin öğeleri gibi kullanılmasını sağlar. include deneme ext : Sınıfın metotlarını ekleyerek onu çağıran modülü genişletir. ext deneme Sınıf, modüldeki metoda sahipse, modül sonradan çağrılmış olsa bile sınıfın metodu etkin olur. Başka bir deyişle, sınıf daha baskındır. Çağrılan iki modülde aynı adlı metot varsa, son çağrılandaki etkin olur, önce çağrılan modüldeki ihmal edilir. Bir modül iki kez çağrılırsa, ilk çağrı etkin olur, sonraki çağrı yok sayılır.

10 224 BÖLÜM 17. MODULE VE MIXIN Uygulamalar Liste c l a s s Soyut i n c l u d e A i n c l u d e B 4 i n c l u d e A # => e t k i s i z d i r ; i l k ç a ğ r ı g e ç e r l i d i r Liste module A d e f a1 puts a1 ç a ğ r ı l d ı 5 module B d e f b1 puts b1 ç a ğ r ı l d ı 10 module C d e f c1 15 puts c1 ç a ğ r ı l d ı c l a s s Test 20 i n c l u d e A i n c l u d e B i n c l u d e C d e f d i s p l a y 25 puts " Modüller included i l e ç a ğ r ı l d ı " o b j e c t=test. new 30 o b j e c t. d i s p l a y o b j e c t. a1 o b j e c t. b1 o b j e c t. c1 Liste Array sınıfının local_variables metodu, yerel değişkenleri listeler: # encoding UTF 8 2 module ModuleM m1, m2 = 4

11 UYGULAMALAR puts " module i ç i n d e " puts l o c a l _ v a r i a b l e s d e f method1 v, w = 3 12 puts " method i ç i n d e " puts l o c a l _ v a r i a b l e s 17 c l a s s Some x, y = 2 puts " c l a s s i ç i n d e " puts l o c a l _ v a r i a b l e s 22 method1 t1, t2 = 7 27 puts " I n s i d e t o p l e v e l " puts l o c a l _ v a r i a b l e s Program module Meyveler = k i r a z d e f s e l f. s e t ( x = x 7 d e f s e l f. 12 p T. get #=> k i r a z T. s e t ( elma ) p T : : get #=> elma Program 17.3, bir module içindeki anlık değişkene bir sınıf içinden erişimi gösteriyor. Program module Kimlik a t t r _ a c c e s s o r : kimlik_no d e f i n i t i a l i z e = 123

12 226 BÖLÜM 17. MODULE VE MIXIN c l a s s Personel 10 i n c l u d e Kimlik d e f i n i t i a l i z e s u p e r d e f kimlik_no_yaz 15 m = Personel. new 20 m. kimlik_no_yaz #=> 123 Program # encoding UTF 8 3 module Kediler say = 2 c l a s s Kedi d e f ses_ver 8 puts " Miyauuu... " d e f yemek puts "... " 13 d e f kuyruk_oynat puts " s i n i r l e n i n c e kuyruğumu oynatırım! " 18 d e f pençe_at puts " Olmaz, canın yanar! " 23 x = 5 t e k i r = Kediler : : Kedi. new t e k i r. kuyruk_oynat i f x >= Kediler : : say Program #encoding : utf 8 3 module Hafta ILK_GUN = " Pazar " d e f Hafta. ayda_hafta puts " Bir ayda dört hafta var "

13 UYGULAMALAR d e f Hafta. senede_ hafta puts " Bir y ı l d a 52 hafta var " 13 c l a s s On_sene i n c l u d e Hafta s e n e _ s a y i s i =10 18 d e f ay_sayisi puts Hafta : : ILK_GUN s a y i =10 12 puts s a y i 23 d1=on_sene. new puts Hafta : : ILK_GUN Hafta. ayda_hafta Hafta. senede_hafta 28 d1. ay_sayisi

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ı

Mantıksal İşlemler. 7.1 true, false, nil

Mantıksal İşlemler. 7.1 true, false, nil 7 Mantıksal İşlemler 7.1 true, false, nil Doğru ya da Yanlış değer alan önermelere (ifadelere) mantıksal (logic) deyimler ya da boolean deyimler denilir ([5]). Bir çok dilde mantıksal işlemler true ve

Detaylı

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi

Ruby. Prof.Dr.Timur Karaçay Başkent Üniversitesi Ruby Prof.Dr.Timur Karaçay Başkent Üniversitesi Eylül 2014 2 Aren e ve Altan a ii Önsöz Ruby dilinin yaratıcısı Yukihiro Matsumoto, onu kısaca Matz diye çağırırlar, yarattığı dili şöyle anlatıyor: Ruby

Detaylı

(Sözlük, dictionary, birleşik array, map)

(Sözlük, dictionary, birleşik array, map) 14 hash (Sözlük, dictionary, birleşik array, map) 14.1 Hash Sınıfı Array ambarı, içindekileri tamsayılarla (index) damgalayıp sıralayan harika bir yapıdır. Ama bazı durumlarda indis ya yoktur ya da kullanılması

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ı

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ı

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları

Döngüler. Tablo 15.1: Ruby de Başlıca Döngü Yapıları 15 Döngüler Belirli bir iş birden çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü yapıları o deyim(ler)i istenildiği kadar tekrarlar. Ruby de bu işi yapan çok sayıda döngü yapıları vardır.

Detaylı

Ruby Sınıfları. 3.1 Ruby Yorumlayıcı Bir Dildir

Ruby Sınıfları. 3.1 Ruby Yorumlayıcı Bir Dildir 3 Ruby Sınıfları Bir programlama dilini öğrenirken izlenebilecek en iyi yol yoktur. Konuları sistematik olarak öğrenmeye kalkarsanız, öğrenme olgusunun pedagojik kısmı yok olur. En öne alınması gereken

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ı

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ı

Bölüm 10 Statik ve Anlık Öğeler

Bölüm 10 Statik ve Anlık Öğeler Bölüm 10 Statik ve Anlık Öğeler Statik ve Anlık Öğeler Statik öğeler, bir sınıfta static sıfatıyla nitelendirilen değişkenler ve metotlardır. Bunlara sınıf değişkenleri de denilir. static nitelemesi almayan

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ı

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ı

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ı

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ı

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ı

Karmaşık Sayılar Karmaşık Sayı Yaratma

Karmaşık Sayılar Karmaşık Sayı Yaratma 10 Karmaşık Sayılar Matematik derslerinden bilindiği gibi a ile b iki gerçel (real) sayı ve i = 1 olmak üzere z= a +bi sayısı karmaşık (complex) bir sayıdır. (Bazı yerde i yerine j yazılır.) i sayısı sanal

Detaylı

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109 vii 1 Neden Ruby? 2 Ruby Kurulumu 5 Windows ta Ruby Kurulumu 5 Linux ve Mac OS ta Ruby Kurulumu 6 Doğru Geliştirme Ortamının Seçimi 6 Diğer Ruby Uyarlamaları 9 Örnek Kodlar Hakkında 10 İnternet Adresi

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ı

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ı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

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ı

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ı

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ı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir. İST 205 Bilgisayar Programlama III C Programlamaya Giriş ve Matematiksel-İstatistiksel Uygulamalar Y.Doç.Dr. Levent Özbek Ankara Üniversitesi Fen Fakültesi İstatistik Bölümü Tel: 0.312.2126720/1420 ozbek@science.ankara.edu.tr

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ı

Öğ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ı

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ı

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ı

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ı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

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ı

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ı

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ı

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan

Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan 2 C Programlarının Yapısı Bir C programı C fonksiyonlarından oluşur. Bunlar arasında main() adı verilen ana fonksiyon daima olmalıdır. C fonksiyonları programı oluşturan yapıtaşlarıdır. Bir C programının,

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

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ı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

KOD PARÇACIKLARI 1 / 5

KOD PARÇACIKLARI 1 / 5 KOD PARÇACIKLARI 1 / 5 Kod Parçacıkları (CodeSnipet) Kod parçacıkları paneli animasyon yazılımının beşinci versiyonunda gelmiş bir yeniliktir. Kod yazmak yerine panelden ilgili kodu seçip çift tıklamak

Detaylı

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while

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ı

Bölüm 9. Altprogramlar ISBN

Bölüm 9. Altprogramlar ISBN Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni

Ruby Nedir? 1.1 Amaçlar. 1.2 Ruby nin Yapısal Sıradüzeni 1 Ruby Nedir? 1.1 Amaçlar Bu kitabın asıl amacı, Ruby on Rails Web Framework u ile web programcılığı yapacaklara gerekli olan Ruby bilgilerini vermektir. Bunu yaparken, kitap okura şu becerileri de kazandıracaktır:

Detaylı

Bölüm 12. Nesne yönelimli programlama desteği

Bölüm 12. Nesne yönelimli programlama desteği Bölüm 12 Nesne yönelimli programlama desteği 12. Bölüm konuları Giriş Nesne yönelimli programlama Nesne yönelimli diller için tasarım konuları C++ dilinde nesne yönelimli programlama desteği Nesne yönelimli

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ı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. 9 Integer Sınıfı Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır. Integer Literal Tamsayı gösteren metinler, 1 0, 1, 123, 123456789012345678901234567890 biçiminde yalnızca

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2015 2016 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 8 Mar. 2016 PHP de Değişken Tipleri Dizi (Array) Aynı değişken içerisinde birden fazla değer tutmak

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ı

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ı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 11: Bileşim, Arkadaş ve Diğer Araçlar İçerik Bileşim Arkadaş Fonksiyonlar ve Sınıflar Arkadaş Fonksiyonlar Arkadaş Sınıflar Sabit Nesneler Sabit Üye Fonksiyonlar

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

Top level widget. 1 Kaynak kodları yazarken widgetlerin özgün (original) adlarını kullanmak zorundayız.

Top level widget. 1 Kaynak kodları yazarken widgetlerin özgün (original) adlarını kullanmak zorundayız. 2 Tk Sınıfı 2.1 Ana Taşıyıcı Top level widget Widget leri 1. incelemeye başlamadan önce, GUI alet çantalarının çalışma ilkelerini açıklamak yararlı olacaktır. Bir görsel arayüz hazırlarken, öncelikle widgetleri

Detaylı

Fonksiyonlar -Genel Test- A

Fonksiyonlar -Genel Test- A 1 Fonksiyonlar -Genel Test- A 1. C dilinde fonksiyon bildirimi için hangisi gereklidir? (a) Fonksiyonun döndüreceği veri tipi (b) Fonksionun adı (c) Fonksiyon parantezi ( ) (d) Hepsi 2. C dilinde fonksion

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ı

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 Kodlarına Yorum Satırı Eklemek Java Paket Kavramı Java Kütüphane Kavramı Konsoldan Veri Çıkışı ve JOPtionPane Kütüphanesi JOptionPane Kütüphanesi Kullanarak

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

https://twitter.com/farukbozan 19 Şubat 2016 Cuma

https://twitter.com/farukbozan 19 Şubat 2016 Cuma Bugünkü yazımda çok basit ve temel anlamda Spring ile XML tanım tabanlı bean okuma işlemini anlatmaya çalışacağım. Spring framework bizim yerimize nesnelerin birbirine olan bağımlılıklarını düzenleyip,

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ı

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ı

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

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ı

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

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu WEB TASARIM I Öğr. Gör. M. Mutlu YAPICI Ankara Üniversitesi Elmadağ Meslek Yüksekokulu Ders İzlencesi Hafta Modüller/İçerik/Konular 1. Hafta PHP Tanımı ve Sunucu Kurulumları 2. Hafta PHP Yazım Notasyonu

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

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ı

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ı

Java Nitelemleri. Bölüm 1

Java Nitelemleri. Bölüm 1 Bölüm 1 Java Nitelemleri (Modifiers In Java) Java dilinde nitelemler (modifiers), bildirimlerinde java öğelerinin niteliğini belirlemek amacıyla öntakı olarak kullanılan anahtar sözcüklerdir. Şimdiye kadar

Detaylı

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir: Programın Akışının Denetimi Bir program komutların yazıldığı sırada akar. Ama çoğunlukla, bu akışı yönlendirmek gerekir. Bu iş için denetim yapılarını kullanırız. Bunlar iki gruba ayrılabilir: Yönlendiriciler

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ı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

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ı

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ı

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz? PYTHON DERS-8 LİSTELER-2 Geçen ders listeler oluşturmayı, listedeki her elemanın bir index numarası olduğu ve bu numaranın 0'dan başladığını, listenin tamamını veya index numarası sayesinde belirli bir

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ı

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ı

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ı

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ı

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ı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

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ı

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1 Ders Tanıtım Sunumu Internet Programming II Elbistan Meslek Yüksek Okulu 2012 2013 Bahar Yarıyılı Öğr. Gör. Murat KEÇECİOĞLU 1 PHP Program Yapısı Php çoğunlukla HTML etiketleri arasına gömülerek kullanılır.

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 2. BÖLÜM 2 PROGRAMLAMAYA GİRİŞ Programlama Terimleri ve Programlama Ortamı 3 Program Programlama IDE

Detaylı

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü MATLAB İLE PROGRAMLAMAYA GİRİŞ Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü nedimtutkun@gmail.com 1 3. Hafta Ders İçeriği M Dosyası Oluşturma Fonksiyon Yazma Fonksiyonlar ve Alt Programlar MATLAB

Detaylı

Burada dikkat edilmesi gereken nokta, bilinmeyen veya değişkeninizi yazarken diğer bilinmeyenler ile arasına boşluk koymanız gerektiğidir.

Burada dikkat edilmesi gereken nokta, bilinmeyen veya değişkeninizi yazarken diğer bilinmeyenler ile arasına boşluk koymanız gerektiğidir. yatay kısa çizgi, komutun girilmesi için hazir olunduğunu söyler. Yapacağınız işlemin (input) sonucunu görmek için (output) shift+enter tuşlarına birlikte basmalısınız. + 4 Çarpma işlemi yapmak için *

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ı

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ Kaynak: C ve Sistem Programcıları Derneği Kurs notu Öğr.Gör.Dr. Mahmut YALÇIN Bilinirlik Alanı Bilinirlik alanı (scope), bir ismin tanınabildiği program aralığıdır.

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

Excel Formuller ve Kullanımı

Excel Formuller ve Kullanımı Excel Formuller ve Kullanımı Mantıksal İslem Yapan Formuller 1 EĞER Fonksiyonu Belirttiğiniz koşul DOĞRU olarak değerlendirilirse bir değer, YANLIŞ olarak değerlendirilirse başka bir değer verir. Değerler

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ı

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator Interface Comparator java.util Interface Comparator Kılgılayan sınıf: Collator Bildirimi: public interface Comparator Comparator arayüzü Java Collections Framework un bir üyesidir. Bir nesneler koleksiyonu

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ı

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ı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı