oop

20
OOP Erişim Denetimi, Fonksiyon

Upload: caleb-macias

Post on 01-Jan-2016

32 views

Category:

Documents


3 download

DESCRIPTION

OOP. Erişim Denetimi, Fonksiyon. Sınıf - Nesne. Sınıf , gerçek hayattaki bir nesneyi istenen bir şekilde modelleyebilmek için gerekli bütün kod ve veriyi içeren yazılım birimidir. Nesne sınıfın bir örneğidir. Somut bir niceliktir. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: OOP

OOP

Erişim Denetimi, Fonksiyon

Page 2: OOP

Sınıf - Nesne

Sınıf, gerçek hayattaki bir nesneyi istenen bir şekilde modelleyebilmek için gerekli bütün kod ve veriyi içeren yazılım birimidir.

Nesne sınıfın bir örneğidir. Somut bir niceliktir.

Page 3: OOP

Sınıf içindeki üye değişkenlere ve yöntemlere erişimin denetlenmesi üç farklı C# anahtar kelimesiyle sağlanır.

private: sınıf dışından görünmeyen değişkenlerin ve yöntemlerin tutulduğu bölümü işaretler

public: sınıf dışından görünen ve erişilebilen değişkenlerin ve yöntemlerin bulunduğu bölümü tanımlamak için kullanılır

protected: Türetilmiş sınıflardan erişilebilen değişkenlerin ve yöntemlerin bulunduğu bölümdür. Dışarıdan görülmez ama türetilmiş sınıflardan erişilir.

Page 4: OOP

Sınıf tanımında varsayılan erişim denetimi private’dır.

Sınıf tanımına başlarken, hiç bir erişim denetimi anahtar kelimesi yazılmazsa, private olarak alınır.

Page 5: OOP

ÖRNEKusing System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace ConsoleApplication1{ public class Nokta {

//fonksiyon dışında erişilemeyen değişkenler

private double x;

private double y;

// orijinden uzaklığı bulanfonksiyon tanımı

public double orijindenUzaklik() { Console.WriteLine("x number:"); int x =

Convert.ToInt16(Console.ReadLine()); Console.WriteLine("y number:"); int y =

Convert.ToInt16(Console.ReadLine()); return Math.Pow(x * x + y * y, 0.5);

} } }

Page 6: OOP

Main(program.cs)

using System;using

System.Collections.Generic;

using System.Linq;using System.Text;

namespace ConsoleApplication1

{

class Program { static void Main(string[] args) { Nokta islem = new Nokta();

Console.WriteLine( islem.orijindenUzaklik());

Console.ReadLine();

} }}

Page 7: OOP

Fonksiyonlar

Nesne Tabanlı Mimaride sınıflar için tanımlanmış özellikler:

Kapsülleme-Saklama(Encapsulation) Polimorfizm-Çok biçimlilik(Polymorphism) Kalıtım(Inheritance)

Bu özellikleri incelemeden önce sınıfların içerisinde tanımlanan fonksiyonları inceleyelim.

Page 8: OOP

Fonksiyonlar

Fonksiyonlar belirli bir işi gerçekleştirmek amacı ile yazılmış değişkenler ve ifadeler kümesidir.

Belirli tipte parametreler alarak belirli tipte sonuçlar döndürürler. Programın diğer bölümlerinden tekrar tekrar çağırılabilirler.

yazım şekli :

dönen_tip FonksiyonAdı (Aldığı Parametreler)

Page 9: OOP

Fonksiyon

Fonksiyonlar bir sınıf içerisinde bulunmalıdır. Bir sınıfın içerisinde bulunmayan, kendi başına bir fonksiyon yazılamaz.

yazım şekli:public class newClass{

public void newFunction(){

…………..}

}

Page 10: OOP

Fonksiyon

void kelimesi, fonksiyonun herhangi bir değer döndürmeyeceğini belirtir.

() parantezleri Main'in bir fonksiyon olduğunu belirtir. Parantez içinde fonksiyona gönderilecek parametreler belirtilebilir. • Main(string[] args) fonksiyonu içine string[] tipinde değerler

gönderilebileceğini anlatan parametre kullanılmıştır.

Çoğunlukla fonksiyonlar parametre listesi isterler. Bu parametrelere göre işlem yapar ve sonuç döndürürler.

Page 11: OOP

Fonksiyon

private float toplam(int a,int b,int c)

• toplam ismindeki fonksiyon a, b ve c isminde üç parametre istemektedir. •Fonksiyonun döndürdüğü sonuç değeri float tipindedir. •Ana programda fonksiyon çağrıldığında a, b ve c değişkenlerine, değer yüklenir.

Page 12: OOP

Fonksiyonprivate float toplam( int a, int b, int c) {

float t; t = a + b + c ; return t; }

a, b ve c değişkenleri sadece toplam fonksiyonu içinde geçerlidir.

Fonksiyon içinde tanımlanan t değişkeni de sadece bu fonksiyon içinde oluşturulmuştur ve çıkışta silinir.

Scop içerisinde tanımlı yerel değişkenler

Page 13: OOP

Fonksiyon

Fonksiyon return anahtar kelimesiyle bir değer döndürür.

Eğer dönen tip void olursa, return deyimi genelde kullanılmaz.

return anahtar kelimesinin döndürdüğü değişken veya değerin tipi fonksiyonun tanımında verilen tiple aynı olmalıdır.

Page 14: OOP

Fonksiyon

private float toplam( int a, int b, int c) {

float t;t = a + b + c ;return t;

}

Page 15: OOP

Fonksiyon

Fonksiyonun çağrılmasında, fonksiyon tanımı dikkate alınır.

Sadece veri tipleri yazılmaz ve değerler sabitler yada değişkenler olabilir.

Genellikle, fonksiyondan gelen değer bir değişkene atanır.

deger = toplam( i, j, k ) ; veya

deger = toplam( 5, x, 2.7 ) ;

Page 16: OOP

Fonksiyon

NOT:

Main() fonksiyonu içinde toplam fonksiyonu çağrıldığında main()’in veri alanında bulunan değerler toplam() fonksiyonunun veri alanına kopyalanır.

Page 17: OOP

ÖRNEK

Bir sayının faktöryelini alan fonksiyonu ve bulunduğu sınıfı yazınız.

• Fonksiyon 0'dan küçük değerler için 0 • 1 ve 0 için 1 • 2'den büyük sayılar için hesaplanan faktöriyel

değerini döndürecek.

Ana programda 1'den başlayıp klavyeden girilen değere kadar olan sayıların faktöryeli ekrana yazdırılacak.

Page 18: OOP

class

using System;using

System.Collections.Generic;using System.Linq;using System.Text;

namespace ConsoleApplication2

{ class fonk {

public int Faktor(int x) { int sonuc = 1; if (x < 0) return 0; if (x == 0 || x == 1) return 1; for (int j = 2; j <= x; j++) sonuc =sonuc*j; return sonuc;

} }}

Page 19: OOP

Main programusing System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace ConsoleApplication2{ class Program { static void Main(string[] args) { Console.WriteLine("sayi="); int y =

Convert.ToInt16(Console.ReadLine());

fonk a = new fonk(); for (int i = 1; i <= y; i++) {

Console.WriteLine(a.Faktor(i)); } Console.ReadLine(); } }}

Page 20: OOP

SORU

Değerlerini kullanıcının belirlediği iki parametre alan, bu değerlerin farkının faktöryelini döndüren fonksiyonu yazınız.

Fonksiyonun ismi: int faktoryel_fark(int a, int b)