This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:local_inner_classes [2017/02/06 07:05] gthanos |
java:local_inner_classes [2020/03/09 09:08] gthanos |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Τοπικές κλάσεις ====== | ====== Τοπικές κλάσεις ====== | ||
| + | |||
| + | <WRAP important 70% center round> | ||
| + | ===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== | ||
| + | </ | ||
| Μπορείτε να ορίσετε μία κλάση μέσα σε οποιοδήποτε μπλοκ κώδικα, | Μπορείτε να ορίσετε μία κλάση μέσα σε οποιοδήποτε μπλοκ κώδικα, | ||
| - | Ο λόγος που πιθανόν θέλει κάποιος προγραμματιστής να ορίσει μία τοπική κλάση είναι ότι η λειτουργικότητα που υλοποιεί η τοπική κλάση αφορά μόνο τη συγκεκριμένη μέθοδο μέσα στην οποία δηλώνεται. Επίσης, | + | Ο λόγος που πιθανόν θέλει κάποιος προγραμματιστής να ορίσει μία τοπική κλάση είναι ότι η λειτουργικότητα που υλοποιεί η τοπική κλάση αφορά μόνο τη συγκεκριμένη μέθοδο μέσα στην οποία δηλώνεται. |
| Δείτε το παρακάτω παράδειγμα κώδικα. | Δείτε το παρακάτω παράδειγμα κώδικα. | ||
| Line 10: | Line 14: | ||
| public class LocalClassExample { | public class LocalClassExample { | ||
| | | ||
| - | String regularExpression = " | + | |
| | | ||
| - | public void validatePhoneNumber(/ | + | public |
| | | ||
| final int numberLength = 10; | final int numberLength = 10; | ||
| Line 18: | Line 22: | ||
| class PhoneNumber { | class PhoneNumber { | ||
| | | ||
| - | String formattedPhoneNumber = null; | + | |
| PhoneNumber(String phoneNumber){ | PhoneNumber(String phoneNumber){ | ||
| regularExpression = " | regularExpression = " | ||
| - | | + | String currentNumber = phoneNumber.replaceAll( |
| - | | + | |
| regularExpression, | regularExpression, | ||
| if (currentNumber.length() == numberLength) | if (currentNumber.length() == numberLength) | ||
| Line 35: | Line 38: | ||
| } | } | ||
| | | ||
| - | // public void printOriginalNumbers() { | + | public String toString() { |
| - | // System.out.println(" | + | if(formattedPhoneNumber == null) |
| - | // " and " + phoneNumber2); | + | return " |
| - | // } | + | else |
| + | return formattedPhoneNumber; | ||
| + | } | ||
| + | |||
| + | | ||
| + | // System.out.println(" | ||
| + | // " and " + phoneNumber2); | ||
| + | // } | ||
| } | } | ||
| - | | + | // myNumber1.printOriginalNumbers(); |
| - | PhoneNumber myNumber2 = new PhoneNumber(phoneNumber2); | + | System.out.println(number1 + ": " + new PhoneNumber(number1)); |
| - | + | System.out.println(number2 + ": " + new PhoneNumber(number2)); | |
| - | // myNumber1.printOriginalNumbers(); | + | |
| - | | + | |
| - | if (myNumber1.getNumber() == null) | + | |
| - | | + | |
| - | else | + | |
| - | System.out.println(" | + | |
| - | | + | |
| - | | + | |
| - | else | + | |
| - | System.out.println(" | + | |
| } | } | ||
| public static void main(String... args) { | public static void main(String... args) { | ||
| - | LocalClassExample | + | LocalClassExample.validatePhoneNumber(" |
| - | lce.validatePhoneNumber(" | + | |
| } | } | ||
| } | } | ||
| Line 72: | Line 70: | ||
| <code java> | <code java> | ||
| final int numberLength = 10; | final int numberLength = 10; | ||
| - | </ | ||
| - | Αν βγάλετε τα σχόλια από την γραμμή 15 '' | ||
| - | < | ||
| - | LocalClassExample.java: | ||
| - | numberLength = 7; | ||
| </ | </ | ||
| - | Ομοίως αν προσθέσετε τους προσδιοριστές //final// στις παραμέτρους // | + | Αν προσθέσετε τους προσδιοριστές //final// στις παραμέτρους // |
| <WRAP tip 80% center round> | <WRAP tip 80% center round> | ||