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

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

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;

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

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

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

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

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

public static int Toplam int x, int y

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Nesne Yönelimli Programlama

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

BİL-141 Bilgisayar Programlama I (Java)

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

7. HAFTA. Erişim Belirleyiciler

Sunum İçeriği. Programlamaya Giriş

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

C++ Dersi: Nesne Tabanlı Programlama

Programlama Dilleri 3

YZM 2105 Nesneye Yönelik Programlama

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

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

BASİT VERİ TÜRLERİ, STRİNGLER, VE KONSOL GİRİŞ/ÇIKIŞ

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

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

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

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

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

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

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

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

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

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

BMH-303 Nesneye Yönelik Programlama

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

Nesne Tabanlı Programlama

EMT2226 Nesne Yönelimli Programlamaya Giriş

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

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.

Erişim konusunda iki taraf vardır:

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

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BTEP243 Ders 3. class Yazım Kuralı:

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

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

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

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

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

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

C++ Dersi: Nesne Tabanlı Programlama

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

Nesneye Dayalı Programlama

BİL-142 Bilgisayar Programlama II

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.

Programlama Dilleri III 1

Nesne Yönelimli Programlama

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

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

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

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

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

Spring Framework Eğitimi

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

Dizi ( Array ) ve Dizgi ( String )

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

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

Java String İşlemleri

Java, java.util paketi içinde mevcut olan Date sınıfını sağlar, bu sınıf güncel tarih ve zamanı kapsüllemektedir.

OPERATÖRLER Alıştırmalar

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

MAT213 Bilgisayar Programlama I

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

JAVADA DİZİ İŞLEMLERİ

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Nesne Yönelimli Programlama

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

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

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

/*int sayi1, sayi2,toplam=0;

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

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Şablon Türler (Generics)

Hafta 13 Fonksiyonlar

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

11- FONKSİYONLAR (FUNCTIONS)

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

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

MOBIL UYGULAMA GELIŞTIRME

YZM 2105 Nesneye Yönelik Programlama

Java: printf() Metodu İle Çıktıyı Biçemleme

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Nesne Yönelimli Programlama

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Bir c sınıfının doğal sıralaması ile tutarlı olması (be consistent with equals) demek, c sınıfı içindeki her e1 ve e2 nesnesi için

Transkript:

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 nesne tek kimlik, durum ve davranışlara sahiptir. Bir nesnenin durumu özellikleri olarak bilinen veri alanlarıdır. Bir nesnenin davranışı metotlar kümesi ile tanımlanır.

Sınıf adı: Cember Bir sınıf şablonu Veri alanları: Yaricap Metotlar: Alanhesapla Cember nesne1 Veri alanlari: yaricap 10 Cember nesne2 Veri alanları: yaricap 25 Cember nesne3 Veri alanlari: yaricap 125 Cember sinifindan uc nesne Bir nesne hem durum hem davranışa sahiptir. Durum nesneyi, davranış ise nesnenin ne yaptığını tanımlar.

Sınıflar aynı tipten nesneleri tanımlayan yapılardır. Bir java sınıfı veri alanları tanımlamak için değişkenleri ve davranışları tanımlamak için metotları kullanır. Ek olarak, bir sınıf yapılandırıcı olarak bilinen özel metotları tanımlar. Yapılandırıcılar sınıfın nesnelerini oluşturmak için çağrılır.

class Cember { /** bu cemberin yaricapi */ double yaricap = 1.0; /** bir cember sinifinin yapilandiricisi * Cember() { /** Cember nesnesinin yapilandiricisi */ Cember(double yeniyaricap) { yaricap = yeniyaricap; Veri alanı Yapilandirici /** Cemberin alanine dondur */ double alan() { return yaricap*yaricap * 3.14159; Metot

UML Sınıf diyagramı Cember Sınıf adı yaricap: double Veri alnaları Cember() Cember(yeniYaricap: double) Yapilandirici ve metotlar alan(): double cember1: Cember yaricap = 1.0 Cember2: Cember yaricap = 25 Cember3: Cember yaricap = 125 Nesnelerin UML notasyonu

// İki yapilandirici ile sinif tanimi class Cember1 { double yaricap; /yaricapi 1 olan çember nesnesi Cember1() { yaricap = 1.0; // Belirlenen yaricap ile çember tanimlama Cember1(double yeniyaricap) { yaricap = yeniyaricap; /** Return the area of this Cember */ double getarea() TestCember1 { return yaricap * yaricap * Math.PI;

public class TestCircle1 { /** Main method */ public static void main(string[] args) { // Create a circle with radius 5.0 Cember1 c1 = new Cember1(5.0); System.out.println(«yaricapi" + c1.yaricap + "olan çemberin alani " + c1.alan()); // Yaricapi 1 olan çember nesnesi olusturma Cember1 c2 = new Cember1(); System.out.println(«yaricapi " + c2.yaricap+ " olan çemberin alani: " + c2.alan()); // yaricapi degistir c2.yaricap = 100; System.out.println(«yaricapi " + c2.yaricap + " olan çemberin alani:" + c2.alan());

Yapılandırıcılar nesneleri oluşturmak için çağrılan özel bir metot türüdür.

Parametresi olmayan yapılandırıcı argümana sahip olmayan yapılandırıcı olarak başvurulur. Yapılandırıcılar kendi sınıfın ismi ile aynı isme sahiptir. Yapılandırıcılar herhangi bir geri dönüş türüne sahip değildir void bile. Yapılandırıcılar nesne oluşturulduğunda new operatörü ile çağrılır Yapılandırıcılar nesnelerin başlatılmasında rol oynar

Yapılandırıcı tanımlamadan bir sınıf tanımlanabilir. Bu durumda argümanı olmayan bir yapılandırıcı dolaylı olarak tanımlanır. Bu yapılandırıcı varsayılan yapılandırıcıdır.

Nesne referansına atama Nesne oluşturma

animasyon Cemberim i tanimla Cember Cemberim = new Cember(5.0); Cember Cember2 = new Cember(); Cember2.yaricap = 100; Cemberim Değer yok

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2 = new Cember(); Cemberim Değer yok Cember2.yaricap = 100; : Cember yaricap 5.0 Cember oluşturma

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2 = new Cember(); Cemberim Referans değer Cember2.yaricap = 100; Cemberim e referans nesnesini ata yaricap: 5.0 : Cember

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2 = new Cember(); Cemberim Referans değer Cember2.yaricap = 100; : Cember yaricap: 5.0 Cember2 Değer yok Cember2 yi tanımla

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2= new Cember(); Cember2.yaricap = 100; Cemberim Referans değer : Cember yaricap: 5.0 Cember2 Değer yok : Cember Yeni Cember nesnesi olustur yaricap: 0.0

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2= new Cember(); Cemberim Referans değer Cember2.yaricap = 100; : Cember yaricap: 5.0 Cember2 Referans değer Cember2 ye nesne referansını ata : Cember yaricap: 1.0

animasyon Cember Cemberim = new Cember(5.0); Cember Cember2 = new Cember(); Cemberim Referans değer Cember2.yaricap = 100; : Cember yaricap: 5.0 Cember2 Referans değer Cember2 deki yarıçapı değiştir : Cember yaricap: 100.0

public class Ogrenci { String isim; // Varsayılan değeri null int yas; // Varsayılan değer 0 boolean mezunmu; // Varsayılan değer false char cinsiyet; // Varsayılan değer '\u0000'

public class Test { public static void main(string[] args) { Ogrenci o= new Ogrenci(); System.out.println("isim? " + o.isim); System.out.println("yaş? " + o.yas); System.out.println("Mezun mu? " + o.mezunmu); System.out.println("cinsiyet? " + o.cinsiyet);

Java bir metottaki lokal değişkenlere değer atamaz. public class Test { public static void main(string[] args) { int x; // x has no default value String y; // y has no default value System.out.println("x is " + x); System.out.println("y is " + y); Derleme hatası: Değişkenler başlatılmaz

İlkel tip int i = 1 i 1 new Circle() kullanılarak oluşturulur Nesne türü Circle c c referans c: Cember yaricap = 1

Ilkel tip atama i = j Önce: Sonrar: i 1 i 2 j 2 j 2 Nesne türü atama c1 = c2 Önce: Sonra: c1 c1 c2 c2 c1: Cember yaricap = 5 C2: Cember yaricap = 9 c1: Cember yaricap = 5 C2: Cember yaricap = 9

+ public tanımlayıcıyı gösterir java.util.date +Date() +Date(elapseTime: long) +tostring(): String +gettime(): long +settime(elapsetime: long): void Geçerli zaman için Date nesnesi oluşturur. Verilen zaman için January 1, 1970 ten geçen zamanı milisaniye olarak verir. Zaman ve tarihi string olarak geri döndürür. January 1, 1970, GMT tarihinden geçen zamanı milisaniye olarak verir. Nesnede yeni geçen zamanı verir.

java.util.random +Random() +Random(seed: long) +nextint(): int +nextint(n: int): int +nextlong(): long +nextdouble(): double +nextfloat(): float +nextboolean(): boolean Kendi başlangıcı ile rastgele sınıfı oluşturur. Belirlenen başlangıç ile rastgele nesne oluşturur. Rastgele bir tam sayı üretir 0 ile n arası rastgele bir tamsayı üretir. Long türünden rastgele sayı üretir. 0.0 ile 1.0 arasında double türünden rastgele bir değer döndürür. 0.0F ile 1.0F aralığında float türünden bir değer üretir. Rastgele Boolean bir değer üretir.

Random random1 = new Random(3); System.out.print("From random1: "); for (int i = 0; i < 10; i++) System.out.print(random1.nextInt(1000) + " "); Random random2 = new Random(3); System.out.print("\nFrom random2: "); for (int i = 0; i < 10; i++) System.out.print(random2.nextInt(1000) + " "); From random1: 734 660 210 581 128 202 549 564 459 961 From random2: 734 660 210 581 128 202 549 564 459 961

Statik değişkenler sınıfın bütün örnekleri tarafından paylaşılır. Statik metotlar belirli bir nesneye bağlı değildir. Statik sabitler sınıfın bütün örnekleri tarafından paylaşılan son değerlerdir. Statik değişken, metot veya sabiti tanımlamak için static belirleyicisi kullanılır.

instantiate Cember1 Hafıza yaricap: double nesnesayisi: int Cember nesnesayisinidondur(): int +alan(): double instantiate yaricap = 1 nesnesayisi = 2 Cember2 1 yaricap 2 nesnesayisi Iki cember nesnesi oluşturulduktan sonra nesnesayisi 2 dir. UML Notasyonu: +: public değişkenler veya metotlar underline: static değişken ve metotlar yaricap = 5 nesnesayisi = 2 5 yaricap

Cember2 TestCember2 Run

public Sınıf, metot veya veri herhangi bir paketteki herhangi bir sınıfa görülebilirdir. private Veri veya metotlara sadece tanımlanan sınıftan erişilebilir. Get ve set metotları private özellikleri değiştirmek veya okumak için kullanılır.

package p1; package p2; public class C1 { public int x; int y; private int z; public void m1() { void m2() { private void m3() { public class C2 { void amethod() { C1 o = new C1(); can access o.x; can access o.y; cannot access o.z; can invoke o.m1(); can invoke o.m2(); cannot invoke o.m3(); public class C3 { void amethod() { C1 o = new C1(); can access o.x; cannot access o.y; cannot access o.z; can invoke o.m1(); cannot invoke o.m2(); cannot invoke o.m3(); package p1; package p2; class C1 {... public class C2 { can access C1 public class C3 { cannot access C1; can access C2; Private tanımlayıcısı bir sınıf içinde erişimi sınırlar. Varsayılan tanımlayıcı bir paket içinde erişimi sınırlar. public tanımlayıcı ise sınırlayıcısız erişimi aktifleştirir.

Bir nesne kendi private üyelerine erişemez. (b) Fakat, eğer nesne kendi sınıfında tanımlanmış ise, erişilebilir. (a) public class Foo { private boolean x; public static void main(string[] args) { Foo foo = new Foo(); System.out.println(foo.x); System.out.println(foo.convert()); public class Test { public static void main(string[] args) { Foo foo = new Foo(); System.out.println(foo.x); System.out.println(foo.convert(foo.x)); private int convert(boolean b) { return x? 1 : -1; (a) foo nesnesi Foo sınıfının içinde tanımlandığı için kullanılabilir (b) x ve convert Foo da private olduğu için kullanım yanlıştır

- işareti private tanımlayıcıyı gosterir -yaricap: double -nesnesayisi: int Cember The radius of this circle (default: 1.0). The number of circle objects created. +Cember() +Cember(yaricap: double) +yaricapal(): double +yaricapata(yaricap: double): void +nesnesayisial(): int +Alan(): double Constructs a default circle object. Constructs a circle object with the specified radius. Returns the radius of this circle. Sets a new radius for this circle. Returns the number of circle objects created. Returns the area of this circle.