Java'da Sınıflar ve Nesneler

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_exampleSı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.

JavaJava 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.

JavaJava 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-768Baş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