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



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

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;

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

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

YZM 2105 Nesneye Yönelik Programlama

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

Sunum İçeriği. Programlamaya Giriş

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

NESNEYE YÖNELİK PROGRAMLAMA

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

Lambda İfadeleri (Lambda Expressions)

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

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

BİL-141 Bilgisayar Programlama I (Java)

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

Java String İşlemleri

HSancak Nesne Tabanlı Programlama I Ders Notları

C#(Sharp) Programlama Dili

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.

HSancak Nesne Tabanlı Programlama I Ders Notları

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

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

Genel Programlama II

Dr. Fatih AY Tel:

JAVADA DİZİ İŞLEMLERİ

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

ALGORİTMA VE PROGRAMLAMA II

public static int Toplam int x, int y

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

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Nesne Tabanlı Programlama

BİL-142 Bilgisayar Programlama II

BİLG Dr. Mustafa T. Babagil 1

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

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Hafta 13 Fonksiyonlar

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

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

How to ASP Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

YZM 2105 Nesneye Yönelik Programlama

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Ders 8: Metotlar. barisgokce.com

VERİ TABANI ve YÖNETİMİ

ALGORİTMA VE PROGRAMLAMA II

C++ Dersi: Nesne Tabanlı 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:

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

C Programlama Dilininin Basit Yapıları

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

Nesne Yönelimli Programlama

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

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

Java da Program Denetimi ve Operatörler

Özyineleme (Recursion)

C++ Dersi: Nesne Tabanlı Programlama

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Diziler (Arrays) Çok Boyutlu Diziler

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

Dr. Fatih AY Tel: fatihay@fatihay.net

BTEP243 Ders 3. class Yazım Kuralı:

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Lecture 11: Generics

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

C# Metotlar ve Metot Tanımlama

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

ALGORİTMA VE PROGRAMLAMA I

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Temel Giriş/Çıkış Fonksiyonları

BMH-303 Nesneye Yönelik Programlama

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

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

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

İNTERNET PROGRAMCILIĞI DERSİ ÇALIŞMA SORULARI

Yrd. Doç. Dr. Caner ÖZCAN

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

Göstericiler (Pointers)

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BİL1001 Bilgisayar Bilimlerine Giriş 1

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

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

Transkript:

5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını doğada cins isimlere benzetebiliriz. Bir cins kendi başına belirli bir nesne değildir; ancak belirli türden nesnelerin ortak özelliklerini belirten soyut bir kavramdır. Örneğin, kitap bir cins isimdir. Kitap diyerek genel bir sınıfı anlatıyoruz Ama Ali nin elindeki kırmızı kitap dediğimiz de bu belirli bir nesnedir. Java da sınıfları doğadaki cinsler gibi düşürsek, konuyu kavramamız kolaylaşacaktır. Java sınıfı, tıpkı bir cinste olduğu gibi, ortak özelikleri belirlenmiş bir topluluğun adıdır. Bir java sınıfının niteliklerini değişkenlerle (attributes, fields), davranışlarını metotlarla (fonksiyon, procedure) belirleriz. Java programları sınıf (class) lardan oluşur. Bütün sınıflar aynı yapıya sahiptirler. Aralarındaki farkı yaratan şey, içerdikleri değişkenler ve metotlardır. Bazıları hiç değişken ve/veya metot içermez, bazıları az, bazıları çok değişken ve metot içerebilir. Java dilinde bir sınıfın genel tanımı şu şekildedir. Class Sınıf_İsmi // Sınıfa ait değişkenler listesi değişken_türü değişken_ismi;... // sınıfa ait method listesi değişken_türü method_adı(method_girdi_değişkenler_listesi) //methoda ait değişken tanımlamaları değişken_türü değişken_ismi;... return çıkış_değişkeni; Sınıf tanımlamasında metotların bulunması şart değildir. Örnek Sınıf Bildirimi: Java dilinde sınıf tanımı çok kolaydır. Örneğin, deyimi bir sınıf bildirir. Burada class anahtar sözcüktür. İnsan sınıfın adıdır. İstediğiniz adı verebilirsiniz. Yukardaki insan sınıfı boş olarak tanımlanmıştır. Bu sınıfı kullanılabilir hale getirebilmek için çeşitli değişkenler veya methodlar tanımlanabilir.örneğin, bir İnsan ın boyu, kilosu, yaşı, cinsiyeti, uyruğu, sac_rengi, ayakkabı_numarası vb. bilgilerden istediklerimizi sınıfın gövdesine koyabiliriz.

Nesne Kavramı: Bir sınıfın özelleştirilmesi ve onu yeni bir isimle yaratılması ile oluşan yapıya nesne denir. Java dilinde bir sınıf bir tasarımdır. Onu somut olarak göremez, kullanamayız. Onun için sınıftan somut nesne(ler) kurmalıyız. Yani tanımladığımız sınıf sadece bir yapıdır bu yapıyı kullanabilmek için nesneler tanımlamak gerekir. Benzer olarak, bir sınıftan istediğimiz kadar nesne kurabiliriz. O nesnelerin bazı özelikleri ortaktır, ama daima birini ötekinden ayıran öznitelikleri vardır. Yeni bir nesne oluşturmak için New komutu kullanılır. İnsan sınıfından yeni bir nesne oluşturmak için; Insan insan1= new Insan(); Örnek: class Kitap string ad; int sayfa_sayisi; kitap ktp1= new kitap(); // kitap1 adında kitap sınıfına ait bir // nesne türetildi. kitap1.ad= Nesneye Yönelik Programlama ; kitap1.sayfa_sayisi=540; Metot Oluşturma: Sınıf ve nesne kavramı anladıktan sonra bu yapıları etkin bir şekilde kullanabilmek için metotlar oluşturulur. Metotlar (procedureler, fonksiyonlar ) oluşturduğumuz sınıfa her hangi bir işlem yaptırabilmek için kullanılır. Daha önce tanımladığımız insan sınıfını kullanalım. double boy; string cinsiyet; İnsan sınıfımız değişkenleri görüldüğü gibi belirlenmiştir. Bu sınıftan türeteceğimiz her nesne bu niteliklere de sahip olacaktır. Şimdi metodu oluşturalım. Burada yaş, kilo, boy ve cinsiyet değerleri alınarak ideal kilo hesaplaması yapılacaktır. Bu metot için kullanılacak değişkenler yukarda belirlenmiştir. Şimdi metodumuzu oluşturalım. String cinsiyet; public double id_kilo(int y,int k,int b, String c) double ideal_kilo=0.0;

if(c=="bayan") ideal_kilo=(b-100+y/10)*0.8; if(c=="bay") ideal_kilo=(b-100+y/10)*0.9; if(k< ideal_kilo) System.out.println("Zayıfsınız.Kilo almalısınız"); if(k>ideal_kilo) System.out.println("İdeal kilonuzun üzerindesiniz.zayıflayın."); return ideal_kilo; Yukarda id_kilo adında bir metot oluşturulmuştur. id_kilo metodunun başındaki double ifadesi metodun geri döndüreceği değerin tipini belirtir. Hem sınıfımız hem metodumuz hazır. Artık sınıfımızdan nesne türetebilir ve metodu kullanabiliriz. double ideal; Insan insan1=new Insan(); insan1.yas=23; insan1.kilo=65; insan1.boy=174; insan1.cinsiyet="bay"; ideal=insan1.id_kilo(insan1.yas, insan1.kilo, insan1.boy, insan1.cinsiyet); System.out.println("İdeal Kilonuz:"+ideal); Ekran Çıktısı: Zayıfsınız.Kilo almalısınız İdeal Kilonuz:68.4 Bu şekilde kullanarak bilgilerini girdiğimiz kişinin ideal kilosunu hesaplayabiliriz. Değişkenlerini kendi belirlediğimiz insan sınıfını yazdık. Bu insan sınıfa ait bir nesne türettik. Daha sonra ise değişkenlere ideal kilosunu hesaplamak istediğimiz kişinin bilgilerini vererek oluşturduğumuz yeni nesnenin sınıfına ait metodu kullanarak hesaplamamızı yaptık. Kurucu Metotlar: Kurucu metotlar nomal metotlardan farklı olarak nesne oluşturulduğunda onun hangi başlangıç değeri ile yükleneceğini tayin eder. Kurucu metotlar için; Kurucu metotların ve bulunduğu sınıfın adı aynıdır. Kurucu metotların geri dönüş tipi bulunmaz. Sınıfa ait özel bir kurucu metot tanımlanmamışsa programcı başlangıç değerlerini kendisi atayabilir ya da atamak için başka metotların çağrılmasını bekleyebilir.

Yukardaki örneğimizde bunu biz kendimiz atayarak yapmıştık şimdi aynı örneğe bir kurucu metot yazalım ve verilerin atama işlemini kurucu metot yapsın. String cinsiyet; Insan(int y,int k, int b, String c) //Kurucu Metot yas=y; kilo=k; boy=b; cinsiyet =c; public double id_kilo()// değişkenlere kurucu metot ile değer // atandığı için parametre almasına gerek yok double ideal_kilo=0.0; if(cinsiyet=="bayan") ideal_kilo=(boy-100+yas/10)*0.8; if(cinsiyet=="bay") ideal_kilo=(boy-100+yas/10)*0.9; if(kilo< ideal_kilo) System.out.println("Zayıfsınız.Kilo almalısınız"); if(kilo>ideal_kilo) System.out.println("İdeal kilonuzun üzerindesiniz.zayıflayın."); return ideal_kilo; Bu şekilde kurucu metodumuzu yazdık şimdi yeni bir nesne türetelim. Artık Insan sınıfımızda bir nesne türettiğimiz de kurucu metot ile direk değişkenlere değerleri atamış oluruz. Yazacağımız metotlar için de bu değişkenleri isimleri ile kullanarak işlem yapabiliriz. Insan insan1 = new Insan(23,65,174, Bay ); insan1.id_kilo(); Görüldüğü gibi değişkenleri tek tek tanımlamak yerine kurucu metot kullanarak bu işlemi daha kolay bir şekilde tamamladık. Böyle id_kilo metodunun da değişken almasına gerek kalmadı ve direk nesne üzerinden çağrılarak ideal kilo hesaplaması yapıldı.

this deyimi: this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur Bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt değişkenini tanımlamak gerekir. Nesne daha tanımlanmadığından direk olarak nesne ismini kullanamayız. Bunun yerine this deyimi kullanılır. Class Insan string cinsiyet; Insan(int yas,int kilo, int boy, string cinsiyet) this.yas=yas; this.kilo=kilo; this.boy=boy; this.cinsiyet =cinsiyet; Uygulamalar 1. Okul isminde yeni bir sınıf oluşturun. Bu sınıf String ve 2 integer tipinde üç üye değişkene sahip olsun. Bu değişkenleri okul_ismi, toplam_ogrenci ve derslik_sayısı olarak belirleyin. Oluşturduğunuz sınıfınıza bir dersliğe kaç öğrenci düştüğünü hesaplayan metodu yazın. Bu sınıfa ait yeni bir nesne türetin. Sınıfa ait metodu kullanarak okul ismi ve derslik başına düşen öğrenci sayısını ekrana yazdıran java kodunu yazın. 2. Kurucu metodu olacak şekilde bir dikdörtgenler sınıfı oluşturun. Daha sonra bu sınıftan türettiğiniz nesne ile bu dikdörtgenin çevresi ve alanını hesaplayan java kodunu yazınız. 3.Üye değişkenleri bir integer dizi ve integer sayi olan bir sınıfa verilen diziyi ve verilen sayıyı parametre olarak alan bir metot oluşturun. Bu metot verilen dizideki sayıları küçükten büyüğe sıralayarak, verilen sayi daki dizinin elemanını geri döndürsün. Yani ; Dizi[5]=9,22,5,1,17 ve sayi=3 ----> dizi[5]=1,5,9,17,22 dizi[3]=17 4. Bir sınıf içinde birden fazla kurucu metot olabilir mi araştırınız. 5.Ekran çıktısına bakın ve çıktının neden böyle olduğunu açıklayın. Insan sınıfı içindeki Degistir metodunun aldığı parametrenin tipine dikkat edin. String ad; void Degistir(Insan h) h.ad = Hsyn ; Insan yeni = new Insan(); yeni.ad = Hüseyin ; System.out.println("1: yeni.ad: " + yeni.ad); yeni.degistir(yeni); System.out.println("2: yeni.ad: " + yeni.ad);