Sunum İçeriği. Programlamaya Giriş 22.03.2011

Benzer belgeler
HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

Ders 8: Metotlar. barisgokce.com

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

BTEP243 Ders 3. class Yazım Kuralı:

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

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

NESNEYE YÖNELİK PROGRAMLAMA

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

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

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

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

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

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

C# Metotlar ve Metot Tanımlama

Göstericiler (Pointers)

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

BİL-141 Bilgisayar Programlama I (Java)

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;

Nesneye Yönelik Programlama (OOP) 7.Hafta

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

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

Özyineleme (Recursion)

Lambda İfadeleri (Lambda Expressions)

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

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

C#(Sharp) Programlama Dili

YZM 2105 Nesneye Yönelik Programlama

Üst Düzey Programlama

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

BİL-142 Bilgisayar Programlama II

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

Nesne Yönelimli Programlama

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

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

C++ Dersi: Nesne Tabanlı Programlama

7. HAFTA. Erişim Belirleyiciler

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

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

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

Diziler (Arrays) Çok Boyutlu Diziler

public static int Toplam int x, int y

Pointer Kavramı. Veri Yapıları

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Programlama Dillerinde Kullanılan Veri Tipleri

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

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.

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

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

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

Bölüm 9. Altprogramlar ISBN

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

HSancak Nesne Tabanlı Programlama I Ders Notları

Yrd. Doç. Dr. Caner ÖZCAN

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

BİL-141 Bilgisayar Programlama I (Java)

Nesne Tabanlı Programlama

Genel Programlama II

C Programlama Dilininin Basit Yapıları

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

C++ Dersi: Nesne Tabanlı Programlama

Operatörlerin Aşırı Yüklenmesi

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.

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C++ Dersi: Nesne Tabanlı Programlama

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

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Öğr. Gör. Serkan AKSU 1

4.Hafta. this Anahtar Sözcüğü

Yrd. Doç. Dr. Caner ÖZCAN

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

YZM 2105 Nesneye Yönelik Programlama

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

Nesneye Dayalı Programlama

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

Java da Program Denetimi ve Operatörler

ALGORİTMA VE PROGRAMLAMA I

19 Şubat 2016 Cuma

HSancak Nesne Tabanlı Programlama I Ders Notları

BMH-303 Nesneye Yönelik Programlama

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

ALGORİTMA VE PROGRAMLAMA I

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama

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

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

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

NESNE TABANLI PROGRAMLAMA

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

BİLG Dr. Mustafa T. Babagil 1

Transkript:

Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon çağırma nedir? Neden Fonksiyon tanımlarız? Java da Fonksiyon Örnekleri Sorular? 1

Nesne Tabanlı Programlamaya Giriş Sınıflar ve nesneler Java programlamanın temelini oluştururlar. Java ile geliştirilmiş bütün uygulamalarda sınıf ve nesne kavramını kullanmak zorunluluğu vardır. Örneğin C++ dilinde böyle bir zorunluluk yoktur. Bu dilde sınıf ve nesneler olmadan da program geliştirmek mümkündür. Java da ise mümkün değildir. Bu sebeple Java için pure(saf) nesne tabanlı programlama dilidir denilir. Nesne Tabanlı Programlama (OOP) kavramında ilk bilinmesi gereken şey sınıf(class)kavramıdır. Sınıflar, içerisinde değişken/değişken grupları, metot/metotlar barındıran bir şablon oluştururlar. Bir sınıf oluşturulduktan sonra bu sınıfı yeni bir veri tipiymiş gibi kullanabiliriz. Bu amaçla kullanılan yapılara ise nesne denir. Nesneler, yaratıldıkları sınıfların özelliklerini taşırlar ve artık ilgili sınıfın birer somut örneğidir diyebiliriz. Örneğin şehir kelimesini bir sınıf olarak düşünürsek Elazığ, Ankara ve İstanbul şehir sınıfının birer örneği olarak düşünülebilir. Sınıflar Sınıflar java programlamada kullanılan temel programlama elemanlarıdır. Bütün kod içeriği sınıflar içerisinde bulunur. Asıl kullanım amacı, verileri tek tek değişkenlerde tutmak yerine, birbirleriyle ilişkisi olan verileri bir araya getirmek ve bunlara tek bir referans aracılığıyla erişmeyi sağlamaktır. Örneğin öğrenci bilgisini tutabilmek için ad, soyad, öğrenci numarası, yaş ve adres gibi bilgilere ihtiyacımız olduğunu düşünelim. Bunların hepsini her bir öğrenci için ayrı ayrı değişkenlerde tutmak yerine öğrenci isimli bir sınıf oluşturabilir ve ihtiyacımız olan değişkenleri bu sınıf içinde gruplayabiliriz. Daha sonra sınıfımızdan oluşturacağımız her yeni nesne sınıfımızın özelliklerini taşıyacağı için yükten kurtulmuş olunur diyebiliriz. 2

Nesneler Bir sınıfı tanımladıktan sonra aslında yeni bir veri tipi oluşturmuş oluruz. Java dilinde oluşturduğumuz bu yeni veri tipine sahip değişkenlere nesne adı verilir. Nesneler oluşturulan sınıfların birer somut örneği, hafızada yer alan, ilgili sınıfın tipinde birer somut değişkendir diyebiliriz. Şimdiye kadarki uygulamalarımızda kullanmış olsak ta burada bir kez daha bir sınıfta nelerin bulunabileceğine değinelim. Bir sınıf, üye değişkenler, yapılandırıcı metotlar, üye değişkenlere dışarıdan erişim sağlayan getter/setter metotlar ve çeşitli metotlar içerebilir. Şimdi kısaca bunların ne anlama geldiğini görelim. Bir sınıfın üyeleri Üye değişkenler: Sınıfta tutulacak bilginin depolandığı özel değişkenlerdir. Sınıfımızın değişkenlerinin ne olacağı uygulamamızın tipine göre şekillenecek bir şeydir ve programlama mantığımızla alakalı bir durumdur. Nesne tabanlı programlamada amaç bir anlamda gerçek hayatın programlama dili ile kodlanabilmesidir. Sınıf üye değişkenlerin ne olacağı problemimizin doğasına bağlıdır. Yapılandırıcı metotlar: Sınıf ilk oluşturulurken new operatoru ile çağrılan metotlar. Üye değişkenlere dışarıdan erişim sağlayan metotlar: genelde public kelimesi ile tanımlanırlar ve üye değişkenlere dışarıdan erişimi sağlarlar Diğer metotlar: sınıf içerisindeki verileri kullanarak genellikle sınıf ile ilgili çeşitli çıktılar üreten metotlardır. Şimdi bu yapıları ve bu yapılar oluşturulurken kullanılan temel java ifadelerini kısaca görelim 3

Bir sınıf örneği public class Ogrenci{ private String ad; private String soyad; private int ogrencino; private String bolum; public Ogrenci(){ //? Fonksiyon! ad= ; soyad= ; ogrencino=-1; bolum= ; public void setad(string ad){ this.ad=ad; public void setsoyad(string soyad){ this.soyad=soyad; Anahtar kelimeler Public, private ve protected ;üye değişkenler ve sınıf metotları için erişim seviyeleri tanımlamak için kullandığımız anahtar kelimelerdir. Bunlar sınıf içerisinde bulunan değişkenlere nasıl erişim sağlanacağını belirlemek için kullanılır. public: bu anahtar kelime önüne geldiği değişkenin veya metotların bütün sınıflardan erişilebilir olmasını sağlar. Private: önüne getirildiği değişken veya metodun dışarıdaki sınıflardan erişilmez olmasını sağlar. Private değişkenler sadece kendi sınıfı içerisinde kullanılabilir. Protected: önüne getirildiği değişken veya metotlara sadece kendi paketi içerisindeki sınıflar tarafından erişim izni verir. 4

Anahtar kelimeler ve erişim izinleri Aşağıdaki şekil erişim seviyelerini anlamamız açısından güzel bir örnektir. Yeşil renk kullanım izninin olduğunu, kırmızı renk ise kullanım izninin olmadığını göstermektedir new operatörü Bu operatör bir sınıf adıyla birlikte kullanılır. Bellekte ilgili sınıfa ait bir nesne oluşturur. Bir örnek olarak; Ogrenci o1=new Ogrenci(); İfadesi ile o1 nesnesi için Ogrenci sınıfına özel bir bellek ayrılmasını sağlar. Çok defa örneklerde kullandığımız new operatörü javada sıklıkla kullandığımız bir ifadedir. Temel tip değişken tanımlamalarımızda veya kendi sınıfımızın bir nesnesini yaratacağımız zaman kullandığımız bir kelimedir. Aşağıda bir başka örnek olarak oku ismiyle Scanner sınıfının bir örnek nesnesi yaratılmaktadır. Scanner oku= new Scanner(System.in); 5

Nokta(.) operatörü Nesneler tanımlandıktan sonra ve new operatörü aracılığı ile oluşturulduktan sonra nesnelerin public ve protected anahtar kelimeleri kullanılarak tanımlanmış üye değişken veya metotlarına dışarıdan erişim sağlayabilmek için java nokta operatörünü kullanır. Örnek olarak; Yukarıda tanımladığımız Ogrenci sınıfının bir nesnesini yaratarak üye değişkenlere erişim sağlayalım; // Ogrenci yeniogrenci=new Ogrenci(); yeniogrenci.setad( Abdullah ); yeniogrenci.setsoyad( Çelik ); // Buraya kadar,sınıf tanımı, yapılandırıcı tanımı, üye değişken tanımları, sınıftan nesne üretimi, ve nokta operatörü ile nesnelerin değişkenlerine erişimleri görmüş olduk. Bu kısımda artık metotlara detaylı olarak girebiliriz. 6

Genel olarak metotlar, parametre olarak dışarıdan verilen veriler üzerinde çeşitli işlemler gerçekleştiren isteğe bağlı olarak yapılan bu işlemlerin sonucunu geri döndüren programlama ifadeleridir. Java dilindeki metotlar, C/C++,C# dillerinde fonksiyon, bazı dillerde procedure ve module olarak isimlendirilir. Özetle,metotlar, hemen hemen tüm programlama dillerinde kullanılan ve belirli işlevleri yerine getirmek için kullanılan yapılardır. değer döndürmek zorunda değillerdir. parametre alabilir veya almayabilirler. Javada metot tanımı şöyledir: Özel_anahtar_kelime Dönüş_tipi Metot_Adı(Metot_parametreleri) { Metot işlevleri; // işlemler bu kısımda yapılacaktır 7

Özel Anahtar Kelimeler: Bu alan dolu olmak zorunda değildir. Bu alan metoda erişim seviyesini belirleyen public, private, protected anahtar kelimelerini veya metotun statik metot olup olmadığını belirleyen static kelimelerini içerebilir. Dönüş Tipi: Genellikle bir sonuç döndürürler. Sonuç döndürme işlemi return kelimesi ile yapılır. Eğer metot bir değer döndürmeyecekse,geri dönüş tipi kısmında void kelimesi bulunmalıdır. Metot Adı: a ana program içerisinden erişimlerde metodun adı kullanılır. Metot Parametreleri: Bu alan metodun yapacağı işlemler için sağlanacak parametreleri belirler. Parametreler parantez içine yazılır ve her bir parametre diğerinden virgülle ayrılır. Metot içeriği: Metodun yapacağı işlemler burada tanımlanır. private int topla(int sayi1,int sayi2){ int sonuc ; sonuc = sayi1+sayi2; return sonuc; int sayi1 int sayi2 int sonuc; sonuc=sayi1+sayi2; return sonuc; sonuc topla metodu 8

Görüldüğü gibi topla metodu int tipinde sayi1 ve sayi2 isminde iki parametre alan ve bu iki değerin toplamını döndüren bir metottur. Toplam int tipinde istendiğinden metodun geri dönüş tipi de int tipindedir. Erişim seviyesi ise private dir. Yani sadece içinde bulunduğu sınıf tarafından erişime açıktır. Uygulamalar; aşağıdaki işlemleri gerçekleştirecek metotlar oluşturunuz. Faktöriyel metodu, Dört işlem gerçekleştirmek üzere tüm metotları içeren bir java programı 9

ın kullanımı bir defa tanımlandıktan sonra normal java komutları gibi kullanabiliriz. Örneğin yukarıda tanımladığımız topla metodunu kullanmak için; // int a=50; int b=20; int toplam=topla(a,b); //topla metodu kullanımı System.out.println(toplam); //... bir kez tanımlanırlar ve main metot içerisinde istenildiği kadar çağrılıp kullanılabilir. Önemli olan metodun geri dönüş tipine ve alacağı parametrelerle bizim kullanım şeklimizin uyumlu olmasıdır. Metot tanımında yer alan parametreler hafızada yer kaplamazlar, bu parametreler formal(biçimsel) dır. Gerçek program içerisinde metot çağrımında (metot kullanımında)kullandığımız parametreler ise gerçek parametrelerdir ve bunlar hafızada yer kaplarlar. 10

Uygulamalar Faktöriyel işlemi ve dört işlem için oluşturduğunuz metotları main metot içinde kullandığınız uygulamalara dönüştürünüz. Yani; Klavyeden girilen değeri parametre alıp faktöriyel hesabı yapan faktöriyel metodunu kullanan bir java programı yazınız. Benzer şekilde dört işlemi yapan ve yukarıdaki metotlarınızdan oluşan java programı oluşturunuz. Paketler Çok sayıda sınıftan oluşmuş java uygulamalarında benzer sınıfları gruplamak için geliştirilmiş bir çözümdür. Paketlerin getirdiği bir başka fayda derleyici için sınıfların tek başına bir anlam ifade etmemesidir ve sınıfın bulunduğu paketin de göz önünde bulundurulmasıdır. Aynı paket içerisinde aynı isimli iki sınıf olamaz ; farklı paketlerde aynı isimli iki sınıf olabilir. 11

İstisna Yönetimi Bazen yazdığımız programlar istediğimiz gibi çalışmayabilirler. Örneğin kullanıcıdan sayıların girilmesine yönelik bir programda kullanıcının sürekli olarak doğru tipte değer gireceğinden emin olmak zordur. Bu sebeple kullanıcının yanlış giriş yapması durumunu da göz önünde bulundurmak gerekir. Bu durumda ya girişin doğruluğunu kontrol edecek bir metot yazılmalı ya da oluşabilecek istisnalar trycatch bloğu kullanılarak yakalanmalıdır. Try-catch try { //istisna denetimi yapılacak kod catch (yakalanacakistisnasinifi yis) { //istisna yakalandığında yapılacak işler 12

Try-catch örnek try { girilensayi = Integer.parseInt(girdi); catch (NumberFormatException ex) { System.out.println("Bir sayı girmek zorundasınız!!!"); return -1; return girilensayi; try-catch Try-catch bloğunun catch kısmında,try bloğundaki kod kümesinde üretilebilecek olan istisnalar yakalanmaya çalışılır. Eğer istisna yakalanırsa kullanıcıyı doğru bir sayı girmesi için yönlendirebiliriz. Yukarıdaki program parçasında kullanıcıdan alınan sayı üzerinde bir hata denetimi yapılıyor, burada amaç kullanıcı sayı girmezse hata kodu döndürmektir. 13