Ana içeriğe geç
Modül 2 · Ders 1 ders 2Kurstaki 3/14~12 min
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).

Java
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:

Java
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:

Java
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:

  1. 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.
  2. Heap: Gerçek nesnelerin tahsis edildiği daha büyük ve dinamik bir bellek alanıdır (new anahtar sözcüğü kullanılarak).

Dog myDog = new Dog("Fido", 3); ilan ettiğimizde:

  • myDog referansı Stack üzerinde oluşturulur.
  • Verileriyle birlikte gerçek Dog nesnesi Heap üzerinde oluşturulur.
  • myDog değişkeni nesnenin Heap üzerindeki konumuna işaret eder.

Kendin dene

Egzersiz#java.m2.l1.e1
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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

Egzersiz#java.m2.l1.e2
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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

Egzersiz#java.m2.l1.e3
Denemeler: 0Yükleniyor…

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.

Düzenleyici yükleniyor…
İ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