types classes java
W tym samouczku omówimy różne typy klas w Javie, takie jak abstrakcyjne, konkretne, końcowe, wewnętrzne, POJO, statyczne i inne klasy specjalne z przykładami:
W naszym poprzednim samouczku omówiliśmy klasy i obiekty w Javie. Klasa w Javie to szablon lub plan. Można go również zdefiniować jako zbiór podobnych obiektów. Definiujemy obiekty typu class, a następnie komunikujemy się za pośrednictwem tych obiektów.
Każdy obiekt jest instancją klasy, która ma stan i zachowanie.
=> Odwiedź tutaj ekskluzywną serię samouczków szkoleniowych Java.
Czego się nauczysz:
Typy klas w Javie - wprowadzenie
Wszyscy wiemy, że klasa składa się z następujących elementów:
- Modyfikatory: Określ dostęp dla klasy.
- Nazwa klasy: Nazwa klasy.
- Słowa kluczowe: Słowa kluczowe sugerujące, czy klasa rozszerza lub implementuje klasę lub interfejs.
- Treść klasy ujęta w nawiasy klamrowe {}
W zależności od różnych użytych modyfikatorów, określonej treści klasy i użytych słów kluczowych, w Javie mamy różne typy klas.
- Klasa betonu: Normalna klasa, która ma konkretną implementację metod.
- Klasa POJO: Jest to „Zwykły stary obiekt Java” zawierający tylko prywatne zmienne składowe i metody ustawiające pobierające umożliwiające dostęp do tych zmiennych.
- Klasa abstrakcyjna: Ta klasa ma jedną lub więcej metod abstrakcyjnych.
- Klasa końcowa: Nie można dziedziczyć ostatniej klasy.
- Klasa statyczna: Klasa zawierająca tylko statyczne elementy członkowskie.
- Klasa wewnętrzna: Klasa wewnętrzna to klasa, która jest członkiem innej klasy.
W tym samouczku omówimy każdy z tych typów klas z przykładami.
jak stworzyć program komputerowy dla początkujących
Omówimy również inne typy klas, które w Javie są uważane za klasy specjalne.
- Klasa anonimowa: Klasa bez nazwy.
- Niezmienna klasa: Klasa, której obiektu nie można zmienić.
- Klasa singleton: Klasa, której można utworzyć pojedynczą instancję.
- Klasa obiektu: Podstawowa klasa wszystkich funkcji Java.
- Klasa opakowania: Każdy pierwotny typ danych w Javie ma klasę opakowania.
Najpierw jednak omówimy pokrótce, jak zaimportować klasę w języku Java wraz z klasą główną w języku Java, która zawiera główną metodę lub punkt początkowy w języku Java.
Importuj w Javie
W Javie, jeśli chcemy zawrzeć jakąkolwiek funkcję lub funkcjonalność w naszym programie, możemy użyć instrukcji „import”. Korzystając z instrukcji import, możemy zaimportować cały pakiet i wykorzystać jego funkcjonalność w naszym programie lub możemy również dołączyć pojedynczą klasę.
Poniżej podano składnię instrukcji importu.
import packageName/classname;
Jeśli chcemy zaimportować pakiet java.lang i wszystkie jego klasy, możemy napisać następującą instrukcję:
import java.lang.*;
Załóżmy, że chcemy włączyć funkcjonalność klasy Arrays do naszego programu, a następnie możemy napisać następującą instrukcję:
import java.util.Arrays;
Instrukcja import jest równoważna instrukcji include w języku C / C ++. Instrukcja import jest umieszczana na początku programu Java jako pierwsza instrukcja. W programie Java możemy mieć więcej niż jedną instrukcję.
Główna klasa w Javie
Wiemy już, że w Javie metoda main () jest punktem wyjścia do wykonania dowolnego programu i można ją umieścić w dowolnej klasie tej konkretnej aplikacji. Jeśli jednak mamy złożoną aplikację ze zbyt dużą liczbą plików i klas, wówczas wskazane jest posiadanie klasy Main i umieszczenie metody main () w tej klasie Main.
class Main{ public static void main(String[] args){ System.out.println(“Hello, World!”); } }
Należy zauważyć, że maszyna JVM nie tworzy obiektu klasy Main. Logika jest taka, że ponieważ main () jest metodą statyczną, można ją wywołać bez żadnego obiektu klasy.
Rodzaje klas w Javie
Przejdźmy teraz do typów klas w Javie. Wyjaśnimy kolejno każdą z tych klas, a następnie przykłady programowania.
# 1) Klasa betonu
Klasa konkretna to dowolna normalna klasa w programie Java. Ta klasa nie będzie miała żadnych metod abstrakcyjnych. Wszystkie metody w klasie concrete są w pełni zaimplementowane.
Konkretna klasa może dziedziczyć z innej klasy, nawet abstrakcyjnej lub implementować interfejs. Możemy utworzyć instancję konkretnej klasy i stworzyć jej obiekty.
Poniżej przedstawiono prosty przykład konkretnej klasy.
public class Main { // Concrete Class example static int total(int val1, int val2) { return val1 + val2; } public static void main(String args[]) { int sum = total(100, 108); System.out.println('Total of two integers: ' + sum); } }
Wynik
Powyższy program przedstawia konkretną klasę. Widzimy, że ta klasa ma pełną implementację. Nie ma nic niekompletnego lub niezrealizowanego.
# 2) Klasa POJO
POJO (Plain Old Java Object) to klasa zawierająca tylko prywatne zmienne składowe. Oprócz prywatnych zmiennych składowych zawiera tylko metody pobierające i ustawiające używane przez te zmienne składowe.
Klasa POJO nie ma swojego zachowania. Może jednak przesłonić niektóre metody, takie jak równa się lub interfejsy.
Właściwości klasy POJO:
- Klasa POJO musi mieć publiczną metodę pobierającą i ustawiającą.
- Wszystkie zmienne składowe lub instancji powinny być prywatne.
- Klasa POJO nie rozszerza ani nie implementuje klas lub interfejsów, które zostały wstępnie określone.
- Nie zawierają z góry określonych adnotacji.
- Nie ma konstruktora bez żadnych argumentów (konstruktor bez argumentów).
Poniżej podano program w języku Java, który demonstruje klasę POJO.
//declare a POJO class class POJO_Class { private int daysOfWeek=7; //private variable public int getdaysOfWeek() { //getter return daysOfWeek; } public void setdaysOfWeek(int dow) { //setter this.daysOfWeek = dow; } } public class Main { public static void main(String args[]){ POJO_Class pojoDemo = new POJO_Class(); //instance of POJO class System.out.println('Days of the week:' + pojoDemo.getdaysOfWeek()); } }
Wynik
Powyższa demonstracja klasy POJO pokazuje, że ma ona zmienną prywatną i metody ustawiające pobierające dla tej zmiennej. Aby uzyskać dostęp do tej zmiennej składowej, używamy metody pobierającej. Do aktualizacji wartości używana jest metoda ustawiająca.
# 3) Klasa abstrakcyjna
Klasa abstrakcyjna to klasa, która jest niekompletna lub której implementacja nie została zakończona. Nie można utworzyć wystąpienia klasy abstrakcyjnej. Należy go rozszerzyć o inne klasy i zaimplementować jego metody, aby utworzyć konkretną klasę.
Klasa abstrakcyjna jest zadeklarowana za pomocą słowa kluczowego „abstract”. Klasa abstrakcyjna może mieć metody statyczne i końcowe, a także konstruktory.
Pokażmy abstrakcyjną klasę w Javie.
interface multiply //interface multiply { int product(int num1, int num2); } // abstract class abstract class Product implements multiply { // this is an abstract method to calculate product of two numbers public abstract int product(int num1, int num2); } // Concrete class :this will implement the abstract method above class Main extends Product { public int product(int num1, int num2) { return num1*num2; } // main method public static void main(String args[]) { Main obj = new Main(); int prod = obj.product(100, 20); // print product System.out.println('Product of two numbers: ' + prod); } }
Wynik
W powyższym programie mamy mnożenie interfejsu. Tworzymy abstrakcyjną klasę Product, która implementuje interfejs multiply. Wewnątrz produktu mamy produkt metody, który nie jest zaimplementowany. Następnie mamy klasę Main, która dziedziczy klasę Product i implementuje metodę product. Później tę metodę wywołujemy w obiekcie klasy Main.
# 4) Klasa statyczna
Statyczny w Javie ogólnie oznacza obiekt, który należy do klasy, a nie do poszczególnych instancji. Zatem statyczny element członkowski lub metoda w Javie nie musi być dostępny za pomocą obiektu, ale bezpośrednio przy użyciu nazwy klasy.
Klasa statyczna w Javie może zawierać tylko statyczne elementy członkowskie. Nie możemy również utworzyć instancji klasy statycznej.
Poniższy program w języku Java demonstruje klasę statyczną.
class Static_Class { static int total; // static variable static void sum(int val1, int val2) { // static method System.out.print('Static method to calculate sum:' + ' '); total = val1 + val2; System.out.println(val1 + '+' + val2); // print the numbers } static class Nested_Class { // static class static { // static block System.out.println('static block inside a static nested class'); } public void displaySum() { sum(25, 75); // call static method // print the value in static variable total, it holds the sum of two numbers System.out.println('Sum of two numbers:' + total); } } } public class Main { public static void main(String args[]) { // declare static class object Static_Class.Nested_Class object = new Static_Class.Nested_Class(); object.displaySum(); // call displaySum method inside a static class } }
Wynik
Powyższa klasa demonstruje klasę statyczną. Tutaj mamy klasę statyczną, która jest członkiem innej konkretnej klasy. Wewnątrz klasy statycznej obliczamy sumę dwóch liczb i zapisujemy wynik w zmiennej statycznej, która jest członkiem klasy zewnętrznej.
# 5) Klasa końcowa
Ostatnia klasa to klasa, której nie można dziedziczyć ani tworzyć podklasy. Gdy klasa zostanie zadeklarowana jako ostateczna w Javie, jest rodzajem stałej i staje się niezmienna.
Dlatego, aby uczynić klasę niezmienną, musimy zadeklarować ją jako ostateczną.
//final class final class Base_Class { void Display() { System.out.println('Base_Class::Display()'); } } //class Derived_Class extends Base_Class { //Compile-time error - can't inherit final class class Derived_Class{ void Display() { System.out.println('Derived_Class::Display()'); } } public class Main { public static void main(String[] arg) { Base_Class base_obj = new Base_Class(); //create a final class object base_obj.Display(); Derived_Class deri_obj = new Derived_Class(); deri_obj.Display(); } }
Wynik
Powyższy program najpierw deklaruje Base_Class, który jest oznaczony jako „ostateczny”. Dlatego gdy próbujemy go rozszerzyć w Derived_Class, otrzymujemy błąd kompilatora. (Skomentowana linia). Ale możemy stworzyć jego obiekt i wywołać metodę Display.
# 6) Klasa zagnieżdżona / klasa wewnętrzna
Klasa zagnieżdżona, znana również jako klasa wewnętrzna w języku Java, służy do ulepszania hermetyzacji. Klasa zagnieżdżona / klasa wewnętrzna to klasa zamknięta w innej klasie.
Podobnie jak klasa ma zmienne i metody jako elementy składowe, może również mieć klasę wewnętrzną jako swoją składową.
sql server pytania i odpowiedzi do rozmów kwalifikacyjnych przez 5 lat doświadczenia
Klasa zagnieżdżona ma następującą strukturę:
class OuterClass{ class NestedClass{ //nested class code… } //outerclass code… }
Klasy wewnętrzne mają następujące podtypy:
- Zagnieżdżona klasa wewnętrzna
- Metoda Lokalna klasa wewnętrzna
- Anonimowa klasa wewnętrzna
- Statyczna klasa zagnieżdżona
# 1) Zagnieżdżona klasa wewnętrzna
Zagnieżdżona klasa wewnętrzna ma dostęp do prywatnych zmiennych składowych klasy zewnętrznej. Możemy również zastosować modyfikatory dostępu do zagnieżdżonej klasy wewnętrznej.
# 2) Metoda Lokalna klasa wewnętrzna
To jest klasa wewnętrzna zadeklarowana wewnątrz metody klasy zewnętrznej.
# 3) Anonimowa klasa wewnętrzna
Anonimowa klasa wewnętrzna jest klasą wewnętrzną zadeklarowaną wewnątrz klasy zewnętrznej i nie ma żadnej nazwy.
# 4) Statyczna klasa zagnieżdżona
Sposób, w jaki klasa ma statyczną zmienną składową, może również mieć klasę statyczną jako jej składową.
Poniżej przedstawiono przykład klasy zagnieżdżonej / wewnętrznej:
public class Main { //nested/inner class enclosed inside Main class. class InnerClass { public void inner_print() { System.out.println('Inner class'); } } public static void main(String[] args) { System.out.println('Main in Outer class'); } }
Wynik
Inne klasy specjalne w Javie
Niezmienna klasa w Javie
Niezmienna klasa generuje niezmienne obiekty. Niezmienny obiekt to obiekt, którego zawartości nie można zmienić po utworzeniu obiektu. Tak więc niezmienna klasa to ta, której obiekt nie może zostać zmieniony po utworzeniu.
Wszystkie klasy opakowania w Javie dla typów pierwotnych (Integer, Boolean, Byte itp.) Są niezmienne. Klasa String jest również niezmienna.
Możemy również mieć niezmienne klasy zdefiniowane przez użytkownika w Javie.
Aby klasa była niezmienna, musi być zadeklarowana jako ostateczna wraz ze wszystkimi składowymi danych. Ponadto klasa powinna mieć sparametryzowany konstruktor. Wszystkie zmienne składowe powinny mieć metodę pobierającą, ale nie metodę ustawiającą.
Aby klasa była niezmienna, muszą zostać spełnione wszystkie powyższe wymagania.
Zaimplementujmy program w języku Java, aby zademonstrować niezmienną klasę.
final class City { final String city_name; final int cityId; //parameterised constructor public City(String name, int id) { this.city_name = name; this.cityId = id; } //getters for member variables public String getcityName() { return city_name; } public int getcityId() { return cityId; } } // Driver class class Main { public static void main(String args[]) { City city = new City('New York', 1001); System.out.print('City Id:' + city.getcityId() + ' '); System.out.println('City Name:' + city.getcityName()); //city.cityId = 1002; //cannot assign a value to final variable regNo } }
Wynik
W powyższym programie zadeklarowaliśmy klasę City. To jest ostatnia klasa iw tej klasie zadeklarowaliśmy dwie zmienne składowe i sparametryzowany konstruktor. Zadeklarowaliśmy również metody pobierające dla tych dwóch zmiennych składowych. Tak więc klasa City spełnia wszystkie wymagania niezmiennej klasy.
Zwróć uwagę na skomentowaną linię kodu w metodzie main. Jeśli odkomentujemy tę linię, otrzymamy błąd kompilatora (podany w komentarzu tutaj), gdy próbujemy ustawić wartość zmiennej składowej.
Klasa singletona w Javie
Klasa pojedyncza zezwala na pojedynczą instancję naraz. W Javie singleton to wzorzec projektowy. Ten wzorzec projektowy zapewnia, że w danym momencie istnieje tylko jedno wystąpienie klasy. Zatem każda klasa zdefiniowana jako singleton ma pojedynczy punkt dostępu i jest globalna.
Zauważ, że zakończenie cyklu życia aplikacji nie niszczy pojedynczej klasy, tak jak zwykłe klasy. Gdy klasa jest zadeklarowana jako singleton, nie tworzymy nowej instancji za każdym razem, gdy pojawia się nowe żądanie obiektu.
Ta sama instancja jest używana wielokrotnie. W ten sposób możemy zaoszczędzić miejsce w pamięci głównie w przypadku aplikacji wielowątkowych i bazodanowych.
Możemy użyć klasy singleton do działań takich jak buforowanie, logowanie itp.
Poniższy program demonstruje klasę Singleton.
class Singleton { // static variable of type Singleton private static Singleton single_instance = null; // String variable public String str; // private constructor : restricted to this class private Singleton() { str = 'Singleton class::private constructor'; } // create instance of Singleton class using getInstance static method public static Singleton getInstance() { if (single_instance == null) single_instance = new Singleton(); return single_instance; } } class Main { public static void main(String args[]) { // instantiate Singleton class with obj1 Singleton obj1 = Singleton.getInstance(); // instantiate Singleton class with obj2 Singleton obj2 = Singleton.getInstance(); System.out.println('obj1(str):' + obj1.str); System.out.println('obj2(str):' + obj2.str); // change variable of instance obj1 obj1.str = (obj1.str).toUpperCase(); System.out.println('
After changing obj1(str):'); System.out.println('obj1(str):' + obj1.str); System.out.println('obj2(str):' + obj2.str); } }
Wynik
W powyższym programie zdefiniowaliśmy klasę singleton z prywatnym konstruktorem. Zdefiniowaliśmy zmienną składową typu String. W metodzie main deklarujemy dwa wystąpienia klasy singleton. Następnie zmieniamy zmienną String za pomocą jednej z instancji.
Kiedy drukujemy wartość String dla obu instancji, zauważamy, że wartość zmiennej String uległa zmianie dla obu instancji. Stąd, mimo że zmieniliśmy wartość tylko dla jednej instancji, ze względu na klasę singleton, zmiany są odzwierciedlane we wszystkich instancjach.
Zawsze zwracamy tę samą instancję, nawet jeśli wydaje się, że tworzymy różne instancje.
Klasa obiektu w Javie
Klasa Object jest klasą nadrzędną lub pierwszą klasą w języku Java. Znajduje się na najwyższym poziomie hierarchii Java.
Ponieważ wszystkie klasy mają klasę Object jako nadklasę, wszystkie obiekty Java, w tym Arrays, implementują metody klasy Object. Klasa obiektu znajduje się w pakiecie „java.lang”.
Deklaracja dla java.lang.Object to:
klasa publiczna Object
W poniższej tabeli opisano konstruktory i metody klasy Object.
Konstruktor / Metoda | Opis |
---|---|
Klasa getClass () | Zwraca klasę wykonawczą obiektu. |
Konstruktor klasy obiektów | |
Obiekt() | Konstruktor klasy obiektów |
Metody klasy obiektów | |
chroniony obiekt klon () | Zwraca klon lub kopię obiektu. |
boolean equals (Object obj) | Sprawdza, czy dany obiekt obj jest równy temu obiektowi. |
protected void finalize () | Wywoływana przez moduł odśmiecania pamięci, gdy wszystkie odwołania do obiektu zostaną zniszczone. |
int hashCode () | Zwraca kod skrótu dla obiektu. |
void notification () | Służy do wybudzania pojedynczego oczekującego wątku. |
void notifyAll () | Budzi wszystkie oczekujące wątki. |
Ciąg toString () | Zwraca String odpowiednik obiektu. |
nieważne czekaj () | Sprawia, że wątek czeka, aż zostanie obudzony metodą powiadamiania przez inny wątek. |
nieważne czekanie (długi czas oczekiwania) | Sprawia, że wątek czeka, aż upłynie czas określony przez „timeout” lub jest budzony przez metody notify lub notifyAll. |
void wait (long timeout, int nanos) | Powoduje, że wątek czeka, aż upłynie określony czas lub dopóki inny wątek nie zostanie wywołany przez notification () lub notifyAll (). |
Zaimplementujmy przykładowy program w języku Java, który zademonstruje niektóre metody klasy Object.
public class Main { public static void main(String[] args) { Main t = new Main(); System.out.println('Main class Object HashCode:' + t.hashCode()); t = null; // call garbage collector System.gc(); System.out.println('Main class:End'); } @Override protected void finalize() { System.out.println('Main Class::finalize method called.'); } }
Wynik
Tutaj mamy klasę główną. W metodzie main () tworzymy obiekt klasy Main. Ten obiekt jest potomkiem klasy Object i obsługuje wszystkie metody klasy Object. Dlatego używamy tego obiektu i wywołujemy kilka metod klasy Object, takich jak hashCode (), System.GC (), finalize () itp.
Klasa opakowania w Javie
Java udostępnia funkcję zwaną klasą opakowania, która ma mechanizm konwertujący pierwotne typy danych na obiektowe i odwrotnie. Klasy opakowujące to klasy, które reprezentują typy pierwotne, takie jak int, char itp., Jako obiekty.
Dlatego każdy pierwotny typ danych w Javie ma odpowiadającą mu klasę opakowania.
W poniższej tabeli przedstawiono pierwotne typy danych i odpowiadające im klasy opakowania.
fałszywy generator konta Gmail i hasło
Typ prymitywny | Typ opakowania |
---|---|
pływak | Pływak |
boolean | Boolean |
zwęglać | Postać |
bajt | Bajt |
krótki | Krótki |
int | Liczba całkowita |
długo | Długo |
podwójnie | Podwójnie |
Aby przekształcić prymitywy w obiekty i obiekty w prymitywy, mamy techniki zwane odpowiednio „autoboxing” i „boxing”. Ase Java to język programowania zorientowany obiektowo, zawsze mamy do czynienia z obiektami, a także mamy wiele funkcji, takich jak Kolekcje, Serializacja itp., które również wymagają obiektów i typów pierwotnych.
Dlatego konieczne jest, abyśmy zawsze potrzebowali obiektów i typów prymitywnych w Javie, a zatem potrzebujemy tych technik autoboksowania i rozpakowywania.
Autoboxing
Autoboxing to technika automatycznego konwertowania pierwotnego typu danych na obiekt odpowiadającej mu klasy opakowania. Na przykład , konwersja int na klasę Integer, char na klasę Character itp. są przypadkami autoboxingu.
Uwaga: Klasy opakowujące używają metody valueOf () do przekształcania elementów pierwotnych w obiekty, które są amortyzowane od wersji Java 5.
Rozpakowanie
Odwrotna konwersja obiektów klas opakowujących na odpowiadające im pierwotne typy danych nazywa się „rozpakowywaniem”.
Uwaga: Od wersji Java 5 metoda intValue () konwertująca obiekt opakowania na typ pierwotny jest przestarzała.
Poniżej podano przykład pakowania / rozpakowywania.
public class Main { public static void main(String args[]){ //Convert int to Integer : boxing int num=20; Integer int_class= Integer.valueOf(num);//explicit conversion from int to Integer Integer inum=num;//autoboxing System.out.println('int => Integer: ' + num+' => '+inum); //Convert Integer to int: unboxing Integer val=new Integer (3); int ival=val.intValue();//explicit conversion from Integer to int int jval=val;//unboxing System.out.println('Integer => int:' + val+' => '+jval); } }
Wynik
Powyższy program pokazuje autoboxing i unboxing na wartości int. Najpierw konwertujemy int na obiekt Integer, a następnie obiekt Integer jest konwertowany na typ danych int.
Zaimplementujmy program, który demonstruje klasy opakowania obecne w Javie.
public class Main { public static void main(String args[]) { byte bbyte=10; short sshort=20; int iint=300; long llong=400; float ffloat=3.14F; double ddouble=77.2D; char cchar='A'; boolean bboolean=true; //Convert primitives into objects => Autoboxing Byte byteobj=bbyte; Short shortobj=sshort; Integer intobj=iint; Long longobj=llong; Float floatobj=ffloat; Double doubleobj=ddouble; Character charobj=cchar; Boolean boolobj=bboolean; //Print converted objects System.out.println('Primitives converted to Objects:'); System.out.println('Byte object: '+byteobj); System.out.println('Short object: '+shortobj); System.out.println('Integer object: '+intobj); System.out.println('Long object: '+longobj); System.out.println('Float object: '+floatobj); System.out.println('Double object: '+doubleobj); System.out.println('Character object: '+charobj); System.out.println('Boolean object: '+boolobj); //Convert Objects to Primitives => Unboxing byte bytevalue=byteobj; short shortvalue=shortobj; int intvalue=intobj; long longvalue=longobj; float floatvalue=floatobj; double doublevalue=doubleobj; char charvalue=charobj; boolean boolvalue=boolobj; //Print primitives System.out.println('Converting Objects to Primitives'); System.out.println('byte value: '+bytevalue); System.out.println('short value: '+shortvalue); System.out.println('int value: '+intvalue); System.out.println('long value: '+longvalue); System.out.println('float value: '+floatvalue); System.out.println('double value: '+doublevalue); System.out.println('char value: '+charvalue); System.out.println('boolean value: '+boolvalue); } }
Wynik
Powyższe dane wyjściowe programu pokazują konwersję z typów pierwotnych do obiektów opakowujących (Autoboxing) i odwracają konwersję z obiektów opakowujących na typy pierwotne (rozpakowywanie).
Często Zadawane Pytania
Pytanie 1) Jaki jest typ danych klasy w Javie?
Odpowiedź: Java udostępnia klasę o nazwie „Klasa”, która zawiera informacje o wszystkich klasach, obiektach i interfejsach uruchomionej aplikacji. Klasa Class reprezentuje również pierwotne typy danych i typ void.
Klasa Class jest częścią pakietu java.lang.
Pytanie 2) Jaka jest klasa normalna w Javie?
Odpowiedź: Normalna klasa w Javie jest klasą niestatyczną. Możemy tworzyć obiekty normalnej klasy używając słowa kluczowego new. Ponadto każda normalna klasa może mieć inną klasę jako swoją składową. W tym przypadku klasa składowa nazywana jest klasą zagnieżdżoną lub wewnętrzną, a klasa otaczająca nazywana jest klasą zewnętrzną.
Pytanie 3) Czy łańcuch jest klasą opakowującą w Javie?
Odpowiedź: Nie, String nie jest klasą opakowującą w Javie. Aby klasa była klasą opakowującą, potrzebujemy odpowiedniego typu pierwotnego. Na przykład, dla klasy opakowania typu Integer mamy typ pierwotny int. W przypadku klasy String nie mamy odpowiedniego pierwotnego typu danych.
P # 4) Jakie są zalety klasy Wrapper?
Odpowiedź: Klasy opakowujące służą do konwersji pierwotnych typów danych na obiekty. Innymi słowy, klasy opakowujące zawijają typy pierwotne w obiekty. Klasy opakowujące są używane, gdy niektóre funkcje języka Java, takie jak Kolekcje, oczekują tylko obiektów, a nie pierwotnych typów danych.
P # 5) Dlaczego klasa Singleton jest używana w Javie?
Odpowiedź: Zawsze, gdy chcemy mieć globalny punkt dostępu do konkretnego obiektu, wybieramy wzorzec singleton, który pozwala nam zaprojektować klasę singleton, w której będzie tylko jedna instancja. Klasy singleton są używane w pamięci podręcznej, puli wątków, aplikacjach bazodanowych, logowaniu itp.
Wniosek
W tym samouczku omówiliśmy różne typy klas używane w Javie. Widzieliśmy typy klas konkretne, abstrakcyjne, końcowe, statyczne, zagnieżdżone, POJO itp. Oprócz tego omówiliśmy również klasy Singleton, klasy niezmienne, a także omówiliśmy przykłady ich implementacji.
Omówiliśmy również klasy opakowujące i klasy obiektów w Javie. Klasy opakowujące to klasy, które zawijają prymitywne typy danych języka Java w obiekty. Klasa obiektów w Javie jest nadklasą wszystkich innych klas. Jest to najwyższa klasa w hierarchii Java.
Po omówieniu klas i obiektów w Javie oraz typów klas, w następnym samouczku przejdziemy do szczegółowego omówienia konstruktorów w Javie.
=> Sprawdź idealny przewodnik szkoleniowy języka Java tutaj.
rekomendowane lektury
- Interfejs Java i samouczek klasy abstrakcyjnej z przykładami
- Podstawy języka Java: składnia języka Java, klasa języka Java i podstawowe pojęcia dotyczące języka Java
- Co to jest statyczne słowo kluczowe w Javie?
- Klasa Java Integer i Java BigInteger z przykładami
- Samouczek klasy skanera Java z przykładami
- Obiekt klasy Java Vs - jak używać klasy i obiektu w języku Java
- Java Array Class Tutorial - klasa java.util.Arrays z przykładami
- Co to jest wektor Java | Samouczek klasy wektorowej Java z przykładami