types classes java
Αυτό το σεμινάριο θα συζητήσει διάφορους τύπους μαθημάτων στην Java, όπως Abstract, Concrete, Final, Inner, POJO, Static & άλλα ειδικά μαθήματα με παραδείγματα:
Στο προηγούμενο σεμινάριό μας, συζητήσαμε μαθήματα και αντικείμενα στην Java. Ένα μάθημα στην Java είναι ένα πρότυπο ή σχεδιάγραμμα. Μπορεί επίσης να οριστεί ως μια συλλογή από παρόμοια αντικείμενα. Ορίζουμε αντικείμενα κατηγορίας τύπου και μετά επικοινωνούμε μέσω αυτών των αντικειμένων.
Κάθε αντικείμενο είναι μια παρουσία μιας κλάσης που έχει κατάσταση και συμπεριφορά.
=> Επισκεφτείτε εδώ για την αποκλειστική σειρά εκπαιδευτικών εκμάθησης Java.
Τι θα μάθετε:
Τύποι τάξεων σε Java - Εισαγωγή
Όλοι γνωρίζουμε ότι η τάξη έχει τα ακόλουθα στοιχεία:
- Τροποποιητές: Καθορίστε την πρόσβαση για την τάξη.
- Ονομα τάξης: Όνομα της τάξης.
- Λέξεις-κλειδιά: Λέξεις-κλειδιά που υποδηλώνουν εάν μια τάξη επεκτείνεται ή εφαρμόζει κλάση ή διεπαφή.
- Το σώμα Σώμα εγκλεισμένο σε αγκύλες {}
Ανάλογα με τους διαφορετικούς τροποποιητές που χρησιμοποιούνται, το σώμα κατηγορίας που καθορίζεται και τις λέξεις-κλειδιά που χρησιμοποιούνται, έχουμε διάφορους τύπους τάξεων στην Java.
πώς να υποβάλετε μια αναφορά σφάλματος
- Κατηγορία σκυροδέματος: Μια κανονική τάξη που έχει τη συγκεκριμένη εφαρμογή μεθόδων.
- Κατηγορία POJO: Αυτό είναι το 'Απλό αντικείμενο Old Java' που περιέχει μόνο ιδιωτικές μεταβλητές μελών και μεθόδους getter setter για πρόσβαση σε αυτές τις μεταβλητές.
- Περίληψη κλάσης: Αυτή η τάξη έχει μία ή περισσότερες αφηρημένες μεθόδους.
- Τελική τάξη: Η τελική τάξη δεν μπορεί να κληρονομηθεί.
- Στατική τάξη: Μια τάξη που περιέχει μόνο στατικά μέλη.
- Εσωτερική τάξη: Μια εσωτερική τάξη είναι μια τάξη που είναι μέλος μιας άλλης τάξης.
Σε αυτό το σεμινάριο, θα συζητήσουμε καθέναν από αυτούς τους τύπους τάξεων με παραδείγματα.
Θα συζητήσουμε επίσης ορισμένους άλλους τύπους τάξεων που θεωρούνται ειδικές τάξεις στην Java.
- Ανώνυμη τάξη: Μια τάξη χωρίς κανένα όνομα.
- Αμετάβλητη τάξη: Μια τάξη της οποίας το αντικείμενο δεν μπορεί να αλλάξει.
- Τάξη Singleton: Μια τάξη της οποίας μπορεί να δημιουργηθεί μία μόνο παρουσία.
- Κατηγορία αντικειμένων: Η βασική κατηγορία όλων των δυνατοτήτων Java.
- Κατηγορία περιτυλίγματος: Κάθε πρωτόγονος τύπος δεδομένων στην Java έχει τάξη περιτυλίγματος.
Αλλά πρώτα, ας συζητήσουμε εν συντομία πώς να εισαγάγετε μια τάξη στην Java μαζί με την κύρια τάξη στην Java που περιέχει την κύρια μέθοδο ή το σημείο εκκίνησης στην Java.
Εισαγωγή στην Java
Στην Java, εάν θέλουμε να συμπεριλάβουμε οποιαδήποτε δυνατότητα ή λειτουργικότητα στο πρόγραμμά μας, τότε μπορούμε να χρησιμοποιήσουμε τη δήλωση «εισαγωγή». Χρησιμοποιώντας δήλωση εισαγωγής μπορούμε να εισαγάγουμε ένα ολόκληρο πακέτο και να χρησιμοποιήσουμε τη λειτουργικότητά του στο πρόγραμμά μας ή μπορούμε επίσης να συμπεριλάβουμε μία κλάση.
Παρακάτω δίνεται η σύνταξη για τη δήλωση εισαγωγής.
import packageName/classname;
Αν θέλουμε να εισαγάγουμε πακέτο java.lang και όλες τις τάξεις του, τότε μπορούμε να γράψουμε την ακόλουθη δήλωση:
import java.lang.*;
Ας υποθέσουμε ότι θέλουμε να συμπεριλάβουμε τη λειτουργικότητα της κατηγορίας Arrays στο πρόγραμμά μας και, στη συνέχεια, μπορούμε να γράψουμε την ακόλουθη δήλωση:
import java.util.Arrays;
Η δήλωση εισαγωγής είναι ισοδύναμη με τη δήλωση συμπερίληψης C / C ++. Η δήλωση εισαγωγής τοποθετείται στην αρχή του προγράμματος Java ως η πρώτη δήλωση. Μπορούμε να έχουμε περισσότερες από μία δηλώσεις στο πρόγραμμα Java.
Κύρια τάξη στην Ιάβα
Γνωρίζουμε ήδη ότι στην Java, η κύρια μέθοδος () είναι το σημείο εκκίνησης οποιασδήποτε εκτέλεσης προγράμματος και μπορεί να τοποθετηθεί σε οποιαδήποτε κατηγορία της συγκεκριμένης εφαρμογής. Ωστόσο, εάν έχουμε μια πολύπλοκη εφαρμογή με πάρα πολλά αρχεία και τάξεις, συνιστάται να έχουμε μια κύρια τάξη και να τοποθετήσουμε την κύρια () μέθοδο σε αυτήν την κύρια τάξη.
class Main{ public static void main(String() args){ System.out.println(“Hello, World!”); } }
Σημειώστε ότι το JVM δεν δημιουργεί αντικείμενο της κλάσης Main. Η λογική πίσω από αυτό είναι ότι ως main () είναι μια στατική μέθοδος, μπορεί να κληθεί χωρίς κανένα αντικείμενο κλάσης.
Τύποι μαθημάτων στην Ιάβα
Τώρα ας προχωρήσουμε στους τύπους των τάξεων στην Java. Θα εξηγήσουμε καθένα από αυτά τα μαθήματα ένα προς ένα ακολουθούμενο από τα παραδείγματα προγραμματισμού.
# 1) Κατηγορία σκυροδέματος
Μια συγκεκριμένη κλάση είναι οποιαδήποτε κανονική τάξη σε ένα πρόγραμμα Java. Αυτή η τάξη δεν θα έχει αφηρημένες μεθόδους. Όλες οι μέθοδοι στην κατηγορία σκυροδέματος εφαρμόζονται πλήρως.
Μια συγκεκριμένη κλάση μπορεί να κληρονομήσει από μια άλλη τάξη, ακόμη και μια αφηρημένη τάξη ή να εφαρμόσει μια διεπαφή. Μπορούμε να δημιουργήσουμε μια συγκεκριμένη κατηγορία και να δημιουργήσουμε τα αντικείμενά της.
Ένα απλό παράδειγμα κατηγορίας σκυροδέματος φαίνεται παρακάτω.
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); } }
Παραγωγή
Το παραπάνω πρόγραμμα δείχνει συγκεκριμένη κατηγορία. Βλέπουμε ότι αυτή η τάξη έχει πλήρη εφαρμογή. Δεν υπάρχει τίποτα που να μένει ατελές ή μη.
# 2) Τάξη POJO
Ένα POJO (Plain Old Java Object) είναι μια κλάση που περιέχει μόνο ιδιωτικές μεταβλητές μελών. Εκτός από τις μεταβλητές ιδιωτικών μελών περιέχει μόνο μεθόδους λήψης και ρύθμισης που χρησιμοποιούνται από αυτές τις μεταβλητές μελών.
Μια τάξη POJO δεν έχει τη συμπεριφορά της. Ωστόσο, μπορεί να παρακάμψει κάποιες μεθόδους όπως ίσες ή διεπαφές.
Ιδιότητες της τάξης POJO:
- Η τάξη POJO πρέπει να έχει μια δημόσια μέθοδο λήψης και ρύθμισης.
- Όλα τα μέλη ή οι μεταβλητές παρουσίας πρέπει να είναι ιδιωτικές.
- Η κλάση POJO δεν επεκτείνει ή εφαρμόζει κλάσεις ή διεπαφές που είναι προκαθορισμένες.
- Δεν περιέχουν σχολιασμούς που είναι προκαθορισμένοι.
- Δεν έχει κατασκευαστή χωρίς ορίσματα (κατασκευαστής χωρίς επιχειρήματα).
Δίνεται παρακάτω ένα πρόγραμμα Java που δείχνει την τάξη 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()); } }
Παραγωγή
Η παραπάνω επίδειξη της κλάσης POJO δείχνει ότι έχει μια ιδιωτική μεταβλητή και τις μεθόδους getter setter για αυτήν τη μεταβλητή. Για πρόσβαση σε αυτήν τη μεταβλητή μέλους, χρησιμοποιούμε τη μέθοδο λήψης. Η μέθοδος ρύθμισης χρησιμοποιείται για την ενημέρωση της τιμής.
# 3) Περίληψη κλάσης
Μια αφηρημένη κλάση είναι μια κλάση που δεν είναι πλήρης ή της οποίας η υλοποίηση δεν έχει ολοκληρωθεί. Μια αφηρημένη τάξη δεν μπορεί να τεκμηριωθεί. Πρέπει να επεκταθεί από τις άλλες τάξεις και να εφαρμόσει τις μεθόδους της για να σχηματίσει μια συγκεκριμένη τάξη.
Μια αφηρημένη τάξη δηλώνεται χρησιμοποιώντας τη λέξη-κλειδί «περίληψη». Μια αφηρημένη τάξη μπορεί να έχει στατικές και τελικές μεθόδους, καθώς και κατασκευαστές.
Ας δείξουμε μια αφηρημένη τάξη στην Java.
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); } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε μια διεπαφή πολλαπλασιασμού. Δημιουργούμε ένα προϊόν αφηρημένης κλάσης που εφαρμόζει μια διεπαφή πολλαπλών λειτουργιών. Μέσα στο προϊόν, έχουμε ένα προϊόν μεθόδου που δεν εφαρμόζεται. Έπειτα έχουμε μια κύρια κλάση που κληρονομεί την κατηγορία προϊόντων και εφαρμόζει τη μέθοδο προϊόντος. Αργότερα, καλούμε αυτήν τη μέθοδο στο αντικείμενο της κύριας κλάσης.
# 4) Στατική τάξη
Ένα στατικό στη Java γενικά σημαίνει το αντικείμενο που ανήκει σε μια κλάση και όχι σε μεμονωμένες παρουσίες. Επομένως, ένα στατικό μέλος ή μια μέθοδος στην Java δεν χρειάζεται να έχει πρόσβαση σε ένα αντικείμενο, αλλά απευθείας χρησιμοποιώντας ένα όνομα κλάσης.
Μια στατική τάξη στην Java μπορεί να περιέχει μόνο στατικά μέλη. Επίσης, δεν μπορούμε να δημιουργήσουμε μια στατική τάξη.
Το ακόλουθο πρόγραμμα Java δείχνει μια στατική τάξη.
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 } }
Παραγωγή
Η παραπάνω τάξη δείχνει τη στατική τάξη. Εδώ έχουμε μια στατική τάξη που είναι μέλος μιας άλλης συγκεκριμένης τάξης. Μέσα στη στατική τάξη, υπολογίζουμε το άθροισμα των δύο αριθμών και αποθηκεύουμε το αποτέλεσμα σε μια στατική μεταβλητή που είναι μέλος της εξωτερικής τάξης.
# 5) Τελική τάξη
Μια τελική τάξη είναι μια τάξη που δεν μπορεί να κληρονομηθεί ή να υποκατηγορηθεί. Μόλις ένα μάθημα κηρυχθεί οριστικό στην Java, είναι ένα είδος σταθερού και γίνεται αμετάβλητο.
Ως εκ τούτου, για να κάνουμε μια τάξη αμετάβλητη, πρέπει να την κηρύξουμε ως τελική.
//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(); } }
Παραγωγή
Το παραπάνω πρόγραμμα δηλώνει πρώτα ένα Base_Class που φέρει την ένδειξη 'final'. Επομένως, όταν προσπαθούμε να το επεκτείνουμε στο Derived_Class, λαμβάνουμε ένα σφάλμα μεταγλωττιστή. (Η σχολιασμένη γραμμή). Αλλά μπορούμε να δημιουργήσουμε το αντικείμενο και να καλέσουμε τη μέθοδο εμφάνισης.
# 6) Ένθετη τάξη / Εσωτερική τάξη
Η ένθετη τάξη, γνωστή και ως εσωτερική κλάση στην Java χρησιμοποιείται για την ενίσχυση της ενθυλάκωσης. Μια ένθετη τάξη / Εσωτερική τάξη είναι μια τάξη που περικλείεται μέσα σε μια άλλη τάξη.
Ακριβώς όπως μια τάξη έχει μεταβλητές και μεθόδους ως μέλη της, μπορεί επίσης να έχει μια εσωτερική τάξη ως μέλος της.
Μια ένθετη τάξη έχει την ακόλουθη δομή:
class OuterClass{ class NestedClass{ //nested class code… } //outerclass code… }
Οι εσωτερικές τάξεις έχουν τους ακόλουθους υποτύπους:
c ++ βασικές ερωτήσεις συνέντευξης
- Ένθετη εσωτερική τάξη
- Μέθοδος Τοπική εσωτερική τάξη
- Ανώνυμη εσωτερική τάξη
- Στατική ένθετη τάξη
# 1) Ένθετη εσωτερική τάξη
Μια ένθετη εσωτερική κλάση έχει πρόσβαση σε μεταβλητές ιδιωτικών μελών μιας εξωτερικής κλάσης. Μπορούμε επίσης να εφαρμόσουμε τροποποιητές πρόσβασης στην ένθετη εσωτερική κλάση.
# 2) Μέθοδος Τοπική εσωτερική τάξη
Αυτή είναι η εσωτερική κλάση που δηλώνεται μέσα σε μια μέθοδο εξωτερικής τάξης.
# 3) Ανώνυμη εσωτερική τάξη
Η ανώνυμη εσωτερική κλάση είναι μια εσωτερική τάξη που δηλώνεται μέσα σε μια εξωτερική τάξη και είναι χωρίς κανένα όνομα.
# 4) Στατική ένθετη τάξη
Ο τρόπος με τον οποίο μια κλάση έχει μια στατική μεταβλητή μέλους, μπορεί επίσης να έχει μια στατική τάξη ως μέλος της.
Παρακάτω παρατίθεται ένα παράδειγμα τάξης Nested / Inner:
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'); } }
Παραγωγή
Άλλες ειδικές τάξεις στην Ιάβα
Αμετάβλητη τάξη στην Ιάβα
Μια αμετάβλητη τάξη δημιουργεί αμετάβλητα αντικείμενα. Ένα αμετάβλητο αντικείμενο είναι ένα αντικείμενο του οποίου το περιεχόμενο δεν μπορεί να αλλάξει μόλις δημιουργηθεί το αντικείμενο. Έτσι, μια αμετάβλητη τάξη είναι εκείνη της οποίας το αντικείμενο δεν μπορεί να αλλάξει μόλις δημιουργηθεί.
Όλες οι τάξεις περιτυλίγματος στην Java για πρωτόγονους τύπους (Integer, Boolean, Byte κ.λπ.) είναι αμετάβλητες. Η κατηγορία String είναι επίσης αμετάβλητη.
Μπορούμε επίσης να έχουμε αμετάβλητες τάξεις καθορισμένες από το χρήστη στην Java.
Για να είναι μια τάξη αμετάβλητη, πρέπει να κηρυχθεί οριστική μαζί με όλα τα μέλη της. Επίσης, η κλάση πρέπει να έχει έναν παραμετροποιημένο κατασκευαστή. Όλες οι μεταβλητές μελών πρέπει να έχουν μια μέθοδο λήψης αλλά όχι μια μέθοδο ρύθμισης.
Όλες οι παραπάνω προϋποθέσεις πρέπει να πληρούνται για να είναι αμετάβλητη μια τάξη.
Ας εφαρμόσουμε ένα πρόγραμμα Java για να δείξουμε την αμετάβλητη τάξη.
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 } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε δηλώσει μια κατηγορία πόλης. Αυτή είναι μια τελική τάξη και σε αυτήν την τάξη, έχουμε δηλώσει δύο μεταβλητές μελών και έναν παραμετροποιημένο κατασκευαστή. Έχουμε επίσης δηλώσει μεθόδους λήψης για αυτές τις δύο μεταβλητές μελών. Έτσι, η τάξη City πληροί όλες τις απαιτήσεις μιας αμετάβλητης τάξης.
Σημειώστε τη γραμμή κώδικα που σχολιάστηκε στην κύρια μέθοδο. Εάν αποσυνδέσουμε αυτήν τη γραμμή, τότε θα λάβουμε ένα σφάλμα μεταγλωττιστή (παρέχεται στο σχόλιο εδώ) καθώς προσπαθούμε να ορίσουμε την τιμή για μια μεταβλητή μέλους.
Τάξη Singleton στην Ιάβα
Μια τάξη singleton επιτρέπει μία παρουσία κάθε φορά. Στην Ιάβα, ένα απλό είναι ένα μοτίβο σχεδίασης. Αυτό το μοτίβο σχεδίασης διασφαλίζει ότι υπάρχει μόνο μία παρουσία μιας κλάσης ανά πάσα στιγμή. Επομένως, κάθε τάξη που ορίζεται ως singleton έχει ένα μόνο σημείο πρόσβασης και είναι παγκόσμια.
Λάβετε υπόψη ότι ο τερματισμός του κύκλου ζωής της εφαρμογής δεν καταστρέφει μια τάξη μεμονωμένων όπως οι κανονικές τάξεις. Όταν μια τάξη δηλώνεται ως απλή, τότε δεν δημιουργούμε μια νέα παρουσία κάθε φορά που υποβάλλεται ένα νέο αίτημα για το αντικείμενο.
Η ίδια παρουσία χρησιμοποιείται ξανά και ξανά. Με αυτόν τον τρόπο μπορούμε να εξοικονομήσουμε χώρο μνήμης κυρίως στην περίπτωση εφαρμογών πολλαπλών νημάτων και βάσεων δεδομένων.
Μπορούμε να χρησιμοποιήσουμε μια τάξη singleton για δραστηριότητες όπως προσωρινή αποθήκευση, καταγραφή κ.λπ.
Το παρακάτω πρόγραμμα δείχνει μια τάξη 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); } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε ορίσει μια τάξη singleton με έναν ιδιωτικό κατασκευαστή. Έχουμε ορίσει μια μεταβλητή μέλους τύπου String. Στην κύρια μέθοδο, δηλώνουμε δύο παρουσίες της κατηγορίας singleton. Στη συνέχεια αλλάζουμε τη μεταβλητή String χρησιμοποιώντας μία από τις παρουσίες.
Όταν εκτυπώνουμε την τιμή String και για τις δύο παρουσίες, παρατηρούμε ότι η τιμή μεταβλητής String έχει αλλάξει και για τις δύο παρουσίες. Ως εκ τούτου, παρόλο που αλλάξαμε την τιμή μόνο για μία παρουσία, λόγω της κατηγορίας singleton, οι αλλαγές αντικατοπτρίζονται σε όλες τις περιπτώσεις.
Επιστρέφουμε πάντα την ίδια παρουσία παρόλο που φαίνεται να δημιουργούμε διαφορετικές παρουσίες.
Κατηγορία αντικειμένων σε Java
Η κλάση αντικειμένων είναι η γονική τάξη ή η πρώτη τάξη στην Java. Βρίσκεται στο ανώτατο επίπεδο της ιεραρχίας Java.
Δεδομένου ότι όλες οι κλάσεις έχουν την κλάση αντικειμένων ως superclass, όλα τα αντικείμενα Java συμπεριλαμβανομένης της σειράς εφαρμόζουν τις μεθόδους κλάσης αντικειμένων. Η κλάση αντικειμένων υπάρχει στο πακέτο 'java.lang'.
Δήλωση για το java.lang.Object είναι:
Αντικείμενο δημόσιας τάξης
Ο παρακάτω πίνακας περιγράφει τους κατασκευαστές και τις μεθόδους της κλάσης αντικειμένων.
Κατασκευαστής / Μέθοδος | Περιγραφή |
---|---|
Κατηγορία getClass () | Επιστρέφει την κλάση χρόνου εκτέλεσης του αντικειμένου. |
Κατασκευαστής κλάσης αντικειμένων | |
Αντικείμενο() | Κατασκευαστής κλάσης αντικειμένων |
Μέθοδοι κατηγορίας αντικειμένων | |
προστατευμένος κλώνος αντικειμένου () | Επιστρέφει έναν κλώνο ή αντίγραφο του αντικειμένου. |
boolean ισούται με (αντικείμενο obj) | Ελέγχει αν ένα δεδομένο αντικείμενο είναι ίσο με αυτό το αντικείμενο. |
προστατευμένο κενό οριστικοποιείται () | Κλήθηκε από τον συλλέκτη απορριμάτων όταν καταστραφούν όλες οι αναφορές στο αντικείμενο. |
int hashCode () | Επιστρέφει τον κωδικό κατακερματισμού για το αντικείμενο. |
άκυρη ειδοποίηση () | Χρησιμοποιήστε το για να ξυπνήσετε ένα νήμα αναμονής. |
άκυρη ειδοποίησηΌλα () | Ξυπνά όλα τα νήματα αναμονής. |
String toString () | Επιστρέφει το ισοδύναμο συμβολοσειράς του αντικειμένου. |
άκυρη αναμονή () | Κάνει μια αναμονή νήματος έως ότου ξυπνήσει με τη μέθοδο ειδοποίησης από άλλο νήμα. |
άκυρη αναμονή (μεγάλο χρονικό όριο) | Κάνει το νήμα να περιμένει μέχρι να παρέλθει ο χρόνος που παρέχεται από το 'timeout' ή να ξυπνήσει με ειδοποίηση ή ειδοποίησηΌλες οι μέθοδοι. |
άκυρη αναμονή (μεγάλο χρονικό όριο, int nanos) | Προκαλεί το νήμα να περιμένει έως ότου παρέλθει ο καθορισμένος χρόνος ή έως ότου ειδοποιηθεί () ή notifyAll () από άλλο νήμα. |
Ας εφαρμόσουμε ένα παράδειγμα προγράμματος Java που θα δείξει μερικές από τις μεθόδους της κλάσης αντικειμένων.
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.'); } }
Παραγωγή
Εδώ έχουμε μια κύρια τάξη. Στην κύρια μέθοδο () δημιουργούμε ένα αντικείμενο Main class. Αυτό το αντικείμενο είναι απόγονος της κλάσης αντικειμένων και υποστηρίζει όλες τις μεθόδους της κλάσης αντικειμένων. Έτσι χρησιμοποιούμε αυτό το αντικείμενο και καλούμε μερικές μεθόδους κλάσης αντικειμένων όπως hashCode (), System.GC (), finalize () κ.λπ.
Κατηγορία περιτυλίγματος στην Java
Η Java παρέχει ένα χαρακτηριστικό που ονομάζεται wrapper class το οποίο διαθέτει έναν μηχανισμό που μετατρέπει τον πρωτόγονο τύπο δεδομένων σε αντικείμενο και το αντίστροφο. Οι τάξεις Wrapper είναι οι τάξεις που αντιπροσωπεύουν πρωτόγονους τύπους όπως int, char κ.λπ. ως αντικείμενα.
Έτσι, κάθε πρωτόγονος τύπος δεδομένων στην Java έχει την αντίστοιχη κατηγορία περιτυλίγματος.
Ο παρακάτω πίνακας δείχνει τους πρωτόγονους τύπους δεδομένων και την αντίστοιχη κλάση περιτυλίγματος.
Πρωτόγονος τύπος | Τύπος περιτυλίγματος |
---|---|
φλοτέρ | Φλοτέρ |
boolean | Boolean |
απανθρακώνω | Χαρακτήρας |
ψηφιόλεξη | Ψηφιόλεξη |
μικρός | Μικρός |
int | Ακέραιος αριθμός |
μακρύς | Μακρύς |
διπλό | Διπλό |
Για να μετατρέψουμε τα πρωτόγονα σε αντικείμενα και αντικείμενα σε πρωτόγονες, έχουμε τεχνικές που ονομάζονται 'autoboxing' και 'boxing' αντίστοιχα. Το Ase Java είναι μια γλώσσα προγραμματισμού με αντικειμενικό σκοπό, ασχολούμαστε πάντα με αντικείμενα και έχουμε επίσης πολλές δυνατότητες όπως Συλλογές, Σειριοποίηση , κ.λπ. που χρειάζονται επίσης αντικείμενα και πρωτόγονους τύπους.
Επομένως, είναι επιτακτική ανάγκη να χρειαζόμαστε πάντα αντικείμενα και πρωτόγονους τύπους στην Java και, συνεπώς, απαιτούμε αυτές τις τεχνικές αυτόματης εμφάνισης και αποσυμπίεσης.
jms συνεντεύξεις ερωτήσεις και απαντήσεις για έμπειρους
Αυτόματο κιβώτιο
Το Autoboxing είναι μια τεχνική αυτόματης μετατροπής ενός πρωτόγονου τύπου δεδομένων σε ένα αντικείμενο της αντίστοιχης κατηγορίας περιτυλίγματος. Για παράδειγμα , η μετατροπή int σε Integer class, char σε Character class, κ.λπ. είναι περιπτώσεις αυτόματης εμφάνισης.
Σημείωση: Οι τάξεις Wrapper χρησιμοποιούν τη μέθοδο valueOf () για να μετατρέψουν το πρωτόγονο σε αντικείμενα που έχουν υποτιμηθεί από την Java 5.
Αποσύνδεση
Η αντίστροφη μετατροπή αντικειμένων κλάσης περιτυλίγματος στους αντίστοιχους πρωτόγονους τύπους δεδομένων τους ονομάζεται 'unboxing'.
Σημείωση: Από το Java 5, η μέθοδος intValue () που μετατρέπει το αντικείμενο περιτύλιξης σε πρωτόγονο τύπο υποτιμάται.
Δίνεται παρακάτω είναι ένα παράδειγμα πυγμαχίας / απεμπλοκής.
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); } }
Παραγωγή
Το παραπάνω πρόγραμμα δείχνει αυτόματη αποστολή και αποσυμπίεση στην τιμή int. Πρώτα, μετατρέπουμε int σε Integer αντικείμενο και στη συνέχεια ένα Integer αντικείμενο μετατρέπεται σε int data type.
Ας εφαρμόσουμε ένα πρόγραμμα που δείχνει τις τάξεις περιτυλίγματος που υπάρχουν στην Java.
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); } }
Παραγωγή
Η παραπάνω έξοδος προγράμματος δείχνει τη μετατροπή από πρωτόγονους τύπους σε αντικείμενα περιτυλίγματος (Autoboxing) και αντιστρέφει τη μετατροπή από αντικείμενα περιτυλίγματος σε πρωτόγονους τύπους (unboxing).
Συχνές Ερωτήσεις
Ε # 1) Ποιος είναι ο τύπος δεδομένων κλάσης στην Java;
Απάντηση: Η Java παρέχει μια κλάση με την ονομασία 'Class' που περιέχει πληροφορίες για όλες τις κλάσεις, τα αντικείμενα και τις διεπαφές της εφαρμογής που εκτελείται. Η κλάση κλάσης αντιπροσωπεύει επίσης πρωτόγονους τύπους δεδομένων και τον τύπο κενού.
Η τάξη Class είναι μέρος του πακέτου java.lang.
Q # 2) Ποια είναι η Κανονική τάξη στην Java;
Απάντηση: Μια κανονική τάξη στην Java είναι μια μη στατική τάξη. Μπορούμε να δημιουργήσουμε αντικείμενα κανονικής τάξης χρησιμοποιώντας τη νέα λέξη-κλειδί. Επίσης, κάθε κανονική τάξη μπορεί να έχει μια άλλη τάξη ως μέλος της. Σε αυτήν την περίπτωση, η τάξη μέλος ονομάζεται ένθετη ή εσωτερική κλάση και η κλάση κλειστή ονομάζεται εξωτερική τάξη.
Q # 3) Είναι το String a Wrapper Class στην Java;
Απάντηση: Όχι, το String δεν είναι τάξη περιτυλίγματος στην Java. Για να είναι μια τάξη περιτύλιγμα, χρειαζόμαστε τον αντίστοιχο πρωτόγονο τύπο. Για παράδειγμα, για την κατηγορία Integer wrapper έχουμε πρωτόγονο τύπο int. Για την κατηγορία String, δεν έχουμε αντίστοιχο πρωτόγονο τύπο δεδομένων.
Q # 4) Ποιο είναι το όφελος του Wrapper Class;
Απάντηση: Οι τάξεις περιτυλίγματος χρησιμοποιούνται για τη μετατροπή πρωτόγονων τύπων δεδομένων σε αντικείμενα. Με άλλα λόγια, οι τάξεις περιτυλίγματος τυλίγουν πρωτόγονους τύπους σε αντικείμενα. Οι τάξεις περιτυλίγματος χρησιμοποιούνται όταν ορισμένες δυνατότητες Java όπως οι Συλλογές αναμένουν μόνο αντικείμενα και όχι πρωτόγονους τύπους δεδομένων.
Q # 5) Γιατί χρησιμοποιείται το Singleton Class στην Java;
Απάντηση: Όποτε θέλουμε ένα παγκόσμιο σημείο πρόσβασης για ένα συγκεκριμένο αντικείμενο, αναζητούμε ένα μοτίβο singleton που μας επιτρέπει να σχεδιάσουμε μια τάξη singleton στην οποία θα υπάρχει μόνο μία παρουσία. Τα μαθήματα Singleton χρησιμοποιούνται σε κρυφές μνήμες, συγκεντρωτικά νήματα, εφαρμογές βάσεων δεδομένων, καταγραφή κ.λπ.
συμπέρασμα
Σε αυτό το σεμινάριο, έχουμε καλύψει τους διάφορους τύπους τάξεων που χρησιμοποιούνται στην Java. Είδαμε τα συγκεκριμένα, αφηρημένα, τελικά, στατικά, ένθετα, POJO κ.λπ. Εκτός από αυτό, συζητήσαμε επίσης μαθήματα Singleton, αμετάβλητα μαθήματα, και συζητήσαμε και τα παραδείγματα εφαρμογής τους.
Καλύψαμε επίσης τάξεις περιτυλίγματος και τάξεις αντικειμένων στην Java. Οι τάξεις Wrapper είναι οι κλάσεις που τυλίγουν τους πρωτόγονους τύπους δεδομένων της Java σε αντικείμενα. Η κλάση αντικειμένων στην Java είναι το superclass όλων των άλλων κατηγοριών. Είναι η κορυφαία τάξη στην ιεραρχία της Java.
Τώρα που έχουμε συζητήσει τις τάξεις και τα αντικείμενα στην Java και τους τύπους τάξεων, στο επόμενο σεμινάριο θα προχωρήσουμε σε μια λεπτομερή συζήτηση για τους κατασκευαστές στην Java.
=> Ανατρέξτε στον τέλειο οδηγό εκπαίδευσης Java εδώ.
Συνιστώμενη ανάγνωση
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Βασικά Java: Java Syntax, Java Class και Core Java Concepts
- Τι είναι η στατική λέξη-κλειδί στην Java;
- Java Integer και Java BigInteger Class με παραδείγματα
- Εκπαιδευτικό μάθημα Java Scanner με παραδείγματα
- Αντικείμενο Java Class Vs - Πώς να χρησιμοποιήσετε την κλάση και το αντικείμενο στην Java
- Εκπαιδευτικό μάθημα Java Array - java.util.Arays Class με παραδείγματα
- Τι είναι το Java Java | Java Vector Class Tutorial με παραδείγματα