Java'da sınıflar ve nesneler Nesneye Yönelik Programlamanın (OOP) temelini oluşturur. Gerçek dünyadaki varlıkların modellenmesine ve kodun yapılandırılmış bir şekilde düzenlenmesine yardımcı olurlar.
- Sınıf, ortak özellikleri ve davranışları paylaşan nesneler oluşturmak için kullanılan bir plandır.
- Bir nesne bir sınıfın örneğidir. Sınıf şablonundan oluşturulan belirli bir varlığı temsil eder.
Örneğin Köpek bir sınıftır ve Tommy de o sınıfın bir nesnesidir.
Sınıflar ve Nesneler (Burada Köpek Sınıftır ve Bobby Nesnedir)Java Sınıfı
Sınıf, nesnelere ilişkin verileri ve davranışı tanımlayan bir plandır. İlgili alanları ve yöntemleri tek bir birimde gruplandırır. Üyeleri için bellek yalnızca bir nesne oluşturulduğunda tahsis edilir.
- Paylaşılan yapıya sahip nesneler oluşturmak için şablon görevi görür.
- Örneklemeye kadar alanlar için hafızayı işgal etmez.
- Alan yöntemleri yapıcıları iç içe geçmiş sınıfları ve arayüzleri içerebilir.
class Student { int id; String n; public Student(int id String n) { this.id = id; this.n = n; } } public class Main { public static void main(String[] args) { Student s1 = new Student(10 'Alice'); System.out.println(s1.id); System.out.println(s1.n); } }
Çıkış
10 Alice
Java Nesneleri
Bir nesne, verilerine ve işlemlerine erişmek için oluşturulmuş bir sınıfın örneğidir. Her nesne kendi durumunu tutar.
- Durum : Alanlarda saklanan değerler.
- Davranış : Yöntemler aracılığıyla tanımlanan eylemler.
- Kimlik : Bir nesneyi diğerinden ayırır.
Nesneler, müşteri ürünü veya çevre gibi gerçek dünyadaki öğeleri yansıtır. İlkel olmayan nesneler yığında depolanırken referansları yığında kalır.
json java'ya dize
Java Nesneleri (Köpek Örneği)Nesne Örnekleme
Bir nesne oluşturmak örnekleme olarak bilinir. Bir sınıfın tüm örnekleri, farklı durum değerlerini saklarken yapıyı ve davranışı paylaşır.
Java Nesne BildirimiBeyanname:
Köpek tüfü;
Bu yalnızca bir referansı bildirir. Nesne oluşturulmadı ve referans boş değerde.
Başlatma:
tuffy = new Köpek('Tuffy' 'Papillon' 5 'Beyaz');
BaşlatmaYeni operatör hafızayı ayırır ve yapıcıyı çağırır.
Örnek: Sınıf Tanımlama ve Kullanma
Javapublic class Dog { String name; String breed; int age; String color; public Dog(String name String breed int age String color) { this.name = name; this.breed = breed; this.age = age; this.color = color; } public String getName() { return name; } public String getBreed() { return breed; } public int getAge() { return age; } public String getColor() { return color; } @Override public String toString() { return 'Name is: ' + name + 'nBreed age and color are: ' + breed + ' ' + age + ' ' + color; } public static void main(String[] args) { Dog tuffy = new Dog('tuffy' 'papillon' 5 'white'); System.out.println(tuffy); } }
Çıkış
Name is: tuffy Breed age and color are: papillon 5 white
Not: Her sınıfın en az bir yapıcısı vardır. Hiçbiri tanımlanmadıysa Java, ana kurucuyu çağıran varsayılan, bağımsız değişken içermeyen bir kurucu sağlar.
Yöntem/İşlev kullanarak Nesneyi Başlat
Javapublic class Geeks { static String name; static float price; static void set(String n float p) { name = n; price = p; } static void get() { System.out.println('Software name is: ' + name); System.out.println('Software price is: ' + price); } public static void main(String[] args) { Geeks.set('Visual Studio' 0.0f); Geeks.get(); } }
Çıkış
Software name is: Visual Studio Software price is: 0.0
Java'da Nesne Oluşturmanın Yolları
Java dört standart yaklaşımı destekler.
1. Yeni Anahtar Kelimeyi Kullanmak
Bir nesne yaratmanın en doğrudan yolu.
Java// creating object of class Test Test t = new Test();
2. Yansımayı Kullanmak
Spring gibi çerçevelerde görüldüğü gibi dinamik sınıf yükleme için kullanılır.
Javaclass Student { public Student() {} } public class Main { public static void main(String[] args) { try { Class> c = Class.forName('Student'); Student s = (Student) c.getDeclaredConstructor().newInstance(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } }
Çıkış
Student@1dbd16a6
3. clone() yöntemini kullanma
clone() mevcut bir nesnenin bir kopyasını oluşturur. Sınıfın Cloneable'ı uygulaması gerekir.
Javaclass Geeks implements Cloneable { String name = 'GeeksForGeeks'; @Override protected Object clone() throws CloneNotSupportedException { return super.clone(); } public static void main(String[] args) { try { Geeks g1 = new Geeks(); Geeks g2 = (Geeks) g1.clone(); System.out.println(g2.name); } catch (Exception e) { e.printStackTrace(); } } }
Çıkış
GeeksForGeeks
4. Seri durumdan çıkarmanın kullanılması
Seri durumdan çıkarma, bir nesneyi bir dosyadaki kayıtlı durumdan okuma tekniğidir. Nesne, depolanan bir bayt akışından yeniden oluşturulur.
Bakınız Java'da Serileştirme/Serileştirmeyi Kaldırma .
Javaimport java.io.*; class Student implements Serializable { private String name; public Student(String name) { this.name = name; } public String toString() { return 'Student: ' + name; } } public class Main { public static void main(String[] args) { try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream('student.ser'))) { out.writeObject(new Student('Alice')); } catch (IOException e) { e.printStackTrace(); } try (ObjectInputStream in = new ObjectInputStream(new FileInputStream('student.ser'))) { Student s = (Student) in.readObject(); System.out.println(s); } catch (Exception e) { e.printStackTrace(); } } }
Çıkış
Student: Alice
Tek bir referans farklı zamanlarda farklı nesnelere işaret edebilir.
JavaTest test = new Test(); test = new Test();
Kalıtımda alt nesneler için ana referansın kullanılması yaygındır.
JavaAnimal obj = new Dog(); obj = new Cat();
Referans verilmeyen nesneler çöp toplama işlemine uygun hale gelir.
Anonim Nesneler
Anonim nesneler referans olmadan oluşturulur ve tek seferlik işlemler için hemen kullanılır.
- Referans değişkeni yok: Nesne yeniden kullanılamaz.
- Anında oluşturulan ve kullanılan kısa ömürlü görevler için hafızadan tasarruf sağlar.
- Olay işlemede yaygındır (ör. düğme tıklamaları).
new Dog('Max' 'Labrador' 3 'Black').getName();
Kullanıcı arayüzü olay işlemede yaygındır.
Test Oluştur