java:local_inner_classes

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Τοπικές κλάσεις ====== Μπορείτε να ορίσετε μία τοπική κλάση μέσα σε οποιοδήποτε μπλοκ κώδικα, δηλαδή μέσα στο σώμα μίας μεθόδου μέσα σε στα άγκυστρα ενός //if// statement ή μέσα στο σώμα μία εντολής ανακύκλωσης //for()// ή //while()//. Δείτε το παρακάτω παράδειγμα κώδικα. <code java LocalClassExample.java> public class LocalClassExample { String regularExpression = "[^0-9]"; public void validatePhoneNumber(String phoneNumber1, String phoneNumber2) { final int numberLength = 10; class PhoneNumber { String formattedPhoneNumber = null; PhoneNumber(String phoneNumber){ regularExpression = "[^0-9]"; // numberLength = 7; String currentNumber = (phoneNumber).replaceAll( regularExpression, ""); if (currentNumber.length() == numberLength) formattedPhoneNumber = currentNumber; else formattedPhoneNumber = null; } public String getNumber() { return formattedPhoneNumber; } } PhoneNumber myNumber1 = new PhoneNumber(phoneNumber1); PhoneNumber myNumber2 = new PhoneNumber(phoneNumber2); if (myNumber1.getNumber() == null) System.out.println("First number is invalid"); else System.out.println("First number is " + myNumber1.getNumber()); if (myNumber2.getNumber() == null) System.out.println("Second number is invalid"); else System.out.println("Second number is " + myNumber2.getNumber()); } public static void main(String... args) { LocalClassExample lce = new LocalClassExample(); lce.validatePhoneNumber("123-456-7890", "456-7890"); } } </code> ===== Πρόσβαση στα μέλη της εξωτερικής κλάσης ===== Μία τοπική κλάση έχει πρόσβαση στα μέλη της εξωτερικής κλάσης. Στο προηγούμενο παράδειγμα, παρατηρήστε πως ο κατασκευαστής της κλάσης //PhoneNumber// έχει πρόσβαση στην μεταβλητή //**LocalClassExample.regularExpression**//.

java/local_inner_classes.1430400655.txt.gz · Last modified: 2016/02/26 11:15 (external edit)