Java programlama dili yapısı itibarı bakımıyla diğer programlama dillerine nazaran daha güvenlidir.Javanın güvenli olmasını sağlayan en büyük etken kendinden önce geliştirilen dillerin zaafları göz önünde bulundurarak bu zaafları hesaplayıp ve bu doğrultuda geliştirilmiş olmasıdır. Bir önce ki makalemiz olan C Programla dili ile Ram Bellekte Kısa Bir Seyahat adlı makalemizde diziden taşan bir döngüden bahsetmiştik ve hatta aynı örneği Java da denediğimizde bize aşağıda ki hatayı vermişti.
Java C ve C++ın yıkıcı özelliklerini kapatmış, güçlü ve yapıcı özelliklerini alarak geliştirilmiştir. Bu yüzden Java yapısı itibari ile de güvenli bir programlama dili olarak kendini göstermektedir. Bunun dışında Java da çeşitli şifreleme yöntemleri ve değişkenleri saklama gibi bazı güvenlikle ilgili metotlar kullanılmaktadır. Bunlardan en bilenini ise kapsüllemedir.
Kapsülleme Nedir?
Kapsülleme Java da belirlenen private(classa özel) değişkenleri bazı metotlar arıcılığı ile direkt çağırılarak kullanmasını engelleyen bir metottur. Yani dolaylı olarak değişkenlere erişim sağlamaktadır. Bu metodun ana kullanılma sebebi ise classların içerisinde kullanılan değişkenlerin diğer classların direkt erişimine izin vermeyip olası bir güvenlik sorununa yol açmasını engellemektir. Bilindiği gibi private türünde ki değişkenler sadece bulunduğu class içerisinde kullanılabilir. Olası güvenlik zaaflarından kastımız; Deşifre edilen değişkenlerin ram bellekte bir adresi tutulur, adresi tespit edilen değişkene de her türlü müdahale söz konusu olabilir.
Bir çizimle anlatacak olursak kapsüllemeyi durum aşağıda ki örnekten ibarettir.
Durumu açıklayacak olursak;
Başbakanın bir değişken olduğunu düşünelim, devletin önemli sırlarına vakıf ama aynı zaman da halkla da iletişimde olması gerek, Halkla direkt iletişim kurmaya çalışırsa başbakan, halkın içerisine sızmış kötü niyetli kişilerle de karşı karşıya gelmesi mümkün olabilir. Bu durum da milletin bekası için kurulmuş devletin, sırlarının gün yüzüne çıkma ihtimalini ortaya koyar. Yani milletimizin zor durumlarda kalmasına neden olabilir. Bu yüzden hem devletin sırlarını korumak hem de başbakanın halkla iletişimi sağlamak için başbakanlık kendine özgü bir kapsülleme metodu geliştirmiştir. İletişimin başladığı ilk nokta olan E-mail halktan atılan mesajdır, bu mesaj ilk olarak Şikâyet sorumlularına gelir süzgeçlerle süzer ve bir üst kat olan danışman yardımcısına iletilir, bu olayı Java da JFormattedTextField olarak düşünebiliriz JFormattedTextField sadece sayıları aldırmamızı sağlar, bir nevi yukarıda bahsettiğimiz Şikâyet sorumlularının görevini üstlenir ve bir süzgece tabi tutar, Sonra ise Şikâyet Sorumluları durumu bir üst katman olan Danışmana yardımcısına iletir. Oradan ise Danışmana Danışmadan Korumaya, Korumadan ise Başbakana gönderilir. Başbakan ise kendine gelen bilgileri alt kollara ayrılan devletin kademelerine gönderir. Java da durum bu kadar dolaylı ve güvenli olmasa da bu duruma benzer bir uygulama ile uygulanmaktadır. Derslerimizi takip eden arkadaşlar telefon rehberi projesini muhakkak incelemiştir. Dikkat ederseniz arayüz ile veritabanı arasında sürekli Domain classını kullandık veritabanından alınan bilgiler domain aracılığı ile arayüze gönderilir, aynı işlem yine tekrar edilip bu sefer arayüzden alınan bilgiler veritabanına gönderilir, kapsülleme sadece veritabanı için kullanılmaz. Kapsülleme güvenlik gerektiren her alanda kullanılabilir.
Şimdi Kapsüllemenin kullanımını anlatan öğrencilere yönelik bir örnek paylaşacağım;
Kısaca Kapsülleme bu şekilde çağırılmaya hazır hale getirilir. Şimdi ise Kapsüllemenin arayüz de çağırılmasını anlatacağım;
Dikkat ederseniz arkadaşlar arayüzden veritabanına kayıt yaptırılmak isteniyor ve hiçbir şekilde OgrenciDomain classın da ki değişkenler kullanılmıyor ve OgrenciDomain classından başka hiç yerde de o değişkenler direkt çağırılamıyor. Kısaca Kapsüllemenin kullanılma amacı budur. Bugün ki dersimiz bu kadar bir sonra ki dersimizde görüşmek dileğiyle.
Not: BU MAKALE EMRAH DEDEOĞLU TARAFINDAN YAZILMIŞTIR İÇERİSİNDE KULLANILAN ÖRNEKLER DENENMİŞTİR VE OLUMLU SONUÇLAR ALINMIŞTIR
Kaynak
Kod:
Exception in thread "main" java.lang.NullPointerException
at tr.Run.main(Run.java:11)
Kapsülleme Nedir?
Kapsülleme Java da belirlenen private(classa özel) değişkenleri bazı metotlar arıcılığı ile direkt çağırılarak kullanmasını engelleyen bir metottur. Yani dolaylı olarak değişkenlere erişim sağlamaktadır. Bu metodun ana kullanılma sebebi ise classların içerisinde kullanılan değişkenlerin diğer classların direkt erişimine izin vermeyip olası bir güvenlik sorununa yol açmasını engellemektir. Bilindiği gibi private türünde ki değişkenler sadece bulunduğu class içerisinde kullanılabilir. Olası güvenlik zaaflarından kastımız; Deşifre edilen değişkenlerin ram bellekte bir adresi tutulur, adresi tespit edilen değişkene de her türlü müdahale söz konusu olabilir.
Bir çizimle anlatacak olursak kapsüllemeyi durum aşağıda ki örnekten ibarettir.
Durumu açıklayacak olursak;
Başbakanın bir değişken olduğunu düşünelim, devletin önemli sırlarına vakıf ama aynı zaman da halkla da iletişimde olması gerek, Halkla direkt iletişim kurmaya çalışırsa başbakan, halkın içerisine sızmış kötü niyetli kişilerle de karşı karşıya gelmesi mümkün olabilir. Bu durum da milletin bekası için kurulmuş devletin, sırlarının gün yüzüne çıkma ihtimalini ortaya koyar. Yani milletimizin zor durumlarda kalmasına neden olabilir. Bu yüzden hem devletin sırlarını korumak hem de başbakanın halkla iletişimi sağlamak için başbakanlık kendine özgü bir kapsülleme metodu geliştirmiştir. İletişimin başladığı ilk nokta olan E-mail halktan atılan mesajdır, bu mesaj ilk olarak Şikâyet sorumlularına gelir süzgeçlerle süzer ve bir üst kat olan danışman yardımcısına iletilir, bu olayı Java da JFormattedTextField olarak düşünebiliriz JFormattedTextField sadece sayıları aldırmamızı sağlar, bir nevi yukarıda bahsettiğimiz Şikâyet sorumlularının görevini üstlenir ve bir süzgece tabi tutar, Sonra ise Şikâyet Sorumluları durumu bir üst katman olan Danışmana yardımcısına iletir. Oradan ise Danışmana Danışmadan Korumaya, Korumadan ise Başbakana gönderilir. Başbakan ise kendine gelen bilgileri alt kollara ayrılan devletin kademelerine gönderir. Java da durum bu kadar dolaylı ve güvenli olmasa da bu duruma benzer bir uygulama ile uygulanmaktadır. Derslerimizi takip eden arkadaşlar telefon rehberi projesini muhakkak incelemiştir. Dikkat ederseniz arayüz ile veritabanı arasında sürekli Domain classını kullandık veritabanından alınan bilgiler domain aracılığı ile arayüze gönderilir, aynı işlem yine tekrar edilip bu sefer arayüzden alınan bilgiler veritabanına gönderilir, kapsülleme sadece veritabanı için kullanılmaz. Kapsülleme güvenlik gerektiren her alanda kullanılabilir.
Şimdi Kapsüllemenin kullanımını anlatan öğrencilere yönelik bir örnek paylaşacağım;
Kod:
public class OgrenciDomain {
private int ogrno;
private String ogradi;
private String ogrsoyadi;
public int getOgrno() {
return ogrno;
}
public **** setOgrno(int ogrno) {
this.ogrno = ogrno;
}
public String getOgradi() {
return ogradi;
}
public **** setOgradi(String ogradi) {
this.ogradi = ogradi;
}
public String getOgrsoyadi() {
return ogrsoyadi;
}
public **** setOgrsoyadi(String ogrsoyadi) {
this.ogrsoyadi = ogrsoyadi;
}
Kod:
OgrenciDomain ogrenciDomain = new OgrenciDomain(); ogrenciDomain.setOgrno(Integer.parseInt(ogrenciNoField.getText()));
ogrenciDomain.setOgradi(ögrenciadıField.getText());
ogrenciDomain.setOgrsoyadi(ogrenciSoyadField.getText());
Not: BU MAKALE EMRAH DEDEOĞLU TARAFINDAN YAZILMIŞTIR İÇERİSİNDE KULLANILAN ÖRNEKLER DENENMİŞTİR VE OLUMLU SONUÇLAR ALINMIŞTIR
Kaynak
Son düzenleme:
