Nihal's Blog

Archive for Mayıs 2016

Basit olarak 0’dan 10’a kadar olan sayıların karelerini bulalım.

1

Ekran çıktısı

2

Etiketler: , ,

Basit olarak 5 tane sayının ortalamasını alan bir uygulama yapalım.

1 Yazının devamını oku »

Etiketler: , ,

Basit olarak kullanıcının girdiği 2 sayıyı toplan, çıkaran, bölen, çarpan ve bölümden kalanını (mod) ekrana yazdıran bir uygulama yapalım. Yazının devamını oku »

Scanner kullanarak kullanıcının girdiği verileri alabiliriz.

Basit bir uygulama yapalım.

1 Yazının devamını oku »

Etiketler: ,

Bir uygulamadan beklenen geliştiricinin istediği işlemleri doğru bir şekilde yapması ve oluşabilecek hatalara karşı dayanıklı olmasıdır. Ne gibi hatalar olabilir? Örneğin toplama işleminde kullanıcının sayı girmesi beklenirken String tipinde değerler girmesi, bir döngüde dizinin eleman sayısından daha fazla veriye erişmeye çalışma hataya sebep olur. Bunun gibi durumlar çalışma anında hata verir.

Basit bir hatalı olan bir uygulama yapalım.  Yazının devamını oku »

Etiketler: , ,

Bir sınıf diğer bir sınıfın içerisinde tanımlanabilir.

class Sınıf1{

class Sınıf2{ }

} Yazının devamını oku »

Arayüzler, soyut sınıflar gibi birleştirici rol oynarlar.

Soyut sınıfları önceki yazımda anlatırken içerilerinde iş yapmayan soyut yordamların olduğundan ve istenilirse iş yapan yordamların da olduğundan bahsetmiştim. Arayüzlerde ise iş yapan yordamlar bulunamaz sadece iş yapmayan gövdesiz yordamlar olur.

Arayüzde tanımlanan ve gövdesiz olan yordamları arayüze erişen  sınıflar iptal etmek zorundalar.

Arayüz new() ile oluşturulamaz.

Basit bir uygulama yapalım.

Hayvan adında bir arayüzümüz olsun. Kedi ve Kus sınıfları arayüze erişim sağlasın. Papagan sınıfı da Kus sınıfından türesin.

interface Hayvan{} ile arayüz olduğunu belirttik.

class Kedi implements Hayvan{} ile arayüze erişim sağladık.

class Papagan extends Kus{} ile arayüze direk erişmeden Kus sınıfından türettiğimiz için extends ifadesini kullandık.

Arayüzdeki yordamı diğer sınıflar iptal etti. Yazının devamını oku »

Etiketler: , ,

Soyut Sınıfların ve Yordamların Özellikleri

Soyut sınıflar birleştirici rol oynarlar. Eğer bir işlem farklı değerlerle aynı işi yapıyorsa soyut sınıf içerisinde bu işlemin gerçekleştiği yordamı oluşturabiliriz.

Soyut sınıflar new() ile oluşturulamazlar.

Soyut sınıfların içerisinde en az 1 tane soyut yordam olmalıdır. Soyut yordamların içi boş olur. Yani hiçbir iş yapmazlar.

Ayrıca soyut sınıfların içerisinde soyut olmayan iş yapan yordamlar da olabilir.

Soyut yordamdan türemiş sınıflar soyut sınıfın içindeki soyut yordamı iptal etmek zorundalar. Ama soyut yordamın içinde soyut olmayan yordamları türeyen sınıflar iptal etmek zorunda değiller. Yazının devamını oku »

Polimorfizm ile geç bağlama ilişkilidir. Polimorfizm’i önceki yazılarımda anlatmıştım.

Basit bir uygulama yapalım. Papagan ve Kugu sınıfları Kus sınıfından türesin. Kus, Kugu ve Papagan nesnelerinin referanslarını Goster() yordamına parametre olarak gönderelim. Goster yordamı parametre olarak Kus sınıf tipinde ama Papagan ve Kugu sınıfları Kus sınıfından türediği için onların tipinde olanları gönderdik. Bunun yukarı çevrim (upcasting) olduğunu daha önceki yazılarımda anlatmıştım. Bu durumda hangi nesnenin yordamının çağrılacağı önemli. Bir yordamın hangi nesneye ait olduğu çalışma anında belli oluyorsa buna geç bağlama (late binding) denir. Eğer derleme anında belli oluyorsa buna da erken bağlama (early binding) denir. Aşağıdaki örnek basit olduğu için kolayca hangi nesnenin çağrılacağı bilinebilir ama karmaşık uygulamalarda bunu bilmek zorlaşır. Yazının devamını oku »


Enter your email address to follow this blog and receive notifications of new posts by email.

Follow Nihal's Blog on WordPress.com