logo

Типи класів в Java

У Java, клас це проект, з якого ми можемо створити окремий об'єкт. Java надає a ключове слово іменований клас, за допомогою якого ми можемо оголосити клас. Всередині класу ми визначаємо клас члени та функції. Неможливо створити Java програми без класу. Ми також можемо називати клас a визначений користувачем Типи занять

надрукувати візерунок зірки

У Java існує сім типів класів:

    Статичний клас Підсумковий клас Абстрактний клас Клас бетону Клас Singleton Клас POJO Внутрішній клас
Типи класів в Java

Статичний клас

в Java, static — це ключове слово, яке керує об’єктами в пам’яті. Статичний об’єкт належить класу, а не екземпляру класу.

Ми можемо створити клас статичний тоді і тільки якщо це вкладений клас. Ми також можемо сказати, що статичні класи відомі як вкладені класи. Це означає, що клас, оголошений як статичний в іншому класі, відомий як статичний клас. Вкладений статичний клас не потребує посилання на зовнішній клас. Метою статичного класу є надання структури успадкованого класу.

Властивості статичного класу:

  • Клас має лише статичні члени.
  • Він не може отримати доступ до члена (нестатичного) зовнішнього класу.
  • Ми не можемо створити об'єкт статичного класу.

Давайте розберемося з концепцією статичного класу через програму.

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

Вихід:

 Javatpoint 

У зовнішньому класі наведеної вище програми ми оголосили змінну вул як статичну, оскільки ми отримуємо доступ до цієї змінної зі статичного контексту. Якщо ми оголосимо цю змінну як нестатичну, компілятор покаже помилку, оскільки вкладений статичний клас не може отримати доступ до нестатичних членів зовнішнього класу.

Друге, на що слід звернути увагу у наведеній вище програмі, це те, що для створення об’єкта вкладеного класу нам не потрібно створювати екземпляр зовнішнього класу. Якщо вкладений клас не є статичним, нам потрібно створити екземпляр зовнішнього класу.

Підсумковий клас

Слово остаточний означає те, що не можна змінити. The остаточний клас у Java можна оголосити за допомогою остаточне ключове слово . Коли ми оголошуємо клас як остаточний, значення залишаються незмінними протягом всієї програми. Мета фінального класу - створити клас незмінний як клас String. Це лише спосіб зробити клас незмінним. Пам'ятайте, що випускний клас не може бути продовжений . Він також запобігає класу від підкласу .

Давайте зрозуміємо концепцію заключного класу через програму.

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

Вихід:

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

Абстрактний клас

Ан абстрактний клас це те, що оголошується за допомогою ключового слова анотація . Клас може містити або не містити абстрактні методи. Ми не можемо створити екземпляр абстрактного класу, але він може бути підкласом. Ці класи є неповними, тому для завершення абстрактного класу ми повинні розширити абстрактні класи до конкретного класу. Коли ми оголошуємо підклас як абстрактний, тоді необхідно забезпечити реалізацію абстрактних методів. Тому підклас також має бути оголошено абстрактним. Ми можемо досягти приховування даних за допомогою абстрактного класу. Прикладом абстрактного класу є AbstarctMap клас, який є частиною структури Collections.

Давайте розберемося з концепцією абстрактного класу через програму.

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

Вихід:

 Sum of a and b is: 70 

Клас бетону

Це звичайні класи Java. Похідний клас, який забезпечує базові реалізації для всіх методів, які ще не реалізовані в базовому класі, відомий як бетон клас. Іншими словами, це звичайні класи Java, в яких реалізовані всі методи абстрактного класу. Ми можемо безпосередньо створити об’єкт конкретного класу. Пам’ятайте, що конкретний клас і абстрактний клас – це не одне й те саме. Конкретний клас може розширювати свій батьківський клас. Він використовується для конкретних вимог.

Давайте розберемося з концепцією конкретного класу через програму.

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

Вихід:

 Product of a and b is: 48 

Клас Singleton

Клас, який одночасно має лише об’єкт, називається a одиночний клас . Проте, якщо ми намагаємося створити екземпляр вдруге, цей щойно створений екземпляр вказує на перший екземпляр. Якщо ми зробили будь-які зміни всередині класу через будь-який екземпляр, модифікація також впливає на змінну окремого екземпляра. Зазвичай він використовується для контролю доступу під час роботи з підключенням до бази даних і програмуванням сокетів. Якщо ми хочемо створити одиночний клас, виконайте наступне:

  • Створіть приватне конструктор .
  • Створіть статичний метод (за допомогою відкладеної ініціалізації), який повертає об’єкт класу singleton.

SingletonClassExample.java

math.random 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; } } 

Вихід:

 Javatpoint 

Клас POJO

У Java POJO означає Звичайний старий об’єкт Java. Клас Java, який містить лише приватні змінні, сетер і геттер, відомий як POJO клас. Він використовується для визначення об’єктів Java, які підвищують можливість повторного використання та читабельність програми Java. Клас забезпечує інкапсуляцію. Він широко використовується в Java, оскільки легко зрозуміти ці класи. Клас POJO має такі властивості:

  • Він не розширює попередньо визначені класи, такі як Arrays, HttpServlet тощо.
  • Він не може містити попередньо визначені анотації.
  • Він не може реалізувати заздалегідь визначені інтерфейси .
  • Додавати конструктор не потрібно.
  • Усі змінні екземпляра мають бути приватними.
  • Геттер/сетер методи має бути публічним.

Давайте розберемося з концепцією класу POJO за допомогою програми на Java.

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

Вихід:

 The price of an article is 89764.34 Rs. 

Внутрішній клас

Java дозволяє нам визначати клас у класі, і такі класи відомі як вкладені класи . Він використовується для логічного групування класів і досягнення інкапсуляція . Зовнішні члени класу (включаючи приватні) можуть бути доступні за допомогою внутрішній клас . Загальний синтаксис для оголошення вкладеного класу такий:

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

Вкладені класи бувають двох типів:

1. Статичний вкладений клас: Клас, який є статичний і вкладені називається статичним вкладеним класом. Він взаємодіє з членом екземпляра свого зовнішнього класу. Ми можемо створити об’єкт статичного вкладеного класу, використовуючи такий синтаксис:

як дізнатися розмір дисплея
 OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass(); 

2. Нестатичний вкладений клас: Нестатичні вкладені класи називаються внутрішні класи .

Загальний синтаксис для оголошення статичного вкладеного класу та внутрішнього класу такий:

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

Давайте розберемося з концепцією внутрішнього класу за допомогою програми на Java.

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

Типи внутрішніх класів

Java надає два типи внутрішніх класів:

Місцевий внутрішній клас

Це тип внутрішнього класу, який визначається всередині блоку. Тут блок позначає тіло методу (групу операторів, укладених між парою дужок). Через визначення всередині блоку його також називають локальним внутрішнім класом методу. Це нестатичні класи, оскільки вони можуть отримати доступ до членів екземпляра блоку. Ми можемо визначити локальні внутрішні класи в тілі методу. Ці класи повинні бути створені в блоці, в якому вони визначені.

Коли ми компілюємо програму Java (програму, яка містить внутрішній клас), компілятор генерує два файли класу, а саме Зовнішній.клас і OuterInner.class. Один для зовнішнього класу, а інший для внутрішнього класу, який містить посилання на зовнішній клас.

Давайте розберемося з концепцією локального внутрішнього класу за допомогою програми на Java.

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

Вихід:

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

Анонімний внутрішній клас

Це тип внутрішнього класу, такий самий, як і локальні класи, але єдина відмінність полягає в тому, що клас не має назви класу, і з класу створюється єдиний об’єкт. Це робить код більш лаконічним. Він використовується, якщо ми хочемо використати локальний клас один раз. Ми можемо створювати анонімні класи двома способами:

  • За допомогою інтерфейсу
  • Оголошуючи конкретний і абстрактний клас

Синтаксис:

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

Дивлячись на наведений вище синтаксис, ми бачимо, що він такий самий, як і виклик конструктора, за винятком того, що клас має визначення, яке міститься в блоці.

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

Вихід:

 Score is 321 

Java також надає інший тип класу Java, відомий як клас-огортка. Давайте обговоримо це детально.

Клас обгортки

У Java — термін клас обгортки представляє набір класів Java, які об'єктивують примітивний тип Java. Це означає, що для кожного примітивного типу існує відповідний клас-огортка. Класи-огортки використовуються для виконання перетворення з примітивного типу в об’єкт і навпаки. На наступному малюнку показано ієрархію класів оболонки.

Типи класів в Java

Наступна таблиця представляє примітивний тип і відповідний клас оболонки.

порівняння лева і тигра
Примітивний тип Клас обгортки
логічний Логічний
внутр Ціле число
char характер
подвійний Двомісний
плавати Поплавок
довго Довго
байт Байт
короткий Короткий

Давайте розберемося з класом оболонки за допомогою програми на Java.

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

Вихід:

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