Java'da, sınıf bireysel bir nesne yaratabileceğimiz bir plandır. Java şunları sağlar: anahtar kelime Bir sınıfı bildirebileceğimiz adlandırılmış sınıf. Sınıfın içinde şunu tanımlarız: sınıf üyeler ve işlevler. Oluşturmak mümkün değil Java programları sınıfsız. Bir sınıfı aynı zamanda bir sınıf olarak da adlandırabiliriz. Kullanıcı tanımlı Sınıf Türleri
Java'da yedi tür sınıf vardır:
Statik Sınıf
Bir sınıf yapabiliriz statik ancak ve ancak iç içe geçmiş bir sınıfsa. Statik sınıfların iç içe sınıflar olarak da bilindiğini söyleyebiliriz. Bu, başka bir sınıf içinde statik olarak bildirilen bir sınıfın statik sınıf olarak bilindiği anlamına gelir. İç içe statik sınıf, dış sınıfa referans gerektirmez. Statik bir sınıfın amacı, miras aldığı sınıfın ana hatlarını sağlamaktır.
jframe
Statik sınıfın özellikleri şunlardır:
- Sınıfın yalnızca statik üyeleri vardır.
- Dış sınıfın üyesine (statik olmayan) erişemez.
- Statik sınıftan bir nesne yaratamayız.
Statik sınıf kavramını bir program aracılığıyla anlayalım.
StaticClassExample.java
public class StaticClassExample { private static String str = 'Javatpoint'; //nested class which is a Static class public static class StaticDemo { //non-static method of Static class public void show() { System.out.println(str); } } public static void main(String args[]) { StaticClassExample.StaticDemo obj = new StaticClassExample.StaticDemo(); obj.show(); } }
Çıktı:
Javatpoint
Yukarıdaki programın dış sınıfında bir değişken tanımladık. cadde statik olarak çünkü bu değişkene statik bir bağlamdan erişiyoruz. Bu değişkeni statik olmayan olarak bildirirsek derleyici bir hata gösterir çünkü iç içe geçmiş bir statik sınıf, dış sınıfın statik olmayan üyelerine erişemez.
Yukarıdaki programda dikkat edilmesi gereken ikinci şey, iç içe geçmiş sınıfın nesnesini oluşturmak için dış sınıfın bir örneğini yaratmamıza gerek olmamasıdır. Eğer iç içe geçmiş sınıf statik bir sınıf değilse dış sınıfın bir örneğini oluşturmamız gerekir.
Son Sınıf
Final kelimesi değiştirilemeyen anlamına gelir. son Java'da sınıf kullanılarak bildirilebilir son anahtar kelime . Bir sınıfı final olarak ilan ettiğimizde değerler program boyunca aynı kalır. Son dersin amacı, sınıfın değişmez String sınıfı gibi. Bu sadece sınıfı değişmez kılmanın bir yoludur. Unutmayın ki son ders uzatılamaz . Aynı zamanda sınıfın alt sınıflara ayrılmasını engeller .
Bir program aracılığıyla son sınıf kavramını anlayalım.
FinalClassExample.java
//base class declared as final final class A { void printmsg() { System.out.print('Base class method is executed.'); } } //derived class //extending a final class which is not possible //it shows the error cannot inherit final class at compile time class B extends A { void printmsg() { System.out.print('Derived class method is executed.'); } } //main class public class FinalClassExample { public static void main(String[] arg) { B obj = new B(); obj.printmsg(); } }
Çıktı:
/FinalClassExample.java:11: error: cannot inherit from final A class B extends A
Soyut Sınıf
Bir soyut sınıf anahtar kelimeyle bildirilen bir şeydir soyut . Sınıf soyut yöntemler içerebilir veya içermeyebilir. Soyut bir sınıfın örneğini oluşturamayız ancak bu bir alt sınıf olabilir. Bu sınıflar eksiktir, dolayısıyla soyut sınıfı tamamlamak için soyut sınıfları somut bir sınıfa genişletmeliyiz. Bir alt sınıfı abstract olarak ilan ettiğimizde, soyut yöntemlerin uygulanmasını sağlamak gerekir. Bu nedenle alt sınıfın da soyut olarak bildirilmesi gerekir. Soyut sınıfı kullanarak veri gizlemeyi başarabiliriz. Soyut bir sınıfın bir örneği Özet Harita Koleksiyonlar çerçevesinin bir parçası olan sınıf.
Soyut sınıf kavramını bir program aracılığıyla anlayalım.
SoyutSınıfÖrnek.java
dizede int
//abstract class abstract class MathematicalOperations { int a=30, b=40; //abstract method public abstract void add(); } public class Operation extends MathematicalOperations { //definition of abstract method public void add() { System.out.println('Sum of a and b is: 'a+b); } public static void main(String args[]) { MathematicalOperations obj = new Operation(); obj.add(); } }
Çıktı:
Sum of a and b is: 70
Beton Sınıfı
Bunlar normal Java sınıflarıdır. Temel sınıfta henüz uygulanmayan tüm yöntemlerin temel uygulamalarını sağlayan türetilmiş bir sınıfa, beton sınıf. Başka bir deyişle, soyut bir sınıfın tüm yöntemlerinin uygulandığı normal Java sınıflarıdır. Doğrudan somut sınıfın bir nesnesini oluşturabiliriz. Somut sınıfın ve soyut sınıfın aynı olmadığını unutmayın. Somut bir sınıf ana sınıfını genişletebilir. Özel gereksinimler için kullanılır.
Somut sınıf kavramını bir program aracılığıyla anlayalım.
ConcreteClassExample.java
//Concrete Class public class ConcreteClassExample { //method of the concreted class static int product(int a, int b) { return a * b; } public static void main(String args[]) { //method calling int p = product(6, 8); System.out.println('Product of a and b is: ' + p); } }
Çıktı:
Product of a and b is: 48
Tekil Sınıf
Aynı anda yalnızca bir nesneye sahip olan sınıfa sınıf adı verilir. tekil sınıf . Yine de ikinci kez örnek oluşturmaya çalışıyorsak, yeni oluşturulan örnek ilk örneği işaret ediyor. Eğer sınıf içinde herhangi bir örnek üzerinden değişiklik yaptıysak, bu değişiklik tek örneğin değişkenini de etkiler. Genellikle veritabanı bağlantısı ve soket programlamayla uğraşırken erişimi kontrol etmek için kullanılır. Singleton sınıfı oluşturmak istiyorsak aşağıdakileri yapın:
- Özel bir tane oluştur yapıcı .
- Singleton sınıfının nesnesini döndüren statik bir yöntem (tembel başlatmayı kullanarak) oluşturun.
SingletonClassExample.java
public class Singleton { private String objectState; private static Singleton instance = null; private Singleton() throws Exception { this.objectState = 'Javatpoint'; } public static Singleton getInstance() { if(instance==null) { try { instance=new Singleton(); } catch(Exception e) { e.printStackTrace(); } } return instance; } public String getObjectState() { return objectState; } public void setObjectState(String objectState) { this.objectState = objectState; } }
Çıktı:
Javatpoint
POJO Sınıfı
Java'da POJO şu anlama gelir: Düz Eski Java Nesnesi. Yalnızca özel değişkenleri, ayarlayıcıyı ve alıcıyı içeren bir Java sınıfına denir. POJO sınıf. Bir Java programının yeniden kullanılabilirliğini ve okunabilirliğini artıran Java nesnelerini tanımlamak için kullanılır. Sınıf kapsülleme sağlar. Bu sınıfların anlaşılması kolay olduğundan Java'da yaygın olarak kullanılmaktadır. POJO sınıfı aşağıdaki özelliklere sahiptir:
- Arrays, HttpServlet vb. gibi önceden tanımlanmış sınıfları genişletmez.
- Önceden belirlenmiş ek açıklamalar içeremez.
- Önceden tanımlanmış uygulanamaz arayüzler .
- Herhangi bir kurucu eklemenize gerek yoktur.
- Tüm örnek değişkenleri özel olmalıdır.
- Alıcı/ayarlayıcı yöntemler halka açık olmalıdır.
POJO sınıfı kavramını bir Java programı aracılığıyla anlayalım.
PojoClassExample.java
class PojoDemo { //private variable private double price=89764.34; //getter method public double getPrice() { return price; } //setter method public void setPrice(int price) { this.price = price; } } //main class public class PojoClassExample { public static void main(String args[]) { PojoDemo obj = new PojoDemo(); System.out.println('The price of an article is '+ obj.getPrice()+' Rs.'); } }
Çıktı:
The price of an article is 89764.34 Rs.
İç sınıf
Java, bir sınıf içinde bir sınıf tanımlamamızı sağlar ve bu tür sınıflar olarak bilinir. iç içe geçmiş sınıflar . Sınıfları mantıksal olarak gruplamak ve amaçları gerçekleştirmek için kullanılır. kapsülleme . Dış sınıf üyelerine (özel dahil) şu adresten erişilebilir: iç sınıf . Yuvalanmış sınıfı bildirmenin genel sözdizimi aşağıdaki gibidir:
class OuterClass { //code class NestedClass { //code } }
İç içe geçmiş sınıflar iki türdendir:
1. Statik İç İçe Sınıf: Öyle bir sınıf ki statik Ve iç içe geçmiş statik iç içe geçmiş sınıf denir. Dış sınıfının örnek üyesiyle etkileşime girer. Aşağıdaki sözdizimini kullanarak statik iç içe sınıfın bir nesnesini oluşturabiliriz:
OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
2. Statik Olmayan İç İçe Sınıf: Statik olmayan iç içe geçmiş sınıflara denir iç sınıflar .
Statik iç içe geçmiş sınıfı ve iç sınıfı bildirmenin genel sözdizimi aşağıdaki gibidir:
class OuterClass { ... static class StaticNestedClass { ... } class InnerClass { ... } }
Bir Java programı aracılığıyla iç sınıf kavramını anlayalım.
İç SınıfÖrnek.java
public class InnerClassExample { public static void main(String[] args) { System.out.println('This is outer class.'); } class InnerClass { public void printinner() { System.out.println('This is inner class.'); } } }
İç Sınıf Türleri
Java aşağıdaki iki tür iç sınıfı sağlar:
- Yerel Sınıflar veya Yöntem Yerel İç Sınıf
- Anonim Sınıflar veya Anonim İç Sınıf
Yerel İç Sınıf
Bir bloğun içinde tanımlanan bir iç sınıf türüdür. Burada blok, bir yöntem gövdesini (bir çift parantez arasına alınmış bir grup ifade) belirtir. Bir bloğun içinde tanımlandığı için yöntem yerel iç sınıfı olarak da bilinir. Bunlar statik olmayan sınıflardır çünkü bloğun örnek üyelerine erişebilirler. Yerel iç sınıfları bir yöntemin gövdesinde tanımlayabiliriz. Bu sınıfların tanımlandıkları blokta başlatılması gerekir.
Java dizesinden tam sayıya dönüştürme
Bir Java programını (iç sınıf içeren bir program) derlediğimizde, derleyici iki sınıf dosyasını oluşturur: Dış.sınıf Ve Dışİç.sınıf. Biri dış sınıf için, diğeri ise dış sınıfa referans içeren iç sınıf için.
Yerel iç sınıf kavramını bir Java programı aracılığıyla anlayalım.
Dış Sınıf.java
public class OuterClass { private void getValue() { //if you are using Java 7 make the variable final //if you are using Java 8 the code runs successfully int sum = 20; //declaring method local inner class class InnerClass { public int divisor; public int remainder; public InnerClass() { divisor = 4; remainder = sum%divisor; } private int getDivisor() { return divisor; } private int getRemainder() { return sum%divisor; } private int getQuotient() { System.out.println('We are inside the inner class'); return sum / divisor; } } //creating an instance of inner class InnerClass ic = new InnerClass(); System.out.println('Divisor = '+ ic.getDivisor()); System.out.println('Remainder = ' + ic.getRemainder()); System.out.println('Quotient = ' + ic.getQuotient()); } public static void main(String[] args) { //creating an instance of outer class OuterClass oc = new OuterClass(); oc.getValue(); } }
Çıktı:
Divisor = 4 Remainder = 0 We are inside the inner class Quotient = 5
Anonim İç Sınıf
Yerel sınıflarla aynı olan bir iç sınıf türüdür ancak tek farkı sınıfın bir sınıf adının olmaması ve sınıftan tek bir nesnenin oluşturulmasıdır. Kodu daha kısa hale getirir. Yerel sınıfı bir kez kullanmak istiyorsak kullanılır. Anonim sınıfları aşağıdaki iki yolla oluşturabiliriz:
.net öğreticisi
- Bir arayüz kullanarak
- Sınıfı somut ve soyut olarak ilan ederek
Sözdizimi:
// the class may an interface, abstract or concrete class DemoClass obj = new DemoClass() { //methods //data members public void demomethod() { //statements } };
Yukarıdaki sözdizimine baktığımızda, sınıfın blokta yer alan bir tanıma sahip olması dışında bunun yapıcının çağrılması ile aynı olduğunu görüyoruz.
AnonimSınıfExample.java
interface Score { int run = 321; void getScore(); } public class AnonymousClassExample { public static void main(String[] args) { // Myclass is hidden inner class of Score interface // whose name is not written but an object to it // is created. Score s = new Score() { @Override public void getScore() { //prints score System.out.print('Score is '+run); } }; s.getScore(); } }
Çıktı:
Score is 321
Java ayrıca sarmalayıcı sınıf olarak bilinen başka bir Java sınıfı türü de sağlar. Bunu ayrıntılı olarak tartışalım.
Sarmalayıcı Sınıfı
Java'da bu terim sarmalayıcı sınıfı Java'nın ilkel türünü nesneleştiren bir Java sınıfları koleksiyonunu temsil eder. Bu, her ilkel tür için karşılık gelen bir sarmalayıcı sınıfının olduğu anlamına gelir. Sarmalayıcı sınıfları, ilkel bir türden bir nesneye (ve bunun tersi) dönüşümü gerçekleştirmek için kullanılır. Aşağıdaki şekilde sarmalayıcı sınıfı hiyerarşisi gösterilmektedir.
Aşağıdaki tablo, ilkel türü ve karşılık gelen sarmalayıcı sınıfını temsil eder.
İlkel Tip | Sarmalayıcı Sınıfı |
---|---|
boolean | Boolean |
int | Tamsayı |
karakter | Karakter |
çift | Çift |
batmadan yüzmek | Batmadan yüzmek |
uzun | Uzun |
bayt | Bayt |
kısa | Kısa |
Wrapper sınıfını bir Java programı aracılığıyla anlayalım.
WrapperClassExample.java
public class WrapperClassExample { public static void main(String args[]) { byte x = 0; //wrapping byte primitive type into Byte object Byte byteobj = new Byte(x); int y = 23; //wrapping int primitive type into Integer object Integer intobj = new Integer(y); char c='m'; //wrapping char primitive type into Character object Character charobj=c; //printing values from objects System.out.println('Byte object byteobj: ' + byteobj); System.out.println('Integer object intobj: ' + intobj); System.out.println('Character object charobj: ' + charobj); } }
Çıktı:
Byte object byteobj: 0 Integer object intobj: 23 Character object charobj: m