Java Dersi. Altuğ Bilgin Altıntaş



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

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

Erişim konusunda iki taraf vardır:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama

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

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

7. HAFTA. Erişim Belirleyiciler

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

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

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

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.

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

BİL-141 Bilgisayar Programlama I (Java)

Java ve Yazılım Tasarımı ; Bölüm- 4 PAKET ERİŞİMLERİ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

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

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

(Interface and Inner Classes)

POLIMORFIZM. Java ve Yazılım Tasarımı ; Bölüm- 6. Örnek: PolimorfizmOrnekBir.java (yorum ekle)

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

Programlama Dillerinde Kullanılan Veri Tipleri

Spring Giriş Eğitimi

İş Parçacıkları (Threads)

Ders 8 Konu Özeti ve Problemler

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

Sunum İçeriği. Programlamaya Giriş

İÇİNDEKİLER VII İÇİNDEKİLER

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Java Programlamada Paket Yapısı Ve Import

Polimorfizm. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1

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

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

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

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

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

Üst Düzey Programlama

Üst Düzey Programlama

Nesneler için torbalar (Collections) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 1

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

Android Ders Notları

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

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

Nesne Yönelimli Programlama

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

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

Java Programlamaya Giriş

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

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

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

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.

Üst Düzey Programlama

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. ()

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

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

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

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

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

public static int Toplam int x, int y

Java da İstemci Tarafı Uygulamalar

SINIFLARIN TEKRAR KULLANILMASI

(Interface and Inner Classes)

Java Class Yapısında Finalize Metotunun Kullanımı

Kalıtım (Inheritance)

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

Java ile Tasarım Prensipleri ve Tasarım Örüntüleri

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

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

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Kapsülleme ( Encapsulation ) 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.

Altuğ B. Altıntaş

Nesne Yönelimli Programlama

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

19 Şubat 2016 Cuma

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

YZM 2116 Veri Yapıları

Java diğer programlama dilleri gibi başlı başına bir ürün değildir.

Java String İşlemleri

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

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

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

Decorator Tasarım Şablonu

BTEP243 Ders 3. class Yazım Kuralı:

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

MOBIL UYGULAMA GELIŞTIRME

Transkript:

Java Dersi Altuğ Bilgin Altıntaş

Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI

Çalışma Evreleri 6

Çalışma Evreleri 7

Java dosyasının hali 7

İlk Java uygulaması 7

Ciddi bir uygulama Nasa.java 7

Sınıf Nedir? Nesne Nedir? 21 II

Herşey Nesne Java da herşeye nesne olarak davranırız. Herseyin nesne olmasına rağmen nesneleri yönetmek için referanslar kullanılır. 18

Ciddi bir uygulama II NesnelerdeAtama.java 7

Ciddi bir uygulama CopNesne.java 7

Ciddi bir uygulama MutluAdam.java 7

http://download.oracle.com/javase/6/docs/api/

Ciddi bir uygulama TarihHesaplama.java 7

Ciddi bir uygulama III. Ali.java Mehmet.java 7

JAR Dosyaları (The JavaTM Archive File) Güvenlik Sıkıştırma İndirme (download) zamanını azaltması Paket mühürleme(versiyon 1.2) Versiyon uyumluluğu açısından Paket versiyonlanma (versiyon1.2) Versiyon bilgilerinin gösterimi Taşınabilirlik

Açıklama Komut JAR dosyası oluşturmak için jar -cf jar-dosya-ismi içeriye-atılacak-dosya(lar) jar -tf jar-dosya-ismi JAR dosyasının içeriğini bakmak için JAR dosyasının içeliğini toptan dışarı çıkartmak için jar -xf jar-dosya-ismi Belli bir dosyayı JAR dosyasından dışarı çıkartmak için jar -xf jar-dosya-ismi arşivlenmiş dosya(lar) JAR olarak paketlenmiş uygulayı çalıştırmak için jre -cp jar-dosya-ismi MainClass

jar -cf kou.jar tr/

CLASSPATH AYARLARI CLASSPATH="C:\kodlar\bolum4\;." Yukarıdaki ifade yerine artık aşağıdaki ifadeyi kullanabiliriz. CLASSPATH="C:\muzik\kou.jar;."

Ciddi bir uygulama Voltran.java 7

Ciddi bir uygulama PolimorfizmOrnekBir 7

Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları için tasarlanmışlardır. 2

Arayüz (Interface) Arayüzlerin içerisindeki gövdesiz (soyut) yordamlar (methods) otomatik olarak public erişim belirleyicisine sahip olurlar. 3

4

Ciddi bir uygulama BuyukIsYeri.java 7

class Mudur implements Calisan { public void calis() { // iptal etti (override) System.out.println("Mudur Calisiyor"); } } 6

Arayüz(Interface) ve Soyut sınıflar(abstract classes) interface Hayvan { public void avlan() ; } abstract class Kedi implements Hayvan { } Bu örnek derlenir mi? 7

Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları için tasarlanmışlardır. 2

Arayüz (Interface) Arayüzlerin içerisindeki gövdesiz (soyut) yordamlar (methods) otomatik olarak public erişim belirleyicisine sahip olurlar. 3

8

Ciddi bir uygulama Karisim2.java 7

Arayüz(Interface) ile çoklu kalıtım(multiple inheritance) Java Programlama dili çoklu kalıtımı (multiple inheritance) desteklemez. 10

11

Ciddi bir uygulama Spor.java 7

Sebep Sporcu s = new SportmenMehmet(); // yukari cevirim s.calis(); //?? 13

Arayüz (Interface) ile çoklu kalıtıma destek 14

Örnek SportmenMehmet belki hem BuzPatenci hem de Basketbolcu olamayabilir ama bunlara ait özellikleri alabilir. 15

Ciddi bir uygulama Spor2.java 7

Arayüzlerin kalıtım (inheritance) yoluyla genişletilmesi Bir arayüz başka bir arayüzünden türetilebilir. Böylece arayüzler kalıtım yoluyla genişletilmiş olur. 16

17

Yakından bakılırsı interface Avlanabilme extends DahaHizliKosabilme,Kosabilme { //.. } 18

Ciddi bir uygulama Jaguar.java 7

Çakışmalar Arayüzlerin içerisinde dönüş tipleri haricinde herşeyleri aynı olan gövdesiz (soyut) yordamlar varsa bu durum beklenmedik sorunlara yol açabilir. Cakisma.java (derlemeye çalışılırsa...) 20

Ciddi bir uygulama Cakisma.java (derlemeye çalışılırsa...) 7

public void hesapla(); // A1 arayüzüne ait public int hesapla(); // A3 arayüzüne ait 21

Arayüzün(Interface) içerisinde alan tanımlama Arayüzlerin içerisinde gövdesiz (soyut) yordamların dışında alanlar da bulunabilir. Bu alanlar, diğer uygulamalarda sabit olarak kullanılabilir. Arayüzün içerisinde tanımlanan bir alan (ilkel tipte veya sınıf tipinde olsun) otomatik olarak hem public erişim belirleyicisine hem de final ve static özelliğine sahip olur. 22

Örnek AyBul.java 23

Ciddi bir uygulama AyBul.java 7

Genel Bakış Arayüzlerin (interface) bizlere sağlamak istedigi fayda nedir? 25

Genel Bakış Ulaşılmak istenen amaçlardan biri çoklu yukarı çevirimdir (upcasting). 26

Ciddi bir uygulama GenelBakis.java 7

Yakından bakarsak class A extends Soyut1 implements Arayuz1, Arayuz2 { //... } 27

28

Soyut1 soyut_1 = new A(); Arayuz1 arayuz_1 = (Arayuz1) soyut_1; // tip degisimi Arayuz2 arayuz_2 = (Arayuz2) soyut_1; // tip degisimi 29

Veya Soyut1 soyut_1 = new A(); Arayuz1 arayuz_1 = new A(); Arayuz2 arayuz_2 = new A(); 30

Arayüzlerin en önemli amacı bağlaşımı kesmektir (decoupling) - I. Yazılım tasarımlarının en önemli amacı uygulamayı parçalara ayırmaktır (decompose). Uygulamayı parçalara ayırmak şart mı? Neden? Bağlaşımı Kesmek (decoupling) parçalara ayrılan kısımların birbirleriyle nasıl bir ilişki içerisinde olmaları gerektiği ile alakalı bir konudur. 31

Arayüzlerin en önemli amacı bağlaşımı kesmektir (decoupling) - II. Kullanım diyagramı (Uses Diagram) Parçalara ayrılan kısımlar arasındaki bağlılığı ifade eden bir gösterim seklidir. A parçası B parçasına ait bir kısmı kullanıyorsa o zaman A parçası B parçasına bağımlıdır diyebiliriz. 32

Arayüzlerin en önemli amacı bağlaşımı kesmektir (decoupling) - VI. Bağımlılık ve Belirtimler (Dependences and Specifications) A parçası nın B parçasına olan bağımlılığını kesmek için araya belirtim konabilir. Belirtimler (Java programlama dilindeki arayüzler-interface) tek başlarına çalıştırılamazlar. Böylece A parçası (S) belirtimine bağımlı olur, B parçasıda belirtimin (S) gerektirdiklerini yerine getirir. 36

Arayüzlerin en önemli amacı bağlaşımı kesmektir (decoupling) - VII. Bağlaşımı kesme (decoupling) teknikleri Java kütüphaneleri içerisinde de kendisini çokca gösterir. java.util paketinin altındaki List arayüzü bunun en güzel örneklerindendir. 37

Dahili Sınıflar (Inner Classes) Dahili üye sınıflar Yerel sınıflar (Local classes) İsimsiz sınıflar (Anonymous classes) 43

Dahili Üye Sınıflar class CevreliyiciSinif { class DahiliSinif { //... } //... } 44

Ciddi bir uygulama Hesaplama.java 7

Türetilebilen Dahili Üye Sınıflar Dahili üye sınıflar, aynı normal sınıflar gibi başka sınıflardan türetilebilirler. Böylece çoklu kalıtım desteğinin bir benzerini (güvenli), Java programlama dilinde de bulabiliriz. 47

48

Ciddi bir uygulama YarisArabasi.java 7

Yerel Sınıflar (Local Classes) Yerel sınıflar Yapılandırıcıların (constructor) Sınıf yordamlarının (statik yordam) Nesne yordamlarının Statik alanlara toplu değer vermek için kullandığımız statik bloğun Statik olmayan alanlara toplu değer vermek için kullandığımız bloğun içerisinde tanımlanabilir. 50

Yerel Sınıflar public class Sinif { public void yordam() { public class YerelSinif { //... } } } 51

57

Ciddi bir uygulama VI Supermarket.java 7

Ciddi bir uygulama VI HashMapTestBir.java

Java 'da en iyi uygulama kuralları - 1 7

Java 'da en iyi uygulama kuralları - 2 Yanlış Doğru

Java 'da en iyi uygulama kuralları - 2 Doğru Daha Doğru

Java 'da en iyi uygulama kuralları - 3 Doğru

Java 'da en iyi uygulama kuralları - 4 Doğru

Java 'da en iyi uygulama kuralları - 5 Doğru

Java 'da en iyi uygulama kuralları - 6

Java 'da en iyi uygulama kuralları - 7

Sorular... 58