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

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

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

Transkript

1 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 değişkenler ve metotlar ise anlık (dinamik, statik olmayan) öğelerdir. Örneğin, static int x; static double ÜcretHesapla(){... ; deyimleri, sırasıyla, int tipinden static x değişkeni ile double değer alan static ÜcretHesapla() metodunun bildirimidir. Bir sınıfın static öğelerine, o sınıfa ait bir nesne yaratılmadan erişilebilir. Sınıfın herhangi bir nesnesiyle bağlantısı olsun istenmeyen öğelere static nitelemesini vermek ona her yerden erişilebilen bir globallik niteliği verir. Daha önce, Java dilinde global değişken ve global metot olmadığını söylemiş, public nitelemesiyle öğelere bir tür global işlevsellik kazandırılabildiğini belirtmiştik. Öğelere globallik kazandırmanın ikinci etkin bir yolu static nitelemesidir. Statik öğeler, sınıfın bir nesnesi içinde olmadığından, onlara programın her yerinden erişilebilir. Örneğin, main()metodu daima static nitelemesini alır. O nedenle, ait olduğu sınıfın bir nesnesi yaratılmadan doğrudan çalışabilir. Sınıfa ait bir ya da daha çok nesne yaratıldığında, bu nesneler içinde yapılan işler static öğeleri etkilemez. Bunun nedeni, statik bir öğeye, o sınıfa ait bir nesne yaratılmadan ana bellekte bir ve yalnız bir tane bellek adresi ayrılmasıdır. Nesnelerin yaratılıp yokedilmesi, ya da nesneler içindeki değişimler onları etkilemez. Dolayısıyla, örneğin, static bir değişkenin belli bir anda yalnız bir tane değeri olabilir. Daha önemlisi, ana bellekte nesneye bağlı olmadan birer adresleri olduğu için, static öğelere nesne yaratılmadan erişilebilir. Statik olmayan öğelere anlık (dinamik) öğeler diyeceğiz. Öndeğer (default) olarak, bildirim sırasında static nitelemesini almayan her öğe anlık tır. Bunlara dinamik denmesinin nedeni, program boyunca ana bellekte kalmazlar, ait oldukları nesne ile birlikte yaratılır ve onunla birlikte ana bellekten silinirler. Örneğin, long y; Bölüm 06: Operatörler 1

2 float Topla(a,b){ return a+b; deyimleri, sırasıyla, long tipinden anlık x değişkeni ile float değer alan anlık Topla()metodunun bildirimidir. Bir sınıfın anlık öğelerine, o sınıfın yaratılan her bir nesnesi için, ana bellekte birer adres ayrılır. Başka bir deyişle, bir sınıfın üç ayrı nesnesi yaratılmışsa, sınıftaki anlık bir öğeye her nesnede bir tane olmak üzere üç ayrı bellek adresi ayrılır. Dolayısıyla, anlık değişkenin yaratılan her nesnede ayrı bir değeri vardır. Ama, onların var olabilmeleri için, önce sınıfa ait nesnenin yaratılması gerekir. Neden Nesne Yönelimli Programlama? Bu soruya yanıt vermeden önce aşağıdaki bir dizi programı inceleyeceğiz. Đncelemeyi bitirince, sorunun yanıtı kendiliğinden ortaya çıkacaktır. Örnek programların hepsi aynı işi yapmaktadırlar: Konsoldan brüt geliri okur, hesapladığı gelir vergisini konsola yazar. Đlk program, sözkonusu işi yapan en basit, en kısa ve en kolay programdır. Ama, yapısal programlama açısından asla tercih edilemeyecek kadar kötü bir programdır. Vergi01.java package statik; public class Vergi01 { double brüt; Scanner in = new Scanner(System.in); brüt = in.nextdouble(); in.close(); System.out.println("Gelir Vergisi :"); System.out.println(brüt * 40 / 100); Çıktı Brüt Geliri giriniz : 12345,678 Gelir Vergisi : Şimdi programımıza konsoldan veri okuyan, hesap yapan ve konsola veri yazan VeriOku(), Hesapla() ve VeriYaz() adlı üç ayrı metot ekleyelim. Ama öyle yapalım ki, main()metodu VeriYaz() metodunu çağırsın. VeriYaz() metodu Hesapla() metodunu çağırsın. Hesapla() metodu VeriOku() metodunu çağırsın. Böylece arka arkaya dört metot çalışacaktır. Bir metodun başka bir metodu çağırması, matematikteki bileşik fonksiyon (fonksiyon fonksiyonu) kavramından başka bir şey değildir. Đçteki fonksiyon, dıştaki fonksiyonun parametresidir (değişken). Vergi02.java package statik; public class Vergi02 { double brüt; 2 t.karaçay : Java ile Nesne Programlama

3 double VeriOku() { Scanner scan = new Scanner(System.in); brüt = scan.nextdouble(); scan.close(); return brüt; double Hesapla() { void VeriYaz() { VeriYaz(); Bu program derlenince aşağıdaki hata iletisini gönderir. Cannot make a static reference to the non-static method VeriYaz() Bu ileti bize, static olmayan VeriYaz() metoduna static bir referans yapılamadığını; yani ona erişilemediğini söylemektedir. Bu mesajı alınca, programda hata ayıklama (debug) işine başlayalım. Đlk aklımıza gelen kolay yol, VeriYaz() metodunu static yapmaktır. 20.satırı şöyle değiştirelim: static void VeriYaz() { Bunu yaptığımızda, derleyici VeriYaz() metoduna erişebilir. Ancak onun çağırdığı Hesapla() metoduna erişemez ve şu hata iletisini yollar: Cannot make a static reference to the non-static method Hesapla() Gene yukarıdaki çözümü uygulayıp, Hesapla() metodunu static yapalım. Bunun için 16.satırı şöyle değiştirelim: static double Hesapla() { Bunu yaptığımızda, derleyici Hesapla() metoduna erişebilir. Ancak onun çağırdığı VeriOku() metoduna erişemez ve şu hata iletisini yollar: Cannot make a static reference to the non-static method VeriOku() Artık, bu hatayı nasıl ayıklayacağımızı biliyoruz. Gene yukarıdaki çözümü uygulayıp, VeriOku() metodunu static yapalım. Bunun için 8.satırı şöyle değiştirelim. static double VeriOku() { Bu aşamada programdaki bütün hataları ayıkladığımızı düşünüp, tekrar derlemeyi denersek şu hata iletisini alacağız: Cannot make a static reference to the non-static field brüt Bu hatayı da ayıklamak için 6. Satırda bildirimi yapılan brüt değişkenini static yapalım: static double brüt; Bu son düzeltmeden sonra programımızda sözdizimi hatası kalmamıştır. Derleyip koşturabiliriz. Vergi03.java package statik; Bölüm 06: Operatörler 3

4 public class Vergi03 { static double brüt; static double VeriOku() { Scanner scan = new Scanner(System.in); brüt = scan.nextdouble(); scan.close(); return brüt; static double Hesapla() { static void VeriYaz() { VeriYaz(); Çıktı Brüt Geliri giriniz : 12345, Yaptığımız hata ayıklama (debug) işlemleriyle, Vergi03.java programını çalışır duruma getirdik. Ancak, bu programda Nesne Yönelimli Programlamanın yeteneklerini hiç kullanmadık. Programdaki bütün değişkenleri ve bütün metotları static yaptık. Bu yöntem büyük projeler için uygun değildir. Bütün değişkenleri ve bütün metotları static yapmak yerine, sınıfa ait bir nesne yaratmak daha uygun olacaktır. Çünkü, yaratılan nesneye ait değişken ve metotların işi bitince, nesne ana bellekten silinir; yeni nesnelere yer açılır. Bu olgu çok sayıda nesne yaratan büyük programlar için önem taşır. Şimdi, değişkenleri ve metotları statik yapmadan programı yeniden yazalım. Sonra, sınıfa ait bir nesne yaratalım. Şimdi de ikinci yöntemi deneyelim. Program03 sınıfından p adlı bir nesne yaratalım. Bunu yapmak için Sınıf_adı nesne_adı = new Sınıf_adı(); nesne yaratıcı (instantiate) deyimini kullanıyoruz. Örneğimizde, nesne_adı p olacaktır. Vergi04.java package statik; public class Vergi04 { double brüt; double VeriOku() { Scanner scan = new Scanner(System.in); 4 t.karaçay : Java ile Nesne Programlama

5 brüt = scan.nextdouble(); scan.close(); return brüt; double Hesapla() { void VeriYaz() { Vergi04 vergi = new Vergi04(); vergi.veriyaz(); Çıktı ipucu Brüt Geliri giriniz : 12345, Anımsayınız, Java uygulama programlarında main() metodunu içeren sınıf adı ile program adı daima aynı olmalıdır. Vergi04.java programı tek sınıftan oluşuyor. Ama büyük programlar çok sayıda sınıftan oluşabilir. Birden çok sınıf olduğunda, onlardan yalnızca birisi main() metodunu içerebilir. main() metodu programın giriş kapısı gibidir; başka yerden programa girilemez. 26.satırdaki Vergi04 vergi = new Vergi04(); deyimi, Vergi04 sınıfına ait vergi adlı bir nesne yaratıyor. Bu deyimdeki new bir anahtar sözcüktür ve daima sınıftan nesne yaratmak için kullanılır. Nesneye vergi yerine istenilen başka bir ad verilebilir. Nesneye verilen ad aynı zamanda nesneyi işaret eden referansın da adıdır. Tabii, verilen adın, yaratılan nesneyi ima eden bir sözcük olması, kaynak programın okunabilirliğini artırır; derleyici için verilen adın önemi yoktur. Vergi04 sınıfındaki VeriOku(), Hesapla(), VeriYaz() metotları ile brüt adlı değişkenin önüne static nitelemesi konulmadığı için, öntanımlı olarak (default) anlık olurlar; yani static değildirler. Dolayısıyla, ancak sınıfa ait bir nesne yaratılınca o nesne içinde ana bellekte kendilerine birer yer ayrılır. Üstlendikleri işlevlerini o nesne içinde yaparlar. Örnekteki nesnenin ana bellekteki adresini işaret eden referansın (işaretçi, pointer) adı vergi dir. vergi adı aynı zamanda yaratılan nesnenin de adıdır. vergi nesnesine ait VeriYaz() metoduna erişmek için vergi.veriyaz(); deyimini kullanıyoruz. Nesne adı ile metot arasındaki nokta (.) simgesi, nesnenin öğelerine erişimi sağlayan operatördür. Nesneye ait değişkenler için de aynı operatör kullanılır. Böyle olduğunu görmek için, sınıfa ait p ve q adlarıyla iki farklı nesne yaratalım ve o nesnelerdeki metotlarımızı farklı verilerle çalıştıralım. p ve q nesnelerinden gelen çıktıların farklı olduğunu görebiliriz. Vergi05.java Bölüm 06: Operatörler 5

6 public class Vergi05 { double brut; double VeriOku() { Scanner s = new Scanner(System.in); brut = s.nextdouble(); return (brut); double Hesapla() { void VeriYaz() { Demo p = new Demo(); System.out.println("p nesnesi için :"); p.veriyaz(); System.out.println(); Demo q = new Demo(); System.out.println("q nesnesi için :"); q.veriyaz(); Çıktı p nesnesi için : Brüt Geliri giriniz : 12345, q nesnesi için : Brüt Geliri giriniz : 98765, Şimdi başka bir durumu deneyelim. Sınıfta bildirimi yapılan metotların hepsini satic yapalım ve sınıftan bir nesne yaratmayı deneyelim. Vergi06.java public class Vergi06 { static double VeriOku() { Scanner s = new Scanner(System.in); return (s.nextdouble()); 6 t.karaçay : Java ile Nesne Programlama

7 static double Hesapla() { static void VeriYaz() { Vergi06 vrg = new Vergi06(); vrg.veriyaz(); Bu programı derlemek istersek şu uyarı iletisini verecektir: The static method VeriYaz() from the type Vergi06 should be accessed in a static way Ancak program derlenir ve koşar. Bu demektir ki, static metotlara bir nesnenin referansı ile erişilebilir. Çünkü, statik öğelere her nesneden erişilebilir. Ancak bu yöntem, erişilen öğenin anlık olduğu yanılgısına yol açabileceği için, önerilmez. Statik öğelere erişirken, bir nesneye ait referans (pointer) yerine sınıfın adının kullanılması yeğlenmelidir. Örneğin, yukarıdaki programda 23.satır yerine Vergi06.VeriYaz(); deyimini yazarsak, programın derlendiğini ve koştuğunu görebiliriz. Statik metotlar için önerilen deyim budur. Eğer çağrı aynı sınıf içinden yapılıyorsa, sınıf adını yazmaya gerek olmayabilir. Örneğin, yukarıdaki deyim yerine VeriYaz(); deyimini yazsak da program derlenir ve koşar. Ancak, program birden çok sınıf içeriyorsa, farklı bir sınıftaki bir static metodu çağırmak için, öncekinde olduğu gibi sınıf adını belirtmeliyiz. Değilse, derleyici, metodu hangi sınıftan çağıracağını bilemez. Her durumda, static metotları çağırırken, sınıf adlarını öntakı yapmayı alışkanlık edinmek, büyük programlarda oluşabilecek yanılgıları önler ve gerektiğinde programın güncellenmesi kolaylaşır. Statik metotlar için söylediğimiz bu özelikler statik değişkenler için de geçerlidir. Alıştırmalar Şimdi aşağıdaki durumları ayrı ayrı deneyelim: Metotların üçü de anlık ise, 22. ve 23. satırlardaki deyimlerle programın derlenip koşabildiğini gördük. Metotların üçü de static ise, 23.satırdaki deyim aşağıdakilerden birisi olabilir: vrg.veriyaz(); VeriYaz(); Vergi06.VeriYaz(); Bu durumda statik metot nesne içinden çağrılıyor. Bu durumda, aynı sınıftaki statik VeriYaz() metoduna adıyla erişiliyor. VeriYaz() metodu statik Hesapla() metoduna adıyla erişiyor. Sonunda Hesapla() metodu da statik VeriOku() metoduna adıyla erişiyor. Bu durumda, statik VeriYaz() metoduna, sınıf adı öntakı yapılarak erişiliyor. Karışıklığı önlemek için, büyük programlarda statik öğelere erişmek için önerilen sözdizimi budur. VeriYaz() metodu anlık, VeriOku() ve Hesapla() metotları statik ise 22. ve 23. satırlardaki deyimlerle program derlenir ve koşar. Bunun nedeni şudur: Anlık VeriYaz() metoduna vrg referansı ile Bölüm 06: Operatörler 7

8 erişiliyor. Sonra nesne içinden statik Hesapla() metodu çağrılıyor. En sonunda, statik Hesapla() metodu statik VeriOku() metodunu çağırıyor. Bunlar Java da geçerli eylemlerdir. VeriYaz() ile Hesapla() metotları anlık VeriOku() metodu statik ise 22. ve 23. satırlardaki deyimlerle program derlenir ve koşar. Bunun açıklaması kolaydır. Anlık VeriYaz() metoduna vrg referansı ile erişiliyor. Sonra aynı nesne içindeki anlık Hesapla() metodu çağrılıyor. En sonunda, nesne içinden statik VeriOku() metodunu çağrılıyor. VeriYaz() statik, Hesapla() anlık ise program derlenemez. Çünkü statik metotlar nesne içindeki öğelere erişemezler. O nedenle statik VeriYaz() metodu nesne içindeki anlık Hesapla() metodunu çağıramaz. Aşağıdaki program, farklı sınıftaki statik öğelere adlarıyla erişilemeyeceğini gösteriyor. Demo.java class Vergi { static double VeriOku() { Scanner s = new Scanner(System.in); return (s.nextdouble()); static double Hesapla() { static void VeriYaz() { public class Demo{ VeriYaz(); Bu program için derleyici şu hata iletisini atar: The method VeriYaz() is undefined for the type Demo Bu ileti, Demo sınıfında VeriYaz() metodunun varolmadığını söylüyor. Hatayı ayıklamak (debug) için, derleyiciye VeriYaz() metodunu hangi sınıfta bulacağını söylemeliyiz. Bunu yapmak için, sınıf adını metodun öntakısı yapmak yetecektir; yani 24.satırdaki deyimi şöyle yazmalıyız: Vergi.VeriYaz(); Bunu yapınca programın derlendiğini ve koştuğunu göreceğiz. Şimdi 15.satırdaki VeriYaz() metodunu anlık yapalım. Demo.java class Vergi { 8 t.karaçay : Java ile Nesne Programlama

9 static double VeriOku() { Scanner s = new Scanner(System.in); return (s.nextdouble()); static double Hesapla() { void VeriYaz() { public class Demo { // Vergi p = new Vergi(); Vergi.VeriYaz(); Bu program derlenemez ve şu hata iletisini atar: Cannot make a static reference to the non-static method VeriYaz() from the type Vergi Bu ileti, farklı bir sınıftaki anlık metoda erişilemediğini söylüyor. Hatayı ayıklamak için, ya VeriYaz() metodunu statik yapacağız ya da VeriYaz() metodunu içeren sınıfa ait bir nesne yaratacak ve VeriYaz() metoduna referans ile erişeceğiz. Birinci yöntemi, yani metodu statik yapmayı önceden denedik ve çalıştığını gördük. Şimdi VeriYaz() metodunu içeren Vergi sınıfına ait bir nesne yaratalım. Bunun için 23. ve 24. satırlardaki deyimleri şöyle değiştirelim: Vergi vergi = new Vergi(); vergi.veriyaz(); Bu deyimlerle programın derlendiğini ve koştuğunu görebiliriz. Şimdi de static metotları çağırırken metot adlarının önüne this anahtar sözcüğünün konamayacağını görelim. Bunun için 23.satırdaki deyim yerine this.veriyaz(); deyimini yazalım. Derleyicinin şu hata uyarısını attığını göreceğiz: Cannot use this in a static context Özet Buraya kadar yaptıklarımızı özetlersek şu kurallar ortaya çıkar: 1. Anlık metot, anlık değişkenlere ve anlık metotlara referanslarıyla erişebilir. 2. Anlık metot, aynı sınıftaki statik değişkenlere ve statik metotlara adlarıyla erişebilir. 3. Anlık metot, farklı sınıftaki statik değişkenlere ve statik metotlara, sınıf adlarını öntakı yaparak erişebilir. 4. Aynı sınıf içindeki statik değişkenlere ve statik metotlara adlarıyla erişilebilir. 5. Farklı sınıf içindeki statik değişkenlere ve statik metotlara, ait oldukları sınıf adları öntakı yapılarak erişebilir. Bu durumda sınıf adı işaretçinin görevini üstlenir. 6. Nesne içinden, aynı sınıfa ait statik değişkenlere ve statik metotlara adlarıyla erişilebilir. Bölüm 06: Operatörler 9

10 7. Nesne içinden, farklı sınıfa ait statik değişkenlere ve statik metotlara, ait oldukları sınıf adları öntakı yapılarak erişebilir. Bu durumda sınıf adı işaretçinin görevini üstlenir. 8. Statik metot, aynı sınıftaki statik değişkenlere ve statik metotlara adlarıyla erişebilir. 9. Statik metot, farklı sınıftaki statik değişkenlere ve statik metotlara, sınıf adlarını öntakı yaparak erişebilir. 10. Statik metot, anlık değişkenlere ve anlık metotlara adlarıyla erişemez; ancak referans (pointer) kullanarak erişebilir. 11. Statik metot, this anahtar sözcüğünü kullanamaz; çünkü this için işaret edilecek bir nesne yoktur. 10 t.karaçay : Java ile Nesne Programlama

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ı

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ı

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ı

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

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ı

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ı

BMM3101 PROGRAMLAMA DİLLERİ

BMM3101 PROGRAMLAMA DİLLERİ 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü BMM3101 PROGRAMLAMA DİLLERİ Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

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ı

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

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ı

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ı

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ı

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ı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

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ı

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ı

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

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

Detaylı

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ı

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ı

Proses. Prosesler 2. İşletim Sistemleri

Proses. Prosesler 2. İşletim Sistemleri 2 PROSESLER Proses Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkinbirdenfazlaprosesolabilir. Görev

Detaylı

PROSESLER. Proses. Proses

PROSESLER. Proses. Proses Proses 2 PROSESLER Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkin birden fazla proses olabilir.

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ı

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ı

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ı

Module ve Mixin Module nedir? 17.2 Neden Module?

Module ve Mixin Module nedir? 17.2 Neden Module? 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

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ı

Bölüm 07 Array. Array Nedir? Array Yaratma [] Operatörü Array'in Bileşenleri Seçkili (random) Erişim Array Türleri

Bölüm 07 Array. Array Nedir? Array Yaratma [] Operatörü Array'in Bileşenleri Seçkili (random) Erişim Array Türleri Bölüm 07 Array Array Nedir? Array Yaratma [] Operatörü Array'in Bileşenleri Seçkili (random) Erişim Array Türleri Bir Boyutlu Array Çok Boyutlu Array Array Arrayi (çentikli array) Array Nedir? Array, aynı

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ı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

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

Detaylı

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ı

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme: 1 Program Çözümleme Bir bilgisayar programını çözümleme eylemini, onun her satırının (deyiminin) yaptığı işi açıklamak olarak anlayacağız. Bazı kaynaklarda bu eyleme analiz der. Daha ileri düzeyde "trace"

Detaylı

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA 2012-2013 GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9 UYGULAMA ÖRNEK 1: Kullanıcıdan anapara miktarını istedikten sonra 0025, 0050, 0075 ve 0100 dönem faizi değerlerini kullanarak gelecek 10 dönem

Detaylı

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

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

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ı

Örnek 1: Programı yazın ve çalıştırın.

Örnek 1: Programı yazın ve çalıştırın. 1 0 Örnek 1: Programı yazın ve çalıştırın import javautilscanner; public class MatrisFaiz1 public static void main(string[] args) Scanner klavye=new Scanner(Systemin); double [][] faiztablo = new double

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

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

Detaylı

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4 Yrd.Doç.Dr.Hacer Karacan İçerik Nesne Oluşturma Nesnenin Yaşam Süreci Dahili Sınıflar Nesne Oluşturma Java dahil pek çok programlama dilinde nesne oluşturmak için

Detaylı

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ 2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç

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ı

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ı

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ı

Örnek1: #include <iostream> #include <string> using namespace std;

Örnek1: #include <iostream> #include <string> using namespace std; BTEP243 Ders 5 Nesne İşaretçileri İşaretçiler, bildiğiniz gibi bir değişkenin bellekte tutuldukları yerin adresini tutarlar. Nesne işareçtileri konusundaki işaretçiler, nesnelerin bellek üzerinde bulundukları

Detaylı

NESNE MODELLERİ : SINIFLAR

NESNE MODELLERİ : SINIFLAR NESNE MODELLERİ : SINIFLAR Bu bölümünden itibaren C++ programlama dilinin nesneye dayalı programlamaya yönelik özellikleri tanıtılacaktır. Bu özellikler yazılımların kalitesini yükseltmek amacıyla geliştirilmişlerdir.

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Detaylı

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

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR DATA STRUCTURES Lab II Metotlar, Diziler ve Hata Ayıklama Doç. Dr. Aybars UĞUR İçerik Debugging konusunun kısaca anlatımı. (10 dk.) F11, F10 ve Durma Noktası denemeleri yapılması ve gözlemlerin not edilmesi.

Detaylı

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

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR DATA STRUCTURES Lab II Metotlar, Diziler ve Hata Ayıklama İçerik Debugging konusunun kısaca anlatımı. (10 dk.) F11, F10 ve Durma Noktası denemeleri yapılması ve gözlemlerin not edilmesi. (10 dk.) Örnek2

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ı

Yrd. Doç. Dr. Caner ÖZCAN

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

Detaylı

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ı

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir.

Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar çalıştırılabilir. Bölüm 09 Döngüler for döngüsü do döngüsü while döngüsü foreach döngüsü Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrar tekrar

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ı

Operatörlerin Aşırı Yüklenmesi

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

Detaylı

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ı

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

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ı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

Programlama Dilleri III 1

Programlama Dilleri III 1 Temel Veri Türleri Programlama Dilleri III 1 İlk C# Programı class ilk_program1 static void Main() System.Console.WriteLine("Merhaba C#"); C# dilinde yazılmış kaynak kod dosyalarının uzantıları.cs dır.

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ı

EMT2226 Nesne Yönelimli Programlamaya Giriş

EMT2226 Nesne Yönelimli Programlamaya Giriş 2017-2018 Bahar Yarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü EMT2226 Nesne Yönelimli Programlamaya Giriş 2 Yrd. Doç. Dr. İbrahim Küçükkoç Web: ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

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ı

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ı

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ı

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

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez... Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen

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ı

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No.

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No. Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013 Ad, Soyad Öğrenci No. : : Öğretim Üyesi: Doç. Dr. Zeki BAYRAM Süre: 100 dakika Talimatlar:

Detaylı

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları

Statik veri üyeleri sınıf dosyası içerisinde, ancak sınıf bildirimi dışında başlatılmalıdır. Statik üye fonksiyonları Statik Veri Üye ve Metotlar Genel olarak bir sınıfa ait nesnelerin verileri bellekte farklı bölgelerde yer alır. Ancak bazı durumlarda, belirli bir üyenin ortak bir alanda tek bir kopyasının bulunması

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ı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

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

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

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

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR Java Programlama Dilinde Veri Tipleri Yrd. Doç. Dr. Aybars UĞUR Metoda Temel Veri Tipi Gönderme Java daki 8 Temel veri tipi (boolean, char, byte, short, int, long, float, double). public class OrnekTemelTip

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

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ı

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

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ı

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız:

Aritmetik Operatörleri Hemen her programlama dilinde olduğu gibi java dilinde de aritmetik işlemler yaparken aşağıdaki operatörleri kullanırız: Bölüm 06 Operatörler Bu bölümde aşağıdaki konular anlatılacaktır: Aritmetik Operatörleri ++ ve Operatörleri Önel (Prefix) ve Sonal (Postfix) Takılar Atama Operatörleri Đlişkisel Operatörler Mantıksal (Logic)

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

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ı

4.Hafta. this Anahtar Sözcüğü

4.Hafta. this Anahtar Sözcüğü this Anahtar Sözcüğü this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şöyle ki: Örnek: TarihHesaplama.java

Detaylı

Karşılaştırma İşlemleri ve Koşullu İfadeler

Karşılaştırma İşlemleri ve Koşullu İfadeler Karşılaştırma İşlemleri ve Koşullu İfadeler BİL131 - Bilişim Teknolojileri ve Programlama Hakan Ezgi Kızılöz Karşılaştırma İşlemleri Java'da sayısal veri tiplerinin karşılaştırılması için aşağıdaki karşılaştırma

Detaylı

3.1 Pointer in Yararları

3.1 Pointer in Yararları 3 Pointers Pointer, başka bir değişkenin bellekteki adresini işaret eden bir değişkendir. O nedenle, pointere işaretçi, gösterici adları verilir. Değişkenler için olduğu gibi, pointerin değeri, işaret

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ı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

Detaylı

Mantıksal (Logic) Operatörler

Mantıksal (Logic) Operatörler Mantıksal (Logic) Operatörler Bilgisayar dillerinin hemen hepsinde, program akışını kontrol edebilmek ve yönlendirebilmek için mantıksal operatörler kullanılır. Java dilinde kullanılan mantıksal operatörler

Detaylı

Metotlar. Bölüm 1. 1.1 Metot Nedir? Metot Nedir? Parametreler ve Yerel Değişkenler. main() Metodu. Hazır Metotlar. System.Math Sınıfının Metotları

Metotlar. Bölüm 1. 1.1 Metot Nedir? Metot Nedir? Parametreler ve Yerel Değişkenler. main() Metodu. Hazır Metotlar. System.Math Sınıfının Metotları İçindekiler 1 Metotlar 1 1.1 Metot Nedir?.............................. 1 1.2 Static Öğe................................ 2 1.3 Metot Kavramı............................. 3 1.3.1 Parametreler ve Yerel Değişkenler..............

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ı

C++ ile Nesneye Dayalı Programlama

C++ ile Nesneye Dayalı Programlama Nesne İşaretçileri Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Nesneİşaretçileri Çok Şekillilik

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ı

JAVA PROGRAMLAMAYA GİRİŞ

JAVA PROGRAMLAMAYA GİRİŞ LAB I JAVA PROGRAMLAMAYA GİRİŞ Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek uygun bir geliştirme ortamı kurulmalıdır. Eclips IDE yaygın olarak kullanılan

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ı

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ı

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

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

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3 NESNELERİN BAŞLANGIÇ DURUMU VE TEMİZLİK Bir nesnenin başlangıç durumuna getirilme işlemi bir sanatçının sahneye çıkmadan önce yaptığı son hazırlıklar gibi düşünülebilir.

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ı

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

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

Detaylı