P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

Java Programlama Giriş/Çıkış
Saatte V km hız ile giden bir aracın t zamanda aldığı yolu bulan metodu yazınız. Metodu kullanacak bir program yazınız. ( yol=hız*zaman, x=V*t) — Metot.
C# - Metotlar.
Java-Veri Tipleri- Operatorler
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
Erişim Kontrolü.  Değişebilir / Değişemez yapılar  Çok programcının dahil olduğu projeler  Kütüphaneler  Çözüm  Konvansiyonlar  Erişim kontrol sözcükleri.
Miras Alma EM-406 Java.
CHAIN OF RESPONSIBILITY
EDUTIME Java Day 4 Serdar TÜRKEL.
Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Java Programlama Diline Giriş
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Sınıfların Tekrardan Kullanılması
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
DİZİLER.
P 2. Ünitede Nesneye Dayalı Programlama anlatılıyor. p Nesneye dayalı programlama yeni veri tiplerinin ve bu tipleri işletmek için gereken işlemleri oluşturmayı.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
METODLAR.
C# Metot Overloading (Aşırı yükleme)
Altuğ Altıntaş kitabından Dr. Mustafa Cem Kasapbaşı
Sorular? Öneriler?. Referanslar Referanslar (Tekrar) Eğer aşağıdaki gibi yazarsak ne olur: int x; double y; char c; ???
JAVADA PROGRAM DENET İ M İ VE OPERATÖRLER. int a ; a=4 ; // do ğ ru bir atama 4=a ; // yanlış bir atama!
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
İş Parçacıkları Thread(s)
LINQ (Language Integrated Query)
Java Sınıf ve Nesne Kavramı UML Gösterimi
Sınıflar ve Fonksiyonlar
Metotlar.
JAVA İLE PROGRAMLAMAYA GİRİŞ
METOTLAR.
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
SINIF DİYAGRAMLARI (Class Diagrams). Temel Sınıf Gösterimi  En üstte sınıf ismi bulunur.  Özellikler (opsiyonel) –Sınıfa ait tüm alanları içermelidir.
Kalıtım.
JAVA’DA DÖNGÜLER.
EDUTIME Java Day 8 Serdar TÜRKEL.
Numaralandırmalar(Enumaration)
Kalıtım , Sınıf Asli Ergün.
Polimorfizm.
Demet AYDIN METODLAR Demet AYDIN
Nesneye Dayalı Programlama
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
JAVA’DA DİZİLER Dr.Galip AYDIN.
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
Ders İçeriği Liste Soyut veri yapısı (ADT)
Bölüm 5 Nesneler ve Metotlar
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
JAVA PROGRAMLAMA ORNEKLER
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK. KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar,
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
Nesneye Dayalı Programlama
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
Kurucular(Yapıcılar), Yıkıcılar
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Nesneye Dayalı Programlama 1
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı

P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader sınıf isminin java.io paketinde tek olduğunu anlıyoruz. Fakat, başka paketlerin içerisinde BufferedReader sınıf ismi kullanılabilir.

Paketin içerisindeki tek bir sınıfı kullanmak yerine ilgili paketin içerisindeki tüm sınıfları tek seferde kullanmak için: import java.io.* ;

V ARSAY I LAN P AKET ( D EFAULT P ACKAGE ) public class Test1 { public void kos() { } class Test2 { public void kos() { } Dosya derlendiğinde adları Test1.class ve Test2.class olan 2 adet fiziksel.class dosyası elde edilir. Test1.java dosyanın en üstüne herhangi bir paket ibaresi yerleştirilmediğinden dolayı Java bu sınıfları varsayılan paket ( default package ) olarak algılayacaktır. Test1.java

P AKET O LUŞTURMA Paket oluşturmanın temel amaçlarından birisi, aynı amaca yönelik iş yapan sınıfları bir çatı altında toplamaktır; Yazılan sınıflar daha derli toplu olur, aranılan sınıflar daha kolay bulunabilir. package tr.edu.firat.bilmuh.bmu112; public class Lab1 {...

E RIŞIM B ELIRLEYICILER Java dilinde 4 tür erişim belirleyicisi vardır: friendly, public, protected, private. friendly global alanlara (statik veya değil), yordamlara (statik veya değil) ve sınıflara atanabilir. friendly global alanlar (statik veya değil) içerisinde bulundukları paketin diğer sınıfları tarafından erişilebilirler. Fakat, diğer paketlerin içerisindeki sınıflar tarafından erişilemezler. Yani, diğer paketlerin içerisindeki sınıflara karşı private erişim belirleyici etkisi oluşturmuş olurlar.

Bir global alan veya sınıf friendly yapılmak isteniyorsa önüne hiç bir erişim belirleyicisi konulmaz.

PUBLIC (H ERKESE A ÇıK ) public erişim belirleyicisi sahip olabilen sınıflar, global alanlar ve yordamlar herkes tarafından erişilebilir. Bu erişim belirleyicisine sahip olan global alanlar veya yordamlar herhangi bir yerden doğrudan çağrılabildiklerinden dolayı dış dünya ile arasındaki arabirim rolünü üstlenirler. ()

PRIVATE (Ö ZEL ) private olan global alanlara veya yordamlara (sınıflar private olamazlar; dahili sınıfar- inner class hariç) aynı paket içerisinden veya farklı paketlerden erişilemez. Ancak ait olduğu sınıfın içinden erişilebilir. private belirleyicisine sahip olan yordamların içerisinde devamlı değişebilecek /geliştirilebilecek olan kodlar yazılmalıdır.

class Kahve { private int siparis_sayisi; private Kahve() { } private void kahveHazirla() { System.out.println(siparis_sayisi + " adet kahve hazirlandi"); } public static Kahve siparisGarson(int sayi) { Kahve kahve = new Kahve(); // dikkat kahve.siparis_sayisi = sayi ; kahve.kahveHazirla(); return kahve; } public class Musteri { public static void main(String args[]) { // Kahve kh = new Kahve() ; // Hata ! // kh.kahveHazirla() ; // Hata ! // kh.siparis_sayisi = 5 ; // Hata ! Kahve kh = Kahve.siparisGarson(5); }

PROTECTED (K ORUMAL I E RIŞIM ) Sadece global alanlar ve yordamlar protected erişim belirleyicisine sahip olabilirler. Sınıflar protected erişim belirleyicisine sahip olmazlar (dahili sınıflar-inner class hariç); protected erişim belirleyicisine sahip alanlara sadece aynı paketin içerisindeki sınıflar erişebilir.

K APSÜLLENME ( E NCAPSULATION ) Nesneye yönelik programlama özelliklerinden birisi kapsüllenmedir; Dışarıdaki başka bir uygulamanın bizim nesnemiz ile sadece arabirimler (public) sayesinde iletişim kurması gerektiğini, ancak, arka planda işi yapan esas kısmın gizlenmesi gerektiğini söyler.

Aynı PaketAyrı PaketAyrı paket-türetilmiş public erişebilir protected --- friendly erişebilirerişemez private ---

SINIFLARIN TEKRAR KULLANILMASI Komposizyon class Meyva { //... } class Elma { private Meyva m = new Meyva(); //... }

public class Motor { private static int motor_gucu = 3600; public void calis() { System.out.println("Motor Calisiyor") ; } public void dur() { System.out.println("Motor Durdu") ; }

public class AileArabasi { private Motor m = new Motor(); public void hareketEt() { m.calis(); System.out.println("Aile Arabasi Calisti"); } public void dur() { m.dur(); System.out.println("Aile Arabasi Durdu"); } public static void main(String args[]) { AileArabasi aa = new AileArabasi() ; Aa.hareketEt(); Aa.dur(); }

K ALıTıM Kalıtım bir sınıftan diğer bir sınıfın türemesidir. Yeni türeyen sınıf, türetilen sınıfın global alanlarına ve yordamlarına (statik veya değil) otomatik olarak sahip olur ( private olanlar hariç).

class Kedi { //.. } class Kaplan extends Kedi { //.. }

public class Hayvan { protected String a = "Hayvan.a"; String b = "Hayvan.b"; //friendly private String c = "Hayvan.c"; public String d = "Hayvan.d"; ; } public class Kedi extends Hayvan { // Türeyen public Kedi() { System.out.println("Kedi olusturuluyor"); System.out.println(a); // System.out.println(b); // ! Hata ! erisemez ? // System.out.println(c); // ! Hata ! erisemez ? System.out.println(d); } public static void main(String args[]) { Kedi k = new Kedi(); } Kedi olusturuluyor Hayvan.a Hayvan.d

class Kedi { protected int ayakSayisi = 4 ; public void yakalaAv() { System.out.println("Kedi sinifi Av yakaladi"); } public static void main(String args[]) { Kedi kd= new Kedi() ; kd.yakalaAv() ; } class Kaplan extends Kedi { public static void main(String args[] ) { Kaplan kp = new Kaplan(); kp.yakalaAv(); System.out.println("Ayak Sayisi = "+kp.ayakSayisi);} }

Gİ ZL İ K AL I T I M Oluşturduğumuz her yeni sınıf otomatik ve gizli olarak Object sınıfından türer. Object sınıfı Java programlama dili içerisinde kullanılan tüm sınıfların tepesinde bulunur. public class YeniBirSinif extends Object { }

public class YeniBirSinif { public static void main(String[] args) { YeniBirSinif ybs1 = new YeniBirSinif(); YeniBirSinif ybs2 = new YeniBirSinif(); System.out.println("YeniBirSinif.toString()" + ybs1 ) ; System.out.println("YeniBirSinif.toString()" + ybs2 ) ; System.out.println("ybs1.equals(ybs2)"+ybs1.equals(ybs2)) ; //.... } YeniBirSinif.toString() YeniBirSinif.toString() ybs1.equals(ybs2) false

E XTENDED C LASSES FROM P ERSON C LASS Person StudentEmployee FacultyStaffUndergraduateGraduate MastersDegreeNonDegreePhD