MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

Benzer belgeler
MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı

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

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

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

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

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 11: Sınıf (Class) Yapıları (Örnekler)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

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;

BİL-141 Bilgisayar Programlama I (Java)

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

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

BMH-303 Nesneye Yönelik Programlama

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

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

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

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Java String İşlemleri

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

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

Klavyeden Basit Giriş/Çıkış İşlemleri

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

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.

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

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

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

public static int Toplam int x, int y

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

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

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

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

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

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

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

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.

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

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:

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

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

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

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

Arasınav Örnek Soruları Bahar 2018

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

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

Nesne Yönelimli Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama

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

Nesneye Dayalı Programlama

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

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

JAVADA DİZİ İŞLEMLERİ

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

Nesne Yönelimli Programlama

Sunum İçeriği. Programlamaya Giriş

D İ Z İ L E R A R R A Y S

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

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

Dizi ( Array ) ve Dizgi ( String )

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

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

MOBIL UYGULAMA GELIŞTIRME

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

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

Soru 1: Fahrenheit cinsinden verilen sıcaklığı Kelvin'e çeviren bir program yazınız. Aşağıdaki dönüşüm formülünü kullanabilirsiniz:

Nesneye Dayalı Programlama

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

Nesneye Yönelik Programlama (OOP) 7.Hafta

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

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

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

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Üst Düzey Programlama

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

YZM 2105 Nesneye Yönelik Programlama

Ders 8 Konu Özeti ve Problemler

EMT2226 Nesne Yönelimli Programlamaya Giriş

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

Programlama Dilleri 3

7. HAFTA. Erişim Belirleyiciler

BMM3101 PROGRAMLAMA DİLLERİ

C++ Dersi: Nesne Tabanlı Programlama

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

HSancak Nesne Tabanlı Programlama I Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

C++ ile Nesneye Dayalı Programlama

JAVA API v2.0 Belge sürümü: 2.0.2

Java Programlama Güz Dönemi CLASS YAPISI

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Transkript:

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına 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=107 1

TEMEL KAVRAMLAR Class : sınıf (nesne kökenli programlama elemanı) Object : nesne (sınıf yapıları bilgisayar belleğinde bir işlem için kullanıldığında aldıkları isim) Method: metot (sınıfların içindeki işlevsel program parçacıkları) Constructor : Kurucu metot (nesne ilk defa oluşturulurken hangi sınıf değişkenlerinin hangi değerleri alacağını belirleyen metot) Örnek: Kalem dediğimizde genel bir sınıfı anlatıyoruz. Ali nin cebindeki kırmızı kalem ise belirli bir nesnedir. 2

CLASS (SINIF KAVRAMI) class sınıfın_ismi //sınıfa ait değişken listesi değişken_türü değişken_ismi; değişken_türü değişken_ismi; //sınıfa ait metot listesi degişken türü metotadı(metot girdi değişken listesi) //metotun içindeki hesaplanan işlemler return çıktı_değişkeni;

CLASS (SINIF KAVRAMI) Sınıf (class) tanımında metotların (veya değişkenlerin) bulunması şart değildir. Bulundukları takdirde bunlar o sınıfa ait metotlar olarak düşünülür. İlk sınıf örneği olarak içinde hiçbir metotun yer almadığı bir kutu sınıfı tanımlayalım. Bir kutuyu üç geometrik boyutu (eni, boyu, yüksekliği) cinsinden tanımlayabiliriz. class Kutu double en; double boy; double yukseklik;

CLASS (SINIF KAVRAMI) Kutu değişkenini başka bir programda tanımlarken bu değişken türünden bir nesne yaratılır. Örneğin Kutu kutu1= new Kutu(); kutu1, kutu türünde tanılanmış bir nesnedir. Bu nesnenin kendisinin de en boy ve yükseklik olmak üzere üç alt değişkeni mevcuttur. Eğer bir programda kutu1 değişkeni tanımlanmışsa, bu değişkenin alt degişkenlerine şu şekilde ulaşılabilir : kutu1.en=1.0;

CLASS (SINIF KAVRAMI) import javax.swing.*; class Kutu double en; double boy; double yukseklik; class KutuTesti public static void main(string args[]) double hacim; String s=""; Kutu kutu1=new Kutu(); kutu1.en=10.0; kutu1.boy=20.0; kutu1.yukseklik=30.0; hacim=kutu1.en*kutu1.boy*kutu1.yukseklik; s=s+"kutunun hacmi : "+hacim+"\n"; JOptionPane.showMessageDialog(null,s, "sınıfyapısı: kututesti1", JOptionPane.PLAIN_MESSAGE);

CLASS (SINIF KAVRAMI)

KURUCU ( CONSTRUCTOR ) METOT İkinci bir programda Kutu sınıfı için iki nesne tanımlama gereği duyduğumuzu varsayalım. Örneğin Kutu kutu1= new Kutu(); Kutu kutu2=new Kutu(); kutu2.en=5.0; kutu2.boy=10.0; kutu2.yukseklik=15.0;

KURUCU ( CONSTRUCTOR ) METOT Bu basit programda bile en, boy ve yükseklik değikenlerini iki defa çağırmak program listesinin uzamasına sebep olmuştur. Gerçek uygulamalarda ise çok daha yüksek sayıda değişken içeren sınıflar oluşturulabilir ve bu sınıflarda oluşturulan toplam nesne sayısı da çok fazla olabilir. Bu yüzden nesneyi ilk tanımlarken aynı zamanda değişkenlerinin değerlerini de tanımlayabilirsek, çok daha okunaklı ve kısa bir bilgisayar listesiyle aynı işi yapabiliriz.

KURUCU ( CONSTRUCTOR ) METOT Bu iş için kurucu (constructor) adı verilen metotlar kullanılır. Kurucu metotları diğer metotlardan biraz farklıdır. Metot önüne metot değişken türü gelmez ve metot dışına hiçbir değişken göndermezler. İsimleri de herzaman sınıf (class) ismiyleaynı olur.

KURUCU ( CONSTRUCTOR ) METOT Kutu sınıfı aşağıdaki şekilde değiştirilir. class Kutu double en, boy, yukseklik; //kurucu metod kutu Kutu(double e,double b,double y) en=e; boy=b; yukseklik=y; Kutu kutu2=new Kutu(5.0,10.0,15.0);

KUTU SINIFININ YENİ YAPISI import javax.swing.joptionpane; // giriş çıkış class Kutu double en; double boy; double yukseklik; //kurucu metod kutu Kutu(double e,double b,double y) en=e; boy=b; yukseklik=y;

KUTU SINIFININ TEST EDİLMESİ class kututesti2 public static void main(string args[]) double hacim; String s=""; Kutu kutu1=new Kutu(10.0,20.0,30.0); hacim=kutu1.en*kutu1.boy*kutu1.yukseklik; s+="kutu1\'in hacmi : "+hacim+"\n"; Kutu kutu2=new Kutu(5.0,10.0,15.0); hacim=kutu2.en*kutu2.boy*kutu2.yukseklik; s+="kutu2\'nin hacmi : "+hacim; JOptionPane.showMessageDialog(null,s, "Kutu testi 2",JOptionPane.PLAIN_MESSAGE); System.exit(0);

DİĞER METOTLAR Kutu sınıfını göz önüne alalım. Hacim bir kutunun özellikleri arasında yer alır, ve her zaman kutunun hacminin hesaplanması gerekebilir. Bu yüzden hacim işlemini Kutu sınıfının içerisinde tanımlamak daha ideal olacaktır. //bu metot kutunun hacmini hesaplar double hacim() return en*boy*yukseklik; Kutu kutu2=new Kutu(5.0,10.0,15.0); System.out.println(kutu2.hacim());

SINIF ÖRNEĞİ class Kutu double en, boy, yukseklik; //kurucu metod kutu Kutu(double e, double b, double y) en=e; boy=b; yukseklik=y; double hacim() return en*boy*yukseklik; public String cikti(string s1) String s=s1+"\n"+"en = "+en+"boy="+boy+"yükseklik="+yukseklik+"\n"; s+="kutu\'nun hacmi : "+hacim()+"\n"; return s; public static void yaz(string s,string s2) JOptionPane.showMessageDialog(null,s,s2,JOptionPane.PLAIN_MESSAGE);

SINIF ÖRNEĞİ class KutuTesti4 public static void main(string args[]) double hacim; Kutu kutu1=new Kutu(10.0,20.0,30.0); Kutu kutu2=new Kutu(5.0,10.0,15.0); String s=kutu1.cikti("kutu1")+kutu2.cikti("kutu2"); Kutu.yaz(s,"Kutu1 ve kutu 2 nin hacimleri");

KAYNAKÇA 1. Turhan Çoban, Java Bilgisayar Diliyle Programlama. 17