Modül dersleri (1/2)
Sınıflar ve Nesneler
Java, Nesneye Dayalı Programlamaya (OOP) odaklanan bir dildir. OOP'ta nesneleri kullanarak gerçek dünyayı modelliyoruz. Bir nesnenin durumu (verileri) ve davranışları (eylemleri) vardır.
Sınıflar ve Nesneler
- Sınıf: Bir nesne türünün özelliklerini ve davranışını tanımlayan bir plandır (veya şablondur).
- Nesne: Bir sınıftan oluşturulan somut bir örnektir.
Örneğin, eğer Car sınıfsa, garajdaki arabanız asıl nesnedir.
Örnek Alanları ve Oluşturucular
Bir sınıfın içindeki verilere örnek alanları (veya nitelikler) adı verilir. Bir nesnenin yaratıldığı andaki durumunu başlatmak için yapıcı adı verilen özel bir yöntem kullanırız.
Bir kurucu sınıfla aynı ada sahiptir ve dönüş tipi yoktur (void bile değil).
class Dog {
// Instance fields
String name;
int age;
// Constructor
public Dog(String name, int age) {
this.name = name; // 'this' refers to the current object's field
this.age = age;
}
}new ile Nesne Oluşturma
Bellekte bir nesne oluşturmak için new anahtar sözcüğünü ve ardından sınıf yapıcısını kullanırız:
public class Main {
public static void main(String[] args) {
// Creating a Dog object
Dog myDog = new Dog("Fido", 3);
// Accessing fields
System.out.println(myDog.name + " is " + myDog.age + " years old.");
}
}this Referansı
Java'daki this anahtar sözcüğü, yapıcının veya yöntemin yürütüldüğü geçerli nesneyi ifade eder. Yapıcı parametreleri nesnenin örnek alanlarıyla aynı ada sahip olduğunda (değişken gölgeleme) öncelikle belirsizliği önlemek için kullanılır:
class User {
String username;
public User(String username) {
this.username = username; // this.username is the instance field, username is the parameter
}
}Bellek Tahsisi: Yığın ve Yığın
Java'nın belleği nasıl ayırdığını anlamak önemlidir:
- Yığın: İlkel değişkenlerin ve yöntemlere yerel nesne referanslarının (bellek adresleri) depolandığı hızlı ve düzenli bir bellek alanıdır.
- Heap: Gerçek nesnelerin tahsis edildiği daha büyük ve dinamik bir bellek alanıdır (
newanahtar sözcüğü kullanılarak).
Dog myDog = new Dog("Fido", 3); ilan ettiğimizde:
myDogreferansı Stack üzerinde oluşturulur.- Verileriyle birlikte gerçek
Dognesnesi Heap üzerinde oluşturulur. myDogdeğişkeni nesnenin Heap üzerindeki konumuna işaret eder.
Kendin dene
Alan adını ve uygun bir kurucuyu ekleyerek Person sınıfını tamamlayın. Daha sonra ana yöntemde Alice adında p adında bir Person nesnesi oluşturun.
İpucu göster
Sınıfın içine `String name;' yazın, yapıcıyı bildirin `public Person(String name) { this.name = name; }` ve bunu `new Person('Alice')` ile başlatın.
3 denemeden sonra çözüm mevcut
Başlık (String) ve sayfalar (int) alanlarına sahip bir Book sınıfı, tam bir kurucu oluşturun ve ana yöntemde Moby Dick başlıklı ve 600 sayfalık b adlı bir kitabı örnekleyin.
İpucu göster
Kitap'ta her iki alanı da tanımlamayı, bunları yapıcıda `this.title = title;' ve `this.pages = sayfalar;' kullanarak eşlemeyi ve `new Book('Moby Dick', 600)`'i kullanmayı unutmayın.
3 denemeden sonra çözüm mevcut
Alan adı (Dize) ve fiyat (double) içeren bir Ürün sınıfı ve her iki alanı da başlatan bir yapıcı oluşturun. Ana yöntemde, Laptop adında ve 999,99 fiyatında p adında bir Ürün nesnesi oluşturun.
İpucu göster
Product'ta `String name;` ve `double Price;` alanlarını bildirin, bunları yapıcıda `this.name = name;` ve `this.price = Price;` ile atayın ve son olarak ana yöntemde nesneyi oluşturun.
3 denemeden sonra çözüm mevcut