logo

Java'da Sınıflar ve Nesneler

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.

Class_Object_example' title=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.
Java
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'daki nesneler' loading='lazy' title=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'da Nesneleri Bildirmek' loading='lazy' title=Java Nesne Bildirimi

Beyanname:

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');

Java-3-768'deki Sınıflar ve Nesneler' loading='lazy' title=Başlatma

Yeni operatör hafızayı ayırır ve yapıcıyı çağırır.

Örnek: Sınıf Tanımlama ve Kullanma

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

Java
public 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.

Java
class 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.

Java
class 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 .

Java
import 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.

Java
Test test = new Test(); test = new Test(); 

Kalıtımda alt nesneler için ana referansın kullanılması yaygındır.

Java
Animal 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ı).
Java
new Dog('Max' 'Labrador' 3 'Black').getName(); 

Kullanıcı arayüzü olay işlemede yaygındır.

Test Oluştur