Görsel Programlama-I (Visual Programming) 1.Hafta



Benzer belgeler
Java Programlama Güz Dönemi CLASS YAPISI

Görsel Programlama-I (Visual Programming) 2.Hafta

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

Nesneye Dayalı Programlama

Görsel Programlama (Visual Programming) 2.Hafta

Ders 8 Konu Özeti ve Problemler

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

Görsel Programlama (Visual Programming) 2.Hafta

Sunum İçeriği. Programlamaya Giriş

NESNE TABANLI PROGRAMLAMA

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

Kalıtım (Inheritance)

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

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Nesne Tabanlı Programlama. Ders Notları

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

BİL-141 Bilgisayar Programlama I (Java)

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

YZM 2105 Nesneye Yönelik Programlama

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

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

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

Bölüm 12. Nesne yönelimli programlama desteği

1. SINIFLAR Sınıf (Class) Mantığı

Bilgisayarda Programlama. Temel Kavramlar

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

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

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

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

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

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Java Programlama Giriş

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

Nesne Yönelimli Programlama

Model-Tabanlı ve Rastgele Karma Yöntem

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar

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

public static int Toplam int x, int y

ASP.NET ile Bir Web Sitesi Oluşturma

Nesneye Yönelik Programlama (OOP) 7.Hafta

19 Şubat 2016 Cuma

NESNE TABANLI PROGRAMLAMA

Ebeveyn kontrolü EBEVEYNLER İÇİN NOT. Çocuğunuzun oynamasına izin vermeden önce PlayStation Vita sisteminde ebeveyn kontrolü ayarlarını yapın.

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

HESAP MAKİNASI YAPIMI

Java Dersi. Altuğ Bilgin Altıntaş

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

Adım Adım Windows 2000 Server Kurulumu 11 Cuma, 08 Eylül :32 - Son Güncelleme Cumartesi, 12 Eylül :45

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

Erişim konusunda iki taraf vardır:

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

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

VERİ TABANI UYGULAMALARI

C++ Dersi: Nesne Tabanlı Programlama

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.

Öğr. Gör. Serkan AKSU 1

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

7. HAFTA. Erişim Belirleyiciler

ALGORİTMA VE PROGRAMLAMA I

4.1. Grafik Sihirbazını kullanarak grafik oluşturma

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Operatörlerin Aşırı Yüklenmesi

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

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

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

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

Sistemin dört ana bileșeni vardır. 1.Kullanıcı (user) 2.Görev (task) 3.Araç/arayüz (tool/interface) 4.Bağlam (context) Arayüz Nedir?

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

YZM 2105 Nesneye Yönelik Programlama

PROGRAMLAMA TEMELLERİ

İNTERNET PROGRAMCILIĞI - II


YZM 2105 Nesneye Yönelik Programlama

Programlama Dillerinde Kullanılan Veri Tipleri

Ders 8: Metotlar. barisgokce.com

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Yazılım Mühendisliği 1

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

Algoritmalar ve Programlama. Algoritma

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

EĞİTİM ÖĞRETİM MÜNEVVER ÖZTÜRK ORTAOKULU II. DÖNEM BİLİŞİM TEKNOLOJİLERİ VE YAZILIM DERSİ DERS NOTLARI

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

YZM 2108 Yazılım Mimarisi ve Tasarımı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

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

BİL-142 Bilgisayar Programlama II

Algoritma ve Akış Diyagramları

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

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

Genel Programlama II

Bilişim Garaj Akademisi Nedir?

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

Transkript:

Görsel Programlama-I (Visual Programming) 1.Hafta 2011-2012 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2012 Muhammer İLKUÇAR <imuammer@yahoo.com> 1

Görsel Programlama Console programlama Visual( Görsel) Programlama 2 Graphics User Interface (GUI)

Class Yapısı 3

Görsel Programlama 4 Görsel Diller Nesne tabanlıdır. Programda kullanılan bütün öğeler birer nesnedir.

Görsel Programlama Dilleri Görsel programlar iki bölümden oluşur 1-Kod (syntax) alanı 2- Tasarım Design (GUI) alanı F7 tuşu ile Design- Kod Penceresi arası geçişler 5

Görsel Programlama Dilleri Graphics User Interface (GUI) (Grafik Kullanıcı arabirimi) Kullanıcıya kullanım kolaylığı sunan ve göze hoş gelen arayüze sahip programlardır. Kullanıcı işlemlerini, görerek ve fare ile seçip klikleyerek yapabilecek yapıdaki grafiksel yazılımlardır. Günümüzdeki pek çok program görseldir. Görsel Programlama Dilleri Visual Pascal (Delphi) Visual Basic Visual C Visual C#.NET Visual Java Visual PHP... 6

Görsel Programlama Dilleri Görsel programlama dilleri OOP (Object Orianted Programming- Nesne Tabanlı programlama) tabanlıdır. Yani görsel diller nesneler üzerine kurulmuştur da diyebiliriz. Bir program oluşturmak için, daha önce oluşturulmuş nesneleri sürükle bırak (drag-drop)yöntemiyle programımıza dahil edip istediğimiz şekilde değişiklik yaparak programımızı oluşturabilmemizi sağlar. Bir proje modüllere bölünerek; her modül (nesne) farklı kişiler tarafından yapılabilir. Daha sonra modüller birleştirilerek proje oluşturulabilir. Böylece program daha hızlı oluşabilmektedir. Modüller Farklı projelerde farklı amaçlar için kullanılabilir. Class-Object-Component (Sınıf, Nesne, Bileşen) terimleri farklı olmasına rağmen bazen aynı anlam için kullanılabilmektedir. 7

Class - Object Component (Nesne tabanlı programlama) Name (adı Örn: insan sınıfı) Özellikler (properties) Ağırlık (ağırlık=65) Boyu (boyu=170) Ten Rengi Saç tipi Saç rengi Göz rengi Metodlar(methods) Konuşma() Yürüme () Ağlama () Gülme () Zıplama () 8 Yeni bir insan oluşturulacağında insan sınıfından türetilip özellikleri değiştirilir.

Class Yapısı Örnek Araba sınıfı (Class) Name (adı) : araba Properties(Özellik) Markası Hızı Vites Tekerlek Renk Methods (Fonksiyon) Constructure (Yapıcı Method) Destructure(Yıkıcı Method) Hızlanma () Vites Değiştirme() Durma () Events( Olaylar) 9

Class Yapısı Araba Spor Arabalar Limuzinler Transporters Lotus Ferrari Rolls Royce Pickup Kamyon Otobüs 10 Kaynak : http://fbim.fh-regensburg.de/~saj39122/jfroehl/diplom/e-21-text.html

Class Yapısı Temel Class Türetilmiş(inherit) Class Türetilmiş(inherit) Class Türetilmiş(inherit) Class 11

Class Yapısı Temel Class Türetilmiş(inherit) Class Türetilmiş(inherit) Class Türetilmiş(inherit) Class 12

Nesne Erişim İzinleri Erişim Belirleyiciler ve Erişilebilirlik Seviyeleri Bir sınıfa ait üyeler için erişilebilirlik konusu önemlidir. Peki, Erişilebilirlik ne demektir? Erişim belirleyiciler kullanarak bir üyenin güvenliğini sağlamış oluruz. Eğer bir üyeye sınıfımız içindeki metotlar dışında herhangi bir erişim yapılmasını istemiyorsak veya projemiz dışında herhangi bir yerden bu üyeye erişim izni vermek istemiyorsak erişim belirleyicileri kullanmak zorundayız. 13

C#.net Erişim izinleri C#.Net programla dilinde erişim izinleri Erişim Belirleyici private Açıklama Erişim seviyesi private olarak ayarlanan üyelere sadece bu üyenin bulunduğu sınıf içerisinden erişilebilir. internal protected protected internal public Sadece üyenin bulunduğu proje içerisinden erişilebilir. Sadece üyenin bulunduğu sınıf ve bu sınıftan türemiş alt sınıflardan erişilebilir. Sadece üyenin bulunduğu proje içerisinden ayrıca üyenin sınıfından türemiş alt sınıflar tarafından erişilebilir. public üyelerin erişiminde herhangi bir kısıtlama yapılmaz. İstenilen her yerden üyeye erişim açıktır. 14

C#. NET Class deyimleri C#.Net Class larla ilgili olarak aşağıdaki kavramlar vardır: Constructors Destructors Fields Methods Properties Indexers Delegates Events Nested Classes 15

Soru ve Önerileriniz? 16

OOP ile ilgili kavramları Okuyunuz lütfen 17

Nesne Tabanlı Programlama(OOP) Temelde OOP belirli bir problemin çözüm adımlarını parçalara bölerek bunları objeler haline dönüştürmektir. Buradaki temel amaç ileriki zamanlarda aynı problem ile karşılaşıldığında bu objelerin kullanılması. Tabii çözümü bir bütün olarak değil de bir parçalar olarak ele alındığından dolayı müdahalesi ve değişimi de daha hızlı olmaktadır. Örnek vermemiz gerekirse günümüz fabrikasyon üretimleri örnek olabilir. Mesela bir araba üreticisinin yeni bir araba serisi üretmek istediğini düşünün. Bu araba serisinin belirli özellikleri olduğu gibi birbirinden farklı özellikleri de olacaktır. Yapılacak araba serisi: A10, A11, A12 diye adlandırıldığını farz edelim. Her üç araba serisi içinde klima, merkezi kilit, müzik sistemi olacaktır. A11 serisinde ekstra olarak yol bilgisayarı, yağmur sensörü olacaktır. A12 serisinde ise yol bilgisayarı, yağmur sensörü, hava yastığı, sesli kontrol sistemi yer alıyor. Her üç araba serisi içinde kullanılan ortak materyaller klima, merkezi kilit, müzik sistemi, camlar, kapılar, farlar, direksiyon, v.b. materyallerdir. Firma bu materyallerin tasarımı ve üretimini bir sefer yapmaktadır. Ama aynı materyalleri üç farklı araba serisinde kullanmaktadır. OOP deki ana mantık da budur. Problemimiz araba yapmaktır, problemin çözümü için gerekli olan yol belirlenir. Daha sonra bu çözüm yolu parçalara bölünür. Bütün parçalar birer objedir. Ve objeler birleşimi problemin çözümüdür. 18

OOP nin Ortaya Çıkışı ve Faydaları OOP aslında bir mecburiyetten ortaya çıkmıştır. OOP nin en büyük avantajı büyük çaplı projelerdeki zaman ve para kaybını önlemesidir. 1960 ların sonuna doğru programların git gide büyümesi ve programlardaki değişikliklerin çok uzun zaman alması ve maliyetinin yüksek olması ile ortaya çıkmış bir programlama yaklaşımıdır. Prosedürel Programlama (sınıf yapısı olmadan, Örn: Timelinde sınıf yapısı olmadan programlamak) ile kodlanan yazılımlardaki değişiklikler çok uzun zaman alır. Mesela değiştirmek istediğiniz bir işlev için binlerce satır kod arasına girip saatlerce belki günlerce uğraşmanız gerekmektedir. OOP de ise bu mantık farklıdır. Değiştirmek istediğiniz işlevi sınıf yapısı içerisinde değiştirip hemen güncelleyebilirsiniz. Bu hem kodların daha derli toplu olmasını sağlar. Hem yapılacak olan değişiklikler için zaman kaybı olmaz ve maliyeti düşürür. Ayrıca yazılan sınıf yapılarını tekrar tekrar kullanabilirsiniz. Yani bir proje içerisinde yer alan sınıf yapısını farklı bir projede kullanabilirsiniz. 19

OOP Terimleri 1 Sınıf (Class) : Bir şeyin soyut olan özellik ve yeteneklerini tanımlar. Mesela yukarda verdiğimiz örnekteki araba. Araba ilk başta size somut gelebilir ama araba deyince herkesin aklına aynı şey gelmiyor, evet araba ama hangi araba? Siz sınıf ile tüm arabaları ele alıp hepsinin ortak özelliklerini tek bir çatı altında toplamış oluyorsunuz. Sınıfın amacı budur. Eğer tam olarak anlaşılmadıysa aşağıdaki madde kafanızdaki tahmin ettiğim soru işaretlerine cevap olacaktır. 2 Nesne (Object) : Bir sınıftan oluşmuş somut olan varlıktır. Bir sınıftan nesne yaratmaya programlamada nesne örnekleme denir.az önce yukarıdaki maddede arabaya soyut dedik ve bunun nedenini belirtirken de araba deyince herkesin aklına farklı bir şey gelmesidir dedik. Şimdi size Ferrari F50 desem aklınıza farklı bir araba geleceğini hiç sanmıyorum. Artık ortada somut olan herkesin ne olduğunda uzlaştığı bir nesne vardır. İşte biz nesne kavramı ile bu somut olan şeyleri tanımlıyoruz. Bir başka deyişle her Ferrari F50 bir arabadır ama her araba bir Ferrari F50 değildir diyebiliriz. 20 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 3 Yöntem (Method-Fonksiyon) : Bir nesnenin sahip olduğu yeteneklere yöntem denir. Anadol umuzun korna çalabilmesi onun bir yeteneğidir. Veya camının açılabilmesi, cam sileceklerinin çalışabilmesi bunların hepsi ve aklıma gelmeyen bunlara benzer yeteneklerin her biri nesnemizin yöntemleridir. 4 Kalıtım (Inherithance) : OOP nin en temel kavramlarından biridir. Sınıflar arasındaki hiyerarşinin kurulmasını sağlar. Ayrıca bunu yaparken de bir sınıfın, bir başka sınıftan türeyebilmesini de sağlar. Kalıtım işlemi sonucunda, türeyen sınıfa (derived class), temel sınıftaki (base class) tüm özellikler ve yetenekler aktarılır. Ayrıca birden fazla sınıf, aynı sınıftan türeyebilir. 21 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 5 Sarmalama (Encapsulation) : Bir sınıf içinde bulunan üyelerin (üyeler özellik ve yeteneklerin genel adıdır), o sınıfı kullananlar tarafından erişilip, erişilemeyeceğini belirlemeye yarar. Örnek vermek gerekirse arabamızı çalıştırdığımızı düşünelim, biz sadece anahtarı yerine sokup çeviriyoruz değil mi, o anda arka planda olan hiç bir işleme karışmıyor ve müdahale edemiyoruz, yani ben anahtarı çevirince o motora giden enerjiyi açıyor, benzini pompalıyor ve buna benzer bir dizi işlemi sırayla yapıyor ama biz bununla ilgilenmiyoruz ve buna erişemiyoruz, işte bu mekanizma bizim erişemememiz için kapsüllenmiştir. Aksi taktirde kaputu açıp enerjiyi biz vermeye kalksaydık istenmeyen durumlarla karşılaşabilirdik. Bu çok uç bir örnek oldu farkındayım o yüzden daha basit bir örnek vermek gerekirse hepimiz cep telefonu kullanıyoruz, mesaj yazarken birini ararken tuşlara basıyoruz ama telefonun içindeki devrelere erişmemiz engellenmiştir. Bu işlemi yapabilmemiz için tuş takımı geliştirilmiştir. Yani bu devreler bir nevi kapsüllenmiştir. Modelleme yaparken de bazen sınıfımızın üyelerine dışarıdan erişilebilmesini engellemek veya buna sınırlamalar getirmek isteyebiliriz, işte encapsulation kavramı bize bunu sağlıyor. 22 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html

OOP Terimleri 6 Çok Biçimlilik (Polymorphism) : Bir yeteneğin sınıfa has düzeyde olmasını sağlar. Örneğin yukardaki Araba sınıfımıza bir de VitesDeğiştir diye bir method ekleyelim. Ve bu yetenek başlangıç olarak DuzVites modunda çalışsın. Bu yetenek tahmin edebileceğiniz gibi Arabadan türeyen sınıflarımız olan OndenCeker, ArkadanCeker ve DortCeker e de kalıtım sayesinde geçecektir ve Arabada nasıl tanımlandıysa o şekilde yani düz vites çalışma mantığıyla geçecektir. Vites değiştirme işlemi DortCeker sınıfım için düz değil de, otomatik şekilde olsun. İşte polymorphism ile bu yapı desteklenebilir. Yani VitesDegistir yeteneğini farklı davranmasını istediğim sınıf içinde istediğim şekilde tekrar yorumluyorum ve o metod artık Araba sınıfından geldiği DuzVites hali ile değil de, yeni tanımladığım otomatik haliyle çalışabiliyor. 7 Soyutlama (Abstraction) : Bu kavramı basitçe şöyle tanımlayabiliriz; bir sınıf var ama bu sınıftan bir nesne yaratamıyorsunuz. Soyut olan bu sınıfı sadece yeni sınıflar türetebilmek amacıyla onlara rehberlik olsun diye kullanıyorsunuz. Bir başka deyişle, bir sınıfın oluşmasına rehber olacak özellik ve yeteneklerin soyut bir sınıf dahilinde tanımlanmasıdır. 23 http://aydinunlu.blogspot.com/2008/10/c-ile-nesne-ynelimli-programlama_9149.html