- Java'da nesne
- Java'da Sınıf
- Java'da Örnek Değişkeni
- Java'da Yöntem
- Öğrenci kayıtlarını tutan nesne ve sınıf örneği
- 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
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:
Ö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:
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.
- Referans değişkenine göre
- Yönteme göre
- 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
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.
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'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+' deposited'); } //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+' deposited'); } //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){>=n;i++){>