This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
java:generic_bounded_types [2015/03/15 21:41] gthanos [Σχέσεις κληρονομικότητας φραγμένων παραμετρικών τύπων δεδομένων] |
java:generic_bounded_types [2020/03/11 07:40] gthanos [Κάτω φραγμένοι παραμετρικοί τύποι (Lower Bounded Wildcards)] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Φραγμένοι παραμετρικοί τύπων δεδομένων ====== | + | ====== Φραγμένοι παραμετρικοί τύποι δεδομένων ====== |
| - | ===== Upper Bounded Wildcards ===== | + | Παρακάτω αναλύονται 3 υποκατηγορίες παραμετρικών τύπων δεδομένων |
| + | * οι άνω φραγμένοι παραμετρικοί τύποι | ||
| + | * οι κάτω φραγμένοι και | ||
| + | * οι μη φραγμένοι | ||
| + | |||
| + | ===== Άνω φραγμένοι παραμετρικοί τύποι (Upper Bounded Wildcards) ===== | ||
| <code java> | <code java> | ||
| - | public static void process(List<? | + | public static void process(List<? |
| </ | </ | ||
| - | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης '' | + | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης '' |
| - | ===== Lower Bounded Wildcards ===== | + | ===== Κάτω φραγμένοι παραμετρικοί τύποι (Lower Bounded Wildcards) ===== |
| <code java> | <code java> | ||
| Line 19: | Line 24: | ||
| </ | </ | ||
| - | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης '' | + | Στην παραπάνω δήλωση ο τύπος δεδομένων της παραμετρικής κλάσης '' |
| - | ===== Unbounded Wildcards ===== | ||
| + | ===== Μη φραγμένοι παραμετρικοί τύποι (Unbounded Wildcards) ===== | ||
| + | |||
| + | Θα εξετάσουμε τους μη φραγμένους παραμετρικούς τύπους μέσα το παρακάτω παράδειγμα. | ||
| <code java> | <code java> | ||
| public static void printList(List< | public static void printList(List< | ||
| Line 30: | Line 37: | ||
| } | } | ||
| </ | </ | ||
| - | Ο παραπάνω κώδικας τυπώνει αντικείμενα από μία λίστα αντικειμένων τύπου '' | + | |
| + | Ο παραπάνω κώδικας τυπώνει αντικείμενα από μία λίστα αντικειμένων τύπου '' | ||
| + | |||
| + | Αν θέλουμε να γράψουμε μία αρκετά γενική μέθοδο λίστας που να τυπώνει λίστες οποιουδήποτε αντικειμένου αρκεί να γράψουμε το παρακάτω | ||
| <code java> | <code java> | ||
| Line 40: | Line 50: | ||
| </ | </ | ||
| - | ===== Σχέσεις κληρονομικότητας φραγμένων παραμετρικών τύπων δεδομένων ===== | + | Σε αναλογία |
| - | Όπως είδαμε οι τύποι '' | ||
| - | {{ : | ||
| - | |||
| - | |||
| - | Γενικότερα προκειμένου να δημιουργήσουμε σχέσεις κληρονομικότητας μεταξύ παραμετρικών τύπων δεδομένων, | ||
| <code java> | <code java> | ||
| - | List<? extends | + | public static void printΝumbers(List<? extends |
| - | List<? extends Number> | + | for (Number num: list) |
| + | System.out.print(num + " "); | ||
| + | | ||
| + | } | ||
| </ | </ | ||
| - | Το παρακάτω σχήμα εξηγεί τις σχέσεις κληρονομικότητας | + | |Προηγούμενο: |
| - | {{ : | + | |