Java'da Override Anotasyonu

Java'da Override Anotasyonu

Merhabalar, Daha önce Java 8 ile gelen Optional sınıfından bahsetmiştim. Java ile ilgili ufak detay bilgiler vermeye devam edeceğim. Bu yazımızda Java Override anotasyonunun öneminden bahsedeceğim. Java ile herhangi bir IDE kullandıysanız karşınıza mutlaka çıkmıştır. Bilmeyenler için kısaca açıklarsak Java’da bir sınıfın interface ve ata sınıfında yer alan metodları implement etmek veya değiştirmek için yazdığımız metodu @Override annotasyonu ile işaretleyerek bunu belirtmiş oluruz. Bir sınıf içerisinde Override anotasyonu metodun üst sınıflardan geldiğini bilmek için güzel bir araçtır.

Java 8 Optional ve null dönebilen metotlar

Java 8 Optional ve null dönebilen metotlar

Merhabalar, bu yazıda sizlere Java 8 ile beraber gelen Optional sınıfından bahsedeceğim. Bu yazı ile birlikte Java programlama dili ve teknolojileri konusunda ufak bilgiler paylaşmaya devam edeceğim. Umarım faydalı olur. Optional sınıfının kullanımına bir örnek vererek anlatacağım. Doğrudan anlatabilecek kadar basit bir sınıf olmasına rağmen örnek üzerinden gitmenin daha kalıcı olduğunu düşünüyorum. Örneğimizde bir UserRepository sınıfı tasarlayacağız. Interface’imiz şu şekilde: UserRepository interface’inde getByUsername() metodunun tanımlandığını görüyoruz. Adından da anlaşılacağı üzere kullanıcı adı ile veritabanında kayıtlı bir kullanıcıyı bulmak istiyoruz.

Powermock ve Mockito ile JSF Sınıflarını Test Etmek

Powermock ve Mockito ile JSF Sınıflarını Test Etmek

JSF Bean sınıflarında FacesContext gibi nesneler kullandığınızda ve bu sınıflara mock nesneler ile birim testleri yazdığınızda Mockito, JMock gibi araçlar yeterli olmayacaktır. Örnek olarak aşağıdaki metodu inceleyelim. Bu metod basit bir login işlemi gerçekleştirmektedir. Anlaşılacağı gibi xhtml sayfasında bir buton üzerinde actionListener parametresinde tanımlanmaktadır. Öncelikle kullanıcı adı ve parolanın boş bırakılıp bırakılmadığını kontrol etmekte eğer alanlar boş değilse business katmanı ile login işlemini gerçekleştirmektedir. Şimdi kodları inceleyelim. 2. satır da JSF sayfasına mesaj göndermek için FacesContext nesnesini FacesContext.getCurrentInstance() statik metodu ile almaktadır.

OOP: Polimorfizm

OOP: Polimorfizm

Kapsülleme ve kalıtım konularından sonra sıra geldi polimorfizme. Polimorfizm, Türkçe’de çok biçimlilik olarak çevriliyor. Polimorfizmi anlatmak için JUnit in Action kitabında gördüğüm güzel bir örneği vereceğim. Bu örnek sayesinde polimorfizm’in kullanım amacını da göstermiş olacağım. Örnek göstererek anlatmayı daha uygun buldum. Ben önce örnekleri inceleyip sonra açıklamaları okurdum. Bu sayede daha kolay kavrıyorum. Aynı yöntemi burda da uygulayacağım. Bu konuyu kavramanız için kalıtım konusuna hakim olmanız gerekmektedir. Örneğimizde bir yazıcımız var.

OOP: Kalıtım

OOP: Kalıtım

Bir önceki yazımda OOP konusuna giriş yapmış ve kapsüllemeyi anlatmıştım. Bu yazımda ise “Kalıtım” konusundan bahsetmek istiyorum. Kalıtım (inheritance) kelimesi aslında biyolojide anlamı ile aynıdır. Adından da anlaşılacağı gibi bir sınıfın özelliklerini diğer sınıfa olduğu gibi aktarmasıdır. Peki böyle bir özelliğe neden ihtiyaç duyarız. Bir üniversitedeki öğretim görevlilerini ve öğrencileri modelleyen iki sınıf tanımlayalım. Öğrenci sınıfı öğrencinin adını, soyadını, okul numarasını, T.C. kimlik numarasını, bölümünü içersin. Öğretim görevlisi sınıfı ise öğretim görevlisinin adını, soyadını, hangi bölümün kadrosunda yer aldığını, T.C.

OOP: Kapsülleme

OOP: Kapsülleme

Blogumda yazılım ile ilgili pek bir yazı olmadığından artık bazı konularda yazılar yazmaya karar verdim. Bu yüzden programlamanın en temel ve en önemli konularından biri olan Nesne Yönelimli Programlama’yı elimden geldiği kadar anlatmaya çalışacağım. Object Oriented Programming bir programlama yaklaşımıdır. Nesneye yönelik programlama, nesneye dayalı programlama, nesne tabanlı programlama, nesne esaslı programlama gibi bir çok çevirisi vardır. Ben de Türkçe de daha çok yaygın olan nesne yönelimli programlamayı kullanıyorum. Fakat genelde bahsederken OOP olarak kısaltacağım.