Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar

Slides:



Advertisements
Benzer bir sunumlar
C# - Metotlar.
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Tuğba DEMİREL
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Nesneye Yönelik Programlama
Programlama-II (Java ile Bilgisayar 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.
Değişken Bildirimleri
Bölüm 6 – Metodlar ve Parametreler
Javascript Oğuz İNAL.
Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri
OOP Tanımlar.
Metodlar ve Parametreler
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Nesne Tabanlı Programlama
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
METODLAR.
İSİM UZAYLARI (NAMESPACE)
Nesneye Yönelik Programlama
Chapter 7: Using Methods. Metotları ve Kodlamayı Gizlemeyi Anlama Metot – Kapsüllenmiş ifadeler serisini gerçekleştiren bir görev – Kullanılan metodun.
Nesneye Yönelik Programlama
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Görsel C# Programlama Güz 2009 (6. Hafta).
Java Sınıf ve Nesne Kavramı UML Gösterimi
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
NESNE YÖNELİMLİ PROGRAMLAMA
Metotlar.
METOTLAR.
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
Nesneye Yönelik Programlama (12. Sunu). İsim Uzayları (Namespaces) Sınıfınızda Deniz adında iki öğrenci olduğunu kabul ediniz. Böyle bir durumda bu öğrencileri.
Bilgisayar Programlama
JAVA’DA DÖNGÜLER.
Kalıtım , Sınıf Asli Ergün.
Demet AYDIN METODLAR Demet AYDIN
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
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.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Bil 102 Bölüm 6 Diziler.
Görsel C# ile Windows Programlama
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 7. Hafta.
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,
10. NESNEYE YÖNELİK PROGRAMLAMA Öğr.Gör. Murat ASLANYÜREK.
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.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
C Programlama Dili Bilgisayar Mühendisliği.
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
Excel’de VBA Programlama (Visual Basic Application)
JAVA’DA DİZİLER. Özet  Dizi: belirli sayıda ve aynı veri türünden de ğ işkenlere aynı adla erişilmesini sa ğ layan bir yapıdır.  Dizilerde döngü işlemleri.
Bilgisayar Bilimi Problem Çözme Süreci-2.
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

Ö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(); // çalışmaz Çiçekçi buket = new İnsan(); }

JVM

NTP’nin anahtar kavramları Soyutlama/Abstraction Sadece gerekenleri alma Kompozisyon-birleştirme/Composition Parçalardan bütünü inşa etme Ayırma/Separation Ne ve nasıl sorularının cevabını ayırma Genelleme/Generalization Ortak yönleri bulma

Soyutlama/Abstraction “Gerçek dünyadaki herhangi bir şeyin sadece kullanılacak kısımlarına indirgenmesi ve basitleştirilmesi” Kapsülleme/Encapsulation

İyi bir soyutlamanın özellikleri Uygun şekilde isimlendirme Mantıklı olma – özellik ve davranışlardan ilişkili ve anlamlı olanları alma Netlik/Accurate – özellik ve davranışların modellenen elemanla tam olarak uyuşması Minimum tutma/Minimal – fazladan herhangi bir şey bulunmaması Tamlık- gerekli bütün özellik ve davranışları kapsama Tutarlılık – İşlemlerin birbiriyle, isimleriyle, parametreleriyle, dışarıya aktardığı değerlerle ve istenilen davranışla tutarlı olması Ayrık/Decoupled – Farklı soyutlamların biribirine bağımlı olmaması

Sınıflar “A class is a blueprint, or prototype, that defines the variables and the methods common to all objects of a certain kind." - Java Tutorial “Bir sınıf belirli bir nesne türü için ortak olan özellik ve davranışların tanımlandığı bir kalıp veya prototiptir ” Java’da her şey bir sınıf içerisinde tanımlanır

Sınıflar Sınıflar Application Program Interface (API) veya programcının tanımladığı veri yapıları ile tanımlanır Standart Java API sınıfları paketler(packages) içinde düzenlenmiştir: java.lang java.util ...

Sınıflar Her bir sınıf için yalnız bir dosya bulunur ve uzantısı .class olur Başlangıç için her bir sınıf için bir .java uzantılı dosya oluşturmak uygundur

Bir Java sınıfının anatomisi Package Import(s) Comments(açıklamalar) Declaration(bildirim) Fields(alanlar) Constructors(yapıcılar) Methods(metotlar)

Metotlar Bir metot isimlendirilmiş bir dizi komutlardan oluşur ve bir nesnenin istediğiniz bir işlemi yapmak için gerçekleştirmesi gereken faaliyettir. Metotların bir imzası/signature vardır:Bu imza bir isim ve sıfır veya daha fazla sayıda parametreden oluşur Metotlar geri döndürdükleri bir veri yapısı tanımlarlar(primitive veya object veya void)

Metotlar Genelde mümkün olduğunca kısa tutulur Yapıcılar/Constructors – nesnenin ilk oluşum durumunda lacağı değerleri belirleyen metottur. Yapıcılar ve diğer metotlar aşırı yüklenebilir. over-loaded Yapıcılar ve diğer metotlar erişim özelliği belirtebili(accessibility modifiers)

Yapıcılar Yapıcılar sınıfa ait yeni nesneler sınıf tanımındaki kalıp kullanılarak üretilirken başvurulan mekanizmalardır. Yapıcının amacı yeni nesneye ilk değerlerini atamaktır. Yapıcılar metotlara benzer ancak Her zaman isimleri sınıf ismiyle aynı olmak zorundadır Hiçbir zaman dışarıya bir değer döndürmezler

Yapıcılar Bir yapıcı metot çağırmak için new işlemi kullanılır ve gerekli parametreler verilir. Her sınıf varsayılan bir yapıcıya sahiptir: public ClassName() {} bu yapıcının parametresi yoktur ve herhangi bir ilk değer atamaz.

Yapıcılar Eğer siz bir tane tanımlamazsanız, Java sizin için parametresi olmayan varsayılan bir yapıcıyı otomatik olarak oluşturur. Eğer siz parametreli veya parametresiz bir yapıcı metot yazarsanız, Java sizin ne yaptığınızın farkında olduğunuzu varsayarak herhangi bir yapıcıyı tanımlamaz.

Yapıcılar: Başucu kuralları Hatırlatma: Bir yapıcının amacı yeni üretilmiş bir nesneyi bilinen bir ilk duruma getirmektir. Yapıcılar çok fazla işlem yapmamalıdır Nesneye ilk değer atama işlemi ile nesnenin davranışlarını kesinlikle birbirinden ayırmak gerekir.

Nesneler “Bir nesne değişkenler ve ilişkili metotlar yazılım paketidir. “- Java Tutorial Her şey ya temel bir veri yapısı ya da bir nesnedir. Nesneler: Gerçek dünyadaki fiziksel elemanların modeli (Öğrenci gibi) veya Soyut elemanlar olabilir (Dersler, Seçimler, Finansalİşlemler gibi)

Nesneler Java’da temel bir veri bildirimi yapımasıyla bellekte o veri için uygun yer ayırılır Ancak bir nesne bildirimi yapılınca bellekte o nesneye (veya o nesneden türetilen bir tipe) erişimi sağlayacak referansa (reference) değişkeni için yer ayırılır.

Nesneler Nesneyi tutacak değişken bildirimi yapmakla nesne üretilmiş olmaz. Nesne örneği için bellekte yer ayırılması dinamik olarak new operatorü kullanılarak gerçekleşir. Nesne tipleri istenilen şekilde oluşturulur.

Değişken(Alanlar) / Variable (Fields) Yerel Değişkenler/Local Variables Bir metot veya küçük bir blok kodu içerisinde bildirimi yapılan ve sadece o alanda kullanılan değişkenlerdir. Örnek/nesne değişkeni/Instance variables İyi bir Java sınıfında hemen hemen bütün değişkenlerin örnek veya yerel değişken olması gerekir. Her nesne(instance) alanların kendine ait bir kopyasına sahiptir.

Değişken(Alanlar) Sınıf değişkenleri/Class variables Bir alan adı veya değişkeni static anahtar kelimesiyle nitelenirse bu değişken bir sınıf değişkeni olur: Bu sınıftan kaç tane nesne üretilirse üretilsin bu tür değişkenlerden sadece bir tanesi için yer ayırılır. Bütün nesneler bu sınıf değişkenini paylaşırlar.

Sınıf Değişkenlerini Kullanma Java’da sınıf değişkeni bildirimi yapmak için iki iyi sebep vardır: static final bir sabit olarak kullanmak private static değişken olarak nesneler arasında bilgi paylaşımı sağlayan özel bilgi elemanı olarak kullanmak

Problem Tanımı – CS Student Kayıt modeli: Öğrenci isimlerinin komut satırından girilmesine izin verilecek Öğrenci ikilileri lab için eşlenecek. Tek sayıda öğrenci olması durumunda bir kişi eşsiz kalacak. Öğrenciler ve varsa labdaki arkadaşı kayıt sırsının tersi olacak şekilde listelenecek

Sınıflar, Alanlar, Metotlar ve Nesneler

Erişim Bir Java sınıfı yazılırken, programcı metotlara ve değişkenlere dışarıdan nesnelerin ne şekilde müdahale edebileceğini kontrol etmek için bazı erişim niteleyicileri belirtebilir. C++’dan farklı olarak, her bir metot veya alan için ayrı erişim niteleyicisi kullanılabilir.

Erişim public private Bütün dış nesneler public metotları çağırabilir. Bütün dış nesneler public alanları değiştirebilir. private Metotlar sadece o sınıf içindeki metotlar tarafından çağırılabilir- alt sınıflar da bunları kullanamaz. Alanlar sadece o sınıf içindeki metotlar tarafından kullanılabilir- alt sınıflar da bunları kullanamaz.

Erişim protected "Package erişim” Metotlar sadece o sınıf içindeki metotlar ve alt sınıf metotları tarafından çağırılabilir. Alanlar sadece o sınıf içindeki metotlar ve alt sınıf metotları tarafından kullanılabilir. "Package erişim” Başka bir erişim niteleyicisi kullanılmazsa varsayılan niteleyicidir: Aynı paket içerisinde bulunan sınıflara ait nesneler bu metotları çağırabilir. Aynı paket içerisinde bulunan sınıflara ait nesneler bu alanları kullanabilir.

Kompozisyon/Birleştirme Bu modeldeki hemen hemen bütün nesneler ya diğer nesnelerden oluşmuştur, ya diğer nesneler hakkında bilgi sahibidir, ya da diğer nesneler ile birlikte çalışır. ”Java Design" Peter Coad and Mark Mayfield, Prentice Hall, 1996 has-A ilişkisini tanımlar