150 likes | 436 Views
Programlama -II (Java ile Bilgisayar Programlama). Ders sonunda aşağıdakiler öğrenmiş olacağız. Access Modifier kavramı sınıf için – public, abtract, final metot için – public, protected, private, static, abstract, final değişken için – public, protected, private, static, final
E N D
Ders sonunda aşağıdakiler öğrenmiş olacağız Access Modifier kavramı sınıf için – public, abtract, final metot için – public, protected, private, static, abstract, final değişken için – public, protected, private, static, final • Constructor Overriding ve Overloading kavramları This ve super anahtar kelimeleri Encapsulation(kapsülleme) kavramı Interface kavramı ve kullanımı
Erişim Belirleyiciler(Access Modifiers) Değişkenler için; Public: Değişkenin, sınıf içinde, türetilen sınıflarda, ve paket içinde ve dışında görülebilmesini sağlar. Kısaca heryerde görülebilmesini sağlar Private: Değişken yalnızca class içinde görülebilir. Protected: Değişken sınıf içinde ve türetilen sınıflarda görülebilir. Final: Değişkeni CONSTANT yapar. Yani bir daha değiştirilmemesini sağlar. Static: Static değişkenler, instance yaratılmadan da var olan ve ulaşılabilen değişkenlerdir. Ayrıca static değişkenler, birden fazla obje yaratılma durumunda tek bir değeri gösterir. class Araba{ public int agirlik; public String renk; public String model; }
Erişim Belirleyiciler(Access Modifiers) metotlar için; Public: metotun, sınıf içinde, türetilen sınıflarda, ve paket içinde ve dışında görülebilmesini sağlar. Kısaca heryerde görülebilmesini sağlar Private: metot yalnızca class içinde görülebilir. Protected: metot sınıf içinde ve türetilen sınıflarda görülebilir. Final: Final metot, override edilemeyen metotdur. Yani değiştirilemez. Static: Static metotlar, instance yaratılmadan da var olan ve ulaşılabilen metotlardır.
Erişim Belirleyiciler(Access Modifiers) Sınıflar için; Public: Bir sınıfı public yapmak, diğer sınıfların o sınıfa erişmesini en yüksek seviyeye çıkarmaktır. Final: Final sınıfı başka sınıflar tarafından alt-sınıf olamaz. Yani extends edilemez. Abstract: Abstract sınıflar içinde en az bir tane abstract metot içeren sınıflardır. Abstract metot ise sadece tanımı olan, implemente edilmemiş metotdur.
Encapsulation(Kapsülleme) Bazı attributes ve methodların ait olduğu class'ın dışında erişimini sınırlama özelliğine 'encapsulation' (kapsülleme) denir. Encapsulation sağlamak için private, public ve protected sözcüklerikullanılır.
Yapıcı metot (Constructor); Constructor, Sınıf ismi ile aynı isimde olan ve herhangi bir değer döndürmeyen metotdur. Bir obje yaratıldığında çalışır. New anahtar kelimesi Constructorı çalıştırır. Constructor ilk değerleri atama işleminde kullanılır. Sınıf için constructor belirlenmezse JVM otomatik olarak bir constructor ekler.
class Dortgen{ private int m_AKenari; private int m_BKenari; public Dortgen() // Varsayılan yapıcı (default constructor) { m_AKenari=1; m_BKenari=1; } public Dortgen(int akenari) // Kare olma durumu { m_AKenari=akenari; m_BKenari=akenari; } public Dortgen(int akenari,int bkenari) // dikdörtgen olma durumu { m_AKenari=akenari; m_BKenari=bkenari; } public double Alan() { return m_AKenari*m_BKenari; }} Yapıcı metot (Constructor); Örnek
Overloading ve Overriding Overloading: Aynı isimde birden fazla metotun farklı signature da oluşturulmasıdır. Farklı signature, farklı parametre ve veri tipi anlamına gelmektedir. Overriding: Bir metotun tekrar yazılmasıdır. Eğer super-class daki bir metotun sub class da tekrar yazılıyorsa, o metot override ediliyor demektir. Böylelikle super-class daki metot gizlenmiş olur. Override işlemini eğer super class den gelen metot sub class için uygun olmazsa kullanırız.
Overloading ve Overriding: Örnek Nokta ile ilgili örnek(Overload); yerDegistir, uzaklikHesapla Hayvan, Aslan, İnek (Override)
Abstract Sınıflar; 1. Abstract sınıflardan obje yaratılamaz, başka sınıflar tarafından extends edilir. 2. Abstract sınıf içinde en az bir tane abstract metot içeren sınıftır.
This ve Super anahtar kelimelerini kullanmak; this anahtar kelimesi ile obje içinden o objenin metot ya da değişkenlerine ulaşılabilir. super anahtar kelimesi ise parent classın(super class) metot ve değişkenlerine ulaşmak için kullanılır.
Arayüz(Interface) İnterface sınıflar gibi temel bir kod birimidir. İnterface'te sadece değişkenler ve boş metotlar bulunur. İnterface'ler sınıflar arasında birçeşit anlaşma gibi kullanılabilirler. İnterface'si implement eden bir sınıf o interface'teki tüm metotların içlerini doldurmak zorundadır. Örneğin neyer isminde bir metotumuz Hayvan interface imiz de olsun, Böyle bir yapıda, hayvan mutlaka bir şeyler yiyecek, ama farklı hayvanlar farklı şeyler yiyeceğinden interface olarak tanımlanmıştır. Örneğin; aslan, et yiyeceği gibi inek ot yiyecektir.
Arayüz(Interface) • Arayüz ,interface anahtar sözcüğü ile tanımlanır. Arayüz abstract metotlar içerir. • Arayüz, anlık (instance) değişkenler içeremez. Ancak, belirtkeleri konmamış olsa bile, arayüz içindeki değişkenler final ve static olur. Bu demektir ki, arayüzde tanımlanan değişkenler, onu çağıran sınıflar tarafından değiştirilemez. • Arayüz, yalnızca public ve ön-tanımlı (default) erişim belirtkesi alabilir, başka erişim belirtkesi alamaz. • public damgalı arayüz, public damgalı class gibidir. Her kod ona erişebilir. • Erişim damgasız arayüz, erişim damgasız class gibidir. Bu durumda, arayüze, ait olduğu paket içindeki bütün kodlar ona erişebilir. Paket dışındaki kodlar erişemez. • Arayüz, public erişim belirtkesi ile nitelenmişse, içindeki bütün metotlar ve değişkenler otomatik olarak public nitelemesine sahip olur. • Bir sınıf birden çok arayüze çağırabilir (implement). • Aynı arayüzü birden çok sınıf çağırabilir. • Sınıftaki metotlar tam olarak tanımlıdır, ama arayüzde metotların gövdeleri yoktur. Onlar abstract metotlardır. metotun tipi, adı, parametreleri vardır, ama gövde tanımı yoktur; yani yaptığı iş belirli değildir. Metotların gövdesi, o arayüzü çağıran sınıf içinde yapılır. Böylece bir metot, farklı sınıflarda farklı tanımlanabilir. Bu özelik, Java’da polymorphismi olanaklı kılan önemli bir niteliktir. • Aynı arayüzü birden çok sınıf çağırabilir.