logo

Java'da Nesneler ve Sınıflar

  1. Java'da nesne
  2. Java'da Sınıf
  3. Java'da Örnek Değişkeni
  4. Java'da Yöntem
  5. Öğrenci kayıtlarını tutan nesne ve sınıf örneği
  6. Anonim Nesne

Bu sayfada Java nesneleri ve sınıfları hakkında bilgi edineceğiz. Nesneye yönelik programlama tekniğinde nesneleri ve sınıfları kullanarak bir program tasarlıyoruz.

Java'daki bir nesne hem fiziksel hem de mantıksal bir varlıktır, oysa Java'daki bir sınıf yalnızca mantıksal bir varlıktır.

Java'da nesne nedir

Java'daki nesne

Durumu ve davranışı olan bir varlık, örneğin sandalye, bisiklet, kalem, kalem, masa, araba vb. gibi bir nesne olarak bilinir. Fiziksel veya mantıksal (somut ve soyut) olabilir. Maddi olmayan bir nesnenin örneği bankacılık sistemidir.

Bir nesnenin üç özelliği vardır:

    Durum:bir nesnenin verilerini (değerini) temsil eder.Davranış:Para yatırma, çekme vb. gibi bir nesnenin davranışını (işlevselliğini) temsil eder.Kimlik:Bir nesne kimliği tipik olarak benzersiz bir kimlik aracılığıyla uygulanır. Kimliğin değeri harici kullanıcı tarafından görülmez. Ancak JVM tarafından her nesneyi benzersiz şekilde tanımlamak için dahili olarak kullanılır.
Java'da Nesnenin Özellikleri

Örneğin Kalem bir nesnedir. Adı Reynolds; rengi beyazdır, hali olarak bilinir. Yazmak için kullanılır, dolayısıyla yazmak onun davranışıdır.

Bir nesne bir sınıfın örneğidir. Sınıf, nesnelerin oluşturulduğu bir şablon veya plandır. Yani, bir nesne bir sınıfın örneğidir (sonucudur).

Nesne Tanımları:

  • Bir nesne gerçek dünyadaki bir varlık .
  • Bir nesne bir çalışma zamanı varlığı .
  • Nesne durumu ve davranışı olan bir varlık .
  • Nesne bir sınıfın örneği .

Java'da sınıf nedir

Sınıf, ortak özelliklere sahip bir grup nesnedir. Nesnelerin oluşturulduğu bir şablon veya plandır. Mantıksal bir varlıktır. Fiziksel olamaz.

Java'daki bir sınıf şunları içerebilir:

    Alanlar Yöntemler İnşaatçılar Bloklar İç içe geçmiş sınıf ve arayüz
Java'da Sınıf

Bir sınıfı bildirmek için sözdizimi:

 class { field; method; } 

Java'da örnek değişken

Sınıfın içinde ancak yöntemin dışında oluşturulan bir değişken, örnek değişken olarak bilinir. Örnek değişkeni derleme zamanında belleğe alınmaz. Bir nesne veya örnek oluşturulduğunda çalışma zamanında bellek alır. Bu nedenle örnek değişken olarak bilinir.


Java'da Yöntem

Java'da yöntem, bir nesnenin davranışını ortaya çıkarmak için kullanılan bir işlev gibidir.

Yöntemin Avantajı

  • Kodun Yeniden Kullanılabilirliği
  • Kod Optimizasyonu

Java'da yeni anahtar kelime

New anahtar sözcüğü çalışma zamanında belleği ayırmak için kullanılır. Tüm nesneler Heap hafıza alanında hafızaya alınır.


Nesne ve Sınıf Örneği: sınıf içindeki main

Bu örnekte, iki veri üyesi kimliği ve adı olan bir Öğrenci sınıfı oluşturduk. Öğrenci sınıfının nesnesini new anahtar sözcüğü ile oluşturup, nesnenin değerini yazdırıyoruz.

Burada sınıf içinde bir main() metodu yaratıyoruz.

Dosya: Öğrenci.java

 //Java Program to illustrate how to define a class and fields //Defining a Student class. class Student{ //defining fields int id;//field or data member or instance variable String name; //creating main method inside the Student class public static void main(String args[]){ //Creating an object or instance Student s1=new Student();//creating an object of Student //Printing values of the object System.out.println(s1.id);//accessing member through reference variable System.out.println(s1.name); } } 
Şimdi Test Edin

Çıktı:

 0 null 

Nesne ve Sınıf Örneği: sınıfın dışındaki ana

Gerçek zamanlı geliştirmede sınıflar oluşturur ve onu başka bir sınıftan kullanırız. Öncekine göre daha iyi bir yaklaşım. Başka bir sınıfta main() yönteminin kullanıldığı basit bir örneğe bakalım.

json dosyalarını oku

Farklı Java dosyalarında veya tek bir Java dosyasında birden fazla sınıfımız olabilir. Tek bir Java kaynak dosyasında birden fazla sınıf tanımlarsanız, dosya adını main() yöntemine sahip sınıf adıyla kaydetmek iyi bir fikirdir.

Dosya: TestStudent1.java

 //Java Program to demonstrate having the main method in //another class //Creating Student class. class Student{ int id; String name; } //Creating another class TestStudent1 which contains the main method class TestStudent1{ public static void main(String args[]){ Student s1=new Student(); System.out.println(s1.id); System.out.println(s1.name); } } 
Şimdi Test Edin

Çıktı:

 0 null 

Nesneyi başlatmanın 3 yolu

Java'da nesneyi başlatmanın 3 yolu vardır.

  1. Referans değişkenine göre
  2. Yönteme göre
  3. Yapıcıya göre

1) Nesne ve Sınıf Örneği: Referans yoluyla başlatma

Bir nesneyi başlatmak, verileri nesneye depolamak anlamına gelir. Nesneyi bir referans değişkeni aracılığıyla başlatacağımız basit bir örneğe bakalım.

Dosya: TestStudent2.java

 class Student{ int id; String name; } class TestStudent2{ public static void main(String args[]){ Student s1=new Student(); s1.id=101; s1.name='Sonoo'; System.out.println(s1.id+' '+s1.name);//printing members with a white space } } 
Şimdi Test Edin

Çıktı:

 101 Sonoo 

Ayrıca referans değişkeni aracılığıyla birden fazla nesne oluşturabilir ve bilgileri bu nesnelerde saklayabiliriz.

Dosya: TestStudent3.java

 class Student{ int id; String name; } class TestStudent3{ public static void main(String args[]){ //Creating objects Student s1=new Student(); Student s2=new Student(); //Initializing objects s1.id=101; s1.name='Sonoo'; s2.id=102; s2.name='Amit'; //Printing data System.out.println(s1.id+' '+s1.name); System.out.println(s2.id+' '+s2.name); } } 
Şimdi Test Edin

Çıktı:

 101 Sonoo 102 Amit 

2) Nesne ve Sınıf Örneği: Yöntem aracılığıyla başlatma

Bu örnekte, Öğrenci sınıfının iki nesnesini oluşturuyoruz ve insertRecord yöntemini çağırarak bu nesnelerin değerini başlatıyoruz. Burada displayInformation() yöntemini çağırarak nesnelerin durumunu (verilerini) görüntülüyoruz.

Dosya: TestStudent4.java

 class Student{ int rollno; String name; void insertRecord(int r, String n){ rollno=r; name=n; } void displayInformation(){System.out.println(rollno+' '+name);} } class TestStudent4{ public static void main(String args[]){ Student s1=new Student(); Student s2=new Student(); s1.insertRecord(111,'Karan'); s2.insertRecord(222,'Aryan'); s1.displayInformation(); s2.displayInformation(); } } 
Şimdi Test Edin

Çıktı:

 111 Karan 222 Aryan 
Değerleri olan Java'daki nesne

Yukarıdaki şekilde görüldüğü gibi nesne heap hafıza alanındaki hafızayı alır. Referans değişkeni, yığın bellek alanında tahsis edilen nesneyi ifade eder. Burada s1 ve s2'nin her ikisi de bellekte tahsis edilen nesnelere atıfta bulunan referans değişkenleridir.


3) Nesne ve Sınıf Örneği: Bir kurucu aracılığıyla başlatma

Java'daki yapıcıları daha sonra öğreneceğiz.


Nesne ve Sınıf Örneği: Çalışan

Çalışanların kayıtlarını tuttuğumuz bir örneği görelim.

Dosya: TestEmployee.java

 class Employee{ int id; String name; float salary; void insert(int i, String n, float s) { id=i; name=n; salary=s; } void display(){System.out.println(id+' '+name+' '+salary);} } public class TestEmployee { public static void main(String[] args) { Employee e1=new Employee(); Employee e2=new Employee(); Employee e3=new Employee(); e1.insert(101,'ajeet',45000); e2.insert(102,'irfan',25000); e3.insert(103,'nakul',55000); e1.display(); e2.display(); e3.display(); } } 
Şimdi Test Edin

Çıktı:

 101 ajeet 45000.0 102 irfan 25000.0 103 nakul 55000.0 

Nesne ve Sınıf Örneği: Dikdörtgen

Rectangle sınıfının kayıtlarını tutan başka bir örnek daha verilmiştir.

Dosya: TestRectangle1.java

 class Rectangle{ int length; int width; void insert(int l, int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle1{ public static void main(String args[]){ Rectangle r1=new Rectangle(); Rectangle r2=new Rectangle(); r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Şimdi Test Edin

Çıktı:

 55 45 

Java'da nesne oluşturmanın farklı yolları nelerdir?

Java'da nesne oluşturmanın birçok yolu vardır. Bunlar:

  • Yeni anahtar kelimeye göre
  • newInstance() yöntemiyle
  • clone() yöntemiyle
  • Seri durumdan çıkarma yoluyla
  • Fabrika yöntemiyle vb.

Nesne oluşturmanın bu yollarını daha sonra öğreneceğiz.

Java'da Nesne Oluşturmanın Farklı Yolları

Anonim nesne

Anonim, basitçe isimsiz anlamına gelir. Referansı olmayan bir nesneye anonim nesne denir. Yalnızca nesne oluşturma sırasında kullanılabilir.

Bir nesneyi yalnızca bir kez kullanmanız gerekiyorsa anonim bir nesne iyi bir yaklaşımdır. Örneğin:

 new Calculation();//anonymous object 

Bir referans aracılığıyla yöntemin çağrılması:

 Calculation c=new Calculation(); c.fact(5); 

Anonim bir nesne aracılığıyla yöntemin çağrılması

 new Calculation().fact(5); 

Java'da anonim bir nesnenin tam örneğini görelim.

 class Calculation{ void fact(int n){ int fact=1; for(int i=1;i<=n;i++){ fact="fact*i;" } system.out.println('factorial is '+fact); public static void main(string args[]){ new calculation().fact(5); calling method with anonymous object < pre> <p>Output:</p> <pre> Factorial is 120 </pre> <a id="objectbyonetype"></a> <h3>Creating multiple objects by one type only</h3> <p>We can create multiple objects by one type only as we do in case of primitives.</p> <p>Initialization of primitive variables:</p> <pre> int a=10, b=20; </pre> <p>Initialization of refernce variables:</p> <pre> Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects </pre> <p>Let&apos;s see the example:</p> <pre> //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } </pre> <span> Test it Now </span> <p>Output:</p> <pre> 55 45 </pre> <h3>Real World Example: Account</h3> <p>File: TestAccount.java</p> <pre> //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println('insufficient balance'); }else{ amount="amount-amt;" system.out.println(amt+' withdrawn'); } method to check the balance of account void checkbalance(){system.out.println('balance is: '+amount);} display values an object display(){system.out.println(acc_no+' '+name+' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,'ankit',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){></pre></=n;i++){>

Yalnızca tek bir türe göre birden fazla nesne oluşturma

İlkellerde yaptığımız gibi, yalnızca tek bir türe göre birden fazla nesne oluşturabiliriz.

İlkel değişkenlerin başlatılması:

 int a=10, b=20; 

Referans değişkenlerinin başlatılması:

 Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects 

Örneğe bakalım:

 //Java Program to illustrate the use of Rectangle class which //has length and width data members class Rectangle{ int length; int width; void insert(int l,int w){ length=l; width=w; } void calculateArea(){System.out.println(length*width);} } class TestRectangle2{ public static void main(String args[]){ Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects r1.insert(11,5); r2.insert(3,15); r1.calculateArea(); r2.calculateArea(); } } 
Şimdi Test Edin

Çıktı:

strsep
 55 45 

Gerçek Dünya Örneği: Hesap

Dosya: TestAccount.java

 //Java Program to demonstrate the working of a banking-system //where we deposit and withdraw amount from our account. //Creating an Account class which has deposit() and withdraw() methods class Account{ int acc_no; String name; float amount; //Method to initialize object void insert(int a,String n,float amt){ acc_no=a; name=n; amount=amt; } //deposit method void deposit(float amt){ amount=amount+amt; System.out.println(amt+&apos; deposited&apos;); } //withdraw method void withdraw(float amt){ if(amount <amt){ system.out.println(\'insufficient balance\'); }else{ amount="amount-amt;" system.out.println(amt+\' withdrawn\'); } method to check the balance of account void checkbalance(){system.out.println(\'balance is: \'+amount);} display values an object display(){system.out.println(acc_no+\' \'+name+\' creating a test class deposit and withdraw testaccount{ public static main(string[] args){ a1="new" account(); a1.insert(832345,\'ankit\',1000); a1.display(); a1.checkbalance(); a1.deposit(40000); a1.withdraw(15000); }} < pre> <span> Test it Now </span> <p>Output:</p> <pre> 832345 Ankit 1000.0 Balance is: 1000.0 40000.0 deposited Balance is: 41000.0 15000.0 withdrawn Balance is: 26000.0 </pre></amt){>