logo

Klašu veidi Java valodā

Java valodā, klasē ir projekts, no kura mēs varam izveidot atsevišķu objektu. Java nodrošina a atslēgvārds nosaukta klase, ar kuru mēs varam deklarēt klasi. Klasē mēs definējam klasē locekļi un funkcijas. Nav iespējams izveidot Java programmas bez klases. Mēs varam arī saukt klasi kā a lietotājs definēts Nodarbību veidi

Java ir septiņu veidu klases:

    Statiskā klase Noslēguma klase Abstraktā klase Betona klase Singltona klase POJO klase Iekšējā klase
Klašu veidi Java valodā

Statiskā klase

In Java , static ir atslēgvārds, kas pārvalda objektus atmiņā. Statiskais objekts pieder klasei, nevis klases gadījumam.

kā uzzināt displeja izmēru

Mēs varam izveidot klasi statisks tad un tikai tad, ja tā ir ligzdota klase. Mēs varam arī teikt, ka statiskās klases sauc par ligzdotām klasēm. Tas nozīmē, ka klase, kas citā klasē ir deklarēta kā statiska, ir pazīstama kā statiska. Ligzdota statiskā klase neprasa atsauci uz ārējo klasi. Statiskās klases mērķis ir sniegt tās mantotās klases izklāstu.

Statiskās klases īpašības ir šādas:

  • Klasei ir tikai statiski dalībnieki.
  • Tas nevar piekļūt ārējās klases dalībniekam (nestatiskajam).
  • Mēs nevaram izveidot statiskās klases objektu.

Sapratīsim statiskās klases jēdzienu caur programmu.

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(); } } 

Izvade:

 Javatpoint 

Iepriekš minētās programmas ārējā klasē mēs esam deklarējuši mainīgo str kā statisks, jo mēs piekļūstam šim mainīgajam no statiska konteksta. Ja mēs deklarējam šo mainīgo kā nestatisku, kompilators parāda kļūdu, jo ligzdotā statiskā klase nevar piekļūt ārējās klases nestatiskajiem dalībniekiem.

Otra lieta, kas jāņem vērā iepriekš minētajā programmā, ir tāda, ka, lai izveidotu ligzdotās klases objektu, mums nav jāizveido ārējās klases gadījums. Ja ligzdotā klase nav statiska klase, mums ir jāizveido ārējās klases gadījums.

Noslēguma klase

Vārds galīgs nozīmē, ka to nevar mainīt. The galīgais klasi Java var deklarēt, izmantojot pēdējais atslēgvārds . Kad mēs pasludinām klasi kā galīgu, vērtības paliek nemainīgas visā programmā. Noslēguma nodarbības mērķis ir izveidot klasi nemainīgs kā Stīgu klasē. Tas ir tikai veids, kā padarīt klasi nemainīgu. Atcerieties, ka beigu nodarbību nevar pagarināt . Tas arī neļauj klasei klasificēt apakšklasi .

Sapratīsim beigu klases jēdzienu caur programmu.

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(); } } 

Izvade:

 /FinalClassExample.java:11: error: cannot inherit from final A class B extends A 

Abstraktā klase

An abstraktā klase ir a, kas tiek deklarēta ar atslēgvārdu abstrakts . Klase var saturēt abstraktas metodes vai arī nesaturēt tās. Mēs nevaram izveidot abstraktas klases gadījumu, bet tā var būt apakšklase. Šīs klases ir nepilnīgas, tāpēc, lai pabeigtu abstrakto klasi, mums ir jāpaplašina abstraktās klases līdz konkrētai klasei. Kad mēs pasludinām apakšklasi kā abstraktu, tad ir jānodrošina abstraktu metožu ieviešana. Tāpēc arī apakšklase ir jāpasludina par abstraktu. Mēs varam panākt datu slēpšanu, izmantojot abstrakto klasi. Abstraktās klases piemērs ir AbstarctMap klase, kas ir daļa no kolekciju sistēmas.

Ar programmas palīdzību sapratīsim abstraktās klases jēdzienu.

AbstractClassExample.java

 //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(); } } 

Izvade:

 Sum of a and b is: 70 

Betona klase

Šīs ir parastās Java klases. Atvasināta klase, kas nodrošina pamata implementācijas visām metodēm, kas vēl nav ieviestas bāzes klasē, ir pazīstama kā betons klasē. Citiem vārdiem sakot, tās ir parastās Java klases, kurās tiek realizētas visas abstraktās klases metodes. Mēs varam tieši izveidot betona klases objektu. Atcerieties, ka konkrētā klase un abstraktā klase nav viens un tas pats. Konkrēta klase var paplašināt savu vecāku klasi. To izmanto īpašām prasībām.

Ar programmas palīdzību sapratīsim konkrētās klases jēdzienu.

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

Izvade:

 Product of a and b is: 48 

Singltona klase

Klase, kurā vienlaikus ir tikai objekts, ir pazīstama kā a singleton klase . Tomēr, ja mēs mēģinām izveidot instanci otrreiz, šī jaunizveidotā instance norāda uz pirmo instanci. Ja mēs veicām kādas izmaiņas klasē, izmantojot jebkuru gadījumu, modifikācijas ietekmē arī atsevišķas instances mainīgo. To parasti izmanto, lai kontrolētu piekļuvi, vienlaikus strādājot ar datu bāzes savienojumu un ligzdas programmēšanu. Ja mēs vēlamies izveidot vienu klasi, rīkojieties šādi:

  • Izveidojiet privātu konstruktors .
  • Izveidojiet statisku metodi (izmantojot slinko inicializāciju), kas atgriež viengabala klases objektu.

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; } } 

Izvade:

 Javatpoint 

POJO klase

Java valodā POJO apzīmē Vienkāršs vecs Java objekts. Java klase, kas satur tikai privātos mainīgos, iestatītāju un ieguvēju, ir pazīstama kā POJO klasē. To izmanto, lai definētu Java objektus, kas palielina Java programmas atkārtotu lietojamību un lasāmību. Klase nodrošina iekapsulēšanu. To plaši izmanto Java, jo ir viegli saprast šīs klases. POJO klasei ir šādas īpašības:

  • Tas nepaplašina iepriekš definētās klases, piemēram, Arrays, HttpServlet utt.
  • Tajā nedrīkst būt iepriekš noteiktas anotācijas.
  • Tas nevar ieviest iepriekš definētu saskarnes .
  • Nav nepieciešams pievienot konstruktoru.
  • Visiem gadījumu mainīgajiem ir jābūt privātiem.
  • Saņēmējs/noteicējs metodes jābūt publiskai.

Izpratīsim POJO klases jēdzienu caur Java programmu.

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

Izvade:

 The price of an article is 89764.34 Rs. 

Iekšējā klase

Java ļauj mums definēt klasi klasē, un šādas klases ir pazīstamas kā ligzdotas klases . To izmanto, lai loģiski grupētu klases un sasniegtu iekapsulēšana . Ārējās klases dalībniekiem (tostarp privātajiem) var piekļūt iekšējā klase . Vispārīgā sintakse ligzdotās klases deklarēšanai ir šāda:

 class OuterClass { //code class NestedClass { //code } } 

Ligzdotās klases ir divu veidu:

1. Statiskā ligzdota klase: Klase, kas ir statisks un ligzdotas tiek saukta par statisku ligzdotu klasi. Tas mijiedarbojas ar savas ārējās klases instances locekli. Mēs varam izveidot statiskās ligzdotās klases objektu, izmantojot šādu sintaksi:

 OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 

2. Nestatiska ligzdota klase: Tiek sauktas nestatiskas ligzdotas klases iekšējās klases .

Vispārējā sintakse statiskās ligzdotās klases un iekšējās klases deklarēšanai ir šāda:

 class OuterClass { ... static class StaticNestedClass { ... } class InnerClass { ... } } 

Izpratīsim iekšējās klases jēdzienu, izmantojot Java programmu.

InnerClassExample.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.'); } } } 

Iekšējo nodarbību veidi

Java nodrošina, ka divu veidu iekšējās klases ir šādas:

Vietējā iekšējā klase

Tas ir iekšējās klases veids, kas ir definēts blokā. Šeit bloks apzīmē metodes pamattekstu (paziņojumu grupa, kas atrodas starp iekavām). Sakarā ar definēšanu bloka iekšienē to sauc arī par metodi lokālo iekšējo klasi. Šīs ir nestatiskās klases, jo tās var piekļūt bloka instances dalībniekiem. Mēs varam definēt lokālās iekšējās klases metodes pamattekstā. Šīm klasēm jābūt instantierētām blokā, kurā tās ir definētas.

Kad mēs kompilējam Java programmu (programmu, kas satur iekšējo klasi), kompilators ģenerē divus klases failus, proti Ārējā klase un ĀrējaisInner.class. Viens ārējai klasei un otrs iekšējai klasei, kurā ir atsauce uz ārējo klasi.

Izpratīsim vietējās iekšējās klases jēdzienu, izmantojot Java programmu.

OuterClass.java

bezgalīga cilpa
 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(); } } 

Izvade:

 Divisor = 4 Remainder = 0 We are inside the inner class Quotient = 5 

Anonīmā iekšējā klase

Tas ir iekšējās klases veids, kas ir tāds pats kā vietējās klases, taču vienīgā atšķirība ir tā, ka klasei nav klases nosaukuma un no klases tiek izveidots viens objekts. Tas padara kodu kodolīgāku. To izmanto, ja mēs vēlamies vienu reizi izmantot vietējo klasi. Mēs varam izveidot anonīmas klases divos veidos:

  • Izmantojot interfeisu
  • Pasludinot klasi konkrētu un abstraktu

Sintakse:

 // the class may an interface, abstract or concrete class DemoClass obj = new DemoClass() { //methods //data members public void demomethod() { //statements } }; 

Aplūkojot iepriekš minēto sintaksi, mēs redzam, ka tā ir tāda pati kā konstruktora izsaukšana, izņemot to, ka klasei ir definīcija, kas ietverta blokā.

AnonymousClassExample.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(); } } 

Izvade:

 Score is 321 

Java nodrošina arī cita veida Java klasi, kas ir pazīstama kā iesaiņojuma klase. Apspriedīsim to sīkāk.

Iesaiņojuma klase

Java valodā šis termins iesaiņojuma klase ir Java klašu kolekcija, kas objektivizē primitīvo Java tipu. Tas nozīmē, ka katram primitīvajam tipam ir atbilstoša iesaiņojuma klase. Iesaiņojuma klases tiek izmantotas, lai veiktu pārveidošanu no primitīvā tipa uz objektu un otrādi. Nākamajā attēlā ir parādīta iesaiņojuma klases hierarhija.

Klašu veidi Java valodā

Nākamajā tabulā parādīts primitīvais tips un atbilstošā iesaiņojuma klase.

Primitīvais tips Iesaiņojuma klase
Būla Būla
starpt Vesels skaitlis
char Raksturs
dubultā Dubults
peldēt Pludiņš
garš Gari
baits baits
īss Īss

Sapratīsim iesaiņojuma klasi, izmantojot Java programmu.

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

Izvade:

 Byte object byteobj: 0 Integer object intobj: 23 Character object charobj: m