Kapsülleme Encapsulation Nedir ve Örnek

Posted on

Bir önceki Nesne Tabanlı Programlama konusunda Çok Biçimlilik Polymorphism Nedir ve Örnek yazısını paylaşmıştım.

Kapsülleme, kendi amacına göre yönettiği kod ve veriyi birbirine bağlayan, kod ve veriyi dış kaynaklı karışıklık ve hatalı kullanımdan koruyan bir sistemdir. Dolayısıyla kod ve veri bir bütün olarak tutulur ve saklanır. Günlük yaşantımızda kullandığımız kapsüllü bir antibiyotiği örnek verebiliriz. Mantık aynıdır. Antibiyotiğin içindeki toz dış etkenlerden korunmak için kapsülle ambalajlanmıştır.

Nesne tabanlı programlamada kod ve veri kapsüllemeyle birbirine bağlanabilir. Yapılacak işlemler için gerekli kod ve veri kapsülün içinde vardır. Kod ve veri kapsüllemeyle birbirine bağlandığında bir nesne (object) meydana gelir.

Nesne tabanlı programlamada kapsülleme birimi sınıftır (class). Sınıf, verileri ve bu verilerle işlem yapılacak kodları belirler. Diğer bir deyişle, sınıf bir nesnenin ne şekilde yapılandırılacağını belirten planları içerir.

Kod ve veri sınıfın üyeleridir (members). Metot ise bir alt programdır. Kısaca hatırlatmak gerekirse programlama dillerinde kullanılan fonksiyonlar nesne tabanlı programlamada metot adını almıştır.

Çok Biçimlilik Polymorphism Nedir ve Örnek

Posted on

Çok Biçimlilik (Polymorphism)

Nesne tabanlı programlamanın üç temel ögesi vardır. Bunlar, çok biçimlilik, kapsülleme ve kalıtımdır. Nesne tabanlı programlamada çok biçimlilik, nesnelerin dışarıdan aynı yapıda görünmelerine rağmen içerde farklı işlem yapmalarıdır. Bu nedenle sınıflar nesnelerin içindeki farklılıklardan etkilenmeden çalışır. Çok biçimlilik aslında bir arayüz (interface) kullanarak birden fazla metodun kullanılmasını sağlar. Çok biçimliliğin amacı, genel bir sınıf belirtip aynı arayüzü kullanarak oluşabilecek karmaşıklığı azaltmaktır.

Nesne tabanlı programlama sınıflar belli bir sıraya göre tasarlanır. Başta genel bir sınıf sonra da bu sınıftan oluşmuş ve yeni elemanlar katılarak farklı özelliklere sahip yeni sınıflar vardır. Yeni oluşturulan sınıflar temel sınıfın özelliklerini taşır. Ancak oluşturulan sınıflar temel sınıfın özelliklerini taşırlarken temel sınıf türetilen sınıfın özelliklerini taşımaz. Bir örnekle açıklayacak olursak; Okullar sınıfının genel bir sınıf olduğunu düşünelim. Bu sınıfın bir elemanı olan Meslek Liseleri vardır. Okullar sınıfının özelliklerini meslek liselerine geçirebiliriz. Ama tam tersi söz konusu değildir. Çünkü her meslek lisesi bir okuldur ama her okul bir meslek lisesi değildir.

Nesne Tabanlı Programlama – 2

Posted on

1 – Kapsülleme (Encapsulation)

İşlemlerin ve verilerin gizlenmesine veya bir grup içerisinde toplanmasına kapsülleme denir. Kapsülleme sayesinde, sınıfımız içinde kullandığımız alanların dışarıdan herhangi bir etki ile doğrudan değiştirilmelerini engellemiş oluyoruz. Bu durum bizim isteğimiz dışında oluşabilecek atamların önüne geçmemize ve ille de bu alanların değerleri değişecekse bizim belirlediğimiz bir çizgide olmasına neden oluyor. Bu da programcılıkta ve özellikle nesne tabanlı programlamada çok büyük bir yere sahip olan kontrolün elimizde olmasını sağlıyor.

nesne-tabanli-programlama-kapsulleme

Yukarıdaki resimde gördüğünüz saat içinde çok karmaşık mekanizmalar bulunmaktadır. Ama bu karmaşık mekanizma saatin kullanıcısını ilgilendiren bir olay değildir. Kullanıcı için önemli olan saatin düzgün çalışmasıdır.

Nesne Tabanlı Programlama Nedir?

Posted on

Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaşımdır. Klasik prosedürel programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu.

Aslında nesne tabanlı programlama da iki önemli birim; veri ve veriyi işleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır.

Mesela elimizde bir ütümüz olsun. Ütünün markası, modeli, rengi, çalıştığı elektrik voltajı, ne tür kumaşları ütüleyebildiği bu ütüye ait özelliklerdir (veri). Aynı zamanda ütümüzü ısıtabiliriz, ütüleme işinde kullanabiliriz ve soğumaya bırakabiliriz. Bunlar ise ütünün fonksiyonlarıdır (metot).

nesne-tabanli-programlama-nedir

Progressive Web App (PWA)

Posted on

pwa-nedir-pwa-yapma

Progressive Web App, bir websitenin uygulama benzeri özelliklerine sahip türüdür. Peki belli başlık özellikleri nelerdir?

  • Öncelikle çevrimdışı olarak kullanabilirsiniz, kullanıcının interneti olmadığı anlarda dâhi PWA sayesinde websitenizdeki faydalı bilgileri görüntüleyebilir.
  • Ana ekranda ikona sahip olması, bazı tarayıcılarla ana ekrana kısayol ekleyebildiğiniz zaman ikon değiştiremezsiniz ama PWA bunu sağlayabiliyor.
  • Responsive olması, ekranın mükemmel oranda dolmasını sağladığı için web siteleriniz mobil ve tablet uyumlu olması gerekiyor.
  • Push notification desteğine sahip olması ile uygulama çalışmasa bile bildirim alabiliyor, elbette herkes için değil yalnızca onay veren kişilerde bildirim gözüküyor.

Otomobiller Konuşabilir Mi?

Posted on

mercedes-e-2017-akilli

Otomobiller birbirleriyle konuşurken eminim Cars animasyon serisindeki karakterlere benzemiyorlardır. Araçtan-araca iletişim sistemi (V2V) gelecek yıllarda bir standart durumunda olacak ve araçlar durumlarını şifreli bir şekilde diğer araçlara bildirecektir. Mercedes bu konuda E sınıfı otomobillerinde 4G desteği sunarak Cloud üzerinden aynı yönde giden araçlarının bilgilendirilmesini sağlıyor. Ağ sadece Mercedes’lerin haberleşmesini sağlamakta ama V2V standartları oturduğu zaman bütün markaların birbirleri ile haberleşmesi daha kolay hâle gelecektir.

Genel Anahtar Algoritmalar

Posted on

Bir önceki yazıda Genel Anahtar Algoritmalar konusunu açıklamıştım: Kriptoloji ve Gizli Yazı Sanatı

Yerine Koyma Şifreleme Yöntemleri (Substitution Ciphers)

Yüzyıllar boyunca pek çok yerine koyma şifreleyicileri kullanılmıştır. En basit seviyede mesajın harfleri, başka bir alfabenin harfleriyle yer değiştirilir. Açık metindeki harflerin ardışıklığı değişmez. Günümüzde cep telefonlarıyla mesaj iletiminde bu şifrelenmeden faydalanmaktayız. Örneğin, birçok telefonda olduğu gibi aşağıdaki harf düzenlemeleri vardır:

2 A B C 
3 D E F 
4 G H I
5 J K L
6 M N O
7 P Q R S
8 T U V
9 W X Y Z

Kelimeler arası boşluklar ve noktalama gibi işaretler için 1 rakamı kullanılmaktadır.

Açık metin: BEN GELDİM

Şifreli metin: 2 3 6 1 4 3 5 3 4 6 şeklinde olacaktır.

Kriptoloji ve Gizli Yazı Sanatı

Posted on

kriptografi-kriptoloji

İnsanlar her zaman, ellerinde var olan bilginin bu veya diğer şekilde korunmasına ve gizliliğine önem vermiştir. Günümüzde bilgisayar ağının, yani internetin gelişimiyle ilgili olarak büyük ölçüde devlet, askeri ve ticari bilgilerin daha güvenli bir şekilde iletilmesi ve bütünlüğünün korunması problemleri ortaya çıkmıştır. Öte yandan ise, yeni bilgisayarların gelişimi, mevcut sistemlerin daha iyi korunmasını gerektirmektedir. İşletim sistemlerinin açıklarından çok akıllıca faydalanan hacker’ların yazdıkları virüsler, solucanlar ve trojanlar sonucunda kişisel bilgisayarlar bir anlamda genel bilgisayarlara dönüşmüş durumdadır. İnsan davranışlarını göz önünde bulunduran akıllı virüs programları, şifrelerin çözülmesinde kullanılan yöntemler yapay zekanın da bu çalışmaların içerisinde yer almasını gerektirmektedir.

Android 8.0: Olası İsimler ve Çıkış Tarihi

Posted on

android 8 geliyor

Google I/O 2017’nin düzenleceği tarihler belirlendi ve büyük gösteriye yalnızca birkaç ay kaldı. Google I/O geleneksel bir geliştirici konferansı ve Google’ın en yeni yazılım geliştirmelerini sunduğu bir platform. Halen, en yeni Android sürümü olan Nougat, Ağustos 2016’da piyasaya sürülmüştü.

Sıradaki İsim Ne Olacak?

2017’den itibaren bir sonraki Android güncellemesinin kullanımına daha yakınız. Google’ın Android sürümlerinde tatlı isimlerini kullanarak alfabetik adlandırma dizisine sonraki harf olan O ile de devam etmesi haliyle bekleniyor. Şimdiye dek Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop, Marsmallow ve Nougat sürümlerini gördük. Ayrıca güncellemenin sayısal adı da Android 8 veya 8.0 olacaktır.

C# MSSQL Bağlantı Kütüphanesi

Posted on

C#’ta MSSQL bağlantı ve sorgu ihtiyaçlarınızı 2 satır koda indiren ufak bir kütüphane geliştirdim. Yapmanız gereken de iki şey var, bunlardan birincisi yazmış olduğum DLL’i projenize ve kütüphaneye eklemek diğeri ise sizden istediğim iki ayrı string ifade.

Bunlardan birincisi bağlantı adresi, ikincisi ise SQL sorgu metniniz.
csharp mssql baglanti
DLL’i ekledikten sonra kütüphanemize de eklemeyi unutmayalım.

using mssqlCon;

//String türünde adresi ve SQL sorgu metinlerimizi yazacağımız iki değişken tanımlayalım.
string adres,text;

//Herhangi bir event içerisinde değişkenlerimizi doldurabiliriz veya tanımlarken de yazabiliriz.
adres="Server=server_ip;Database=db_adı;user id=user_id;password=şifre";
text = "SQL Sorgunuz.";

mssqlBaglanti ms = new mssqlBaglanti(); //Sınıfımızı tanımladık.
string donus = ms.mssqlBaglan(adres, text); //Eğer sınıf bağlantısını string bir değişken içerisinde yaparsanız bağlantının başarılı olup olmadığını değişken içerisinde görebilirsiniz.

csharp mssql baglanti yapma

Sınıf sizlerden string türünde iki değişken istemektedir, bunları yukarıdaki örnekte olduğu gibi karşıladığınız zaman sorunsuz kullanabilirsiniz.

buraksakalli indir