• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

Αναφορές σε κλάσεις (?)

Scheduled Pinned Locked Moved Αντικειμενοστρεφής Προγραμματισμός 2
4 Posts 2 Posters 71 Views
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • it2023086I Offline
    it2023086I Offline
    it2023086
    wrote on last edited by
    #1

    Είναι εφικτό στην Java (πχ με HashMap αντί για dict) να γίνει κάτι σαν το ακόλουθο της python;

    d63b4953-407b-46ab-ac82-b4fe3a4cd872-image.png

    1 Reply Last reply
    0
  • A Offline
    A Offline
    acharal
    wrote on last edited by
    #2

    Γίνεται αλλά μην το κάνεις δεν είναι καλή λογική σε γλώσσες που έχουν τύπους. Λέγεται reflection αν θες να ψάξεις παραπάνω.

    1 Reply Last reply
    0
  • it2023086I Offline
    it2023086I Offline
    it2023086
    wrote on last edited by
    #3

    Καθαρά από περιέργεια, γιατί θεωρείτε ότι είναι κακή ιδέα; Δηλ. τι συνέπειες θα μπορούσε να έχει;

    1 Reply Last reply
    0
  • A Offline
    A Offline
    acharal
    wrote on last edited by
    #4

    Αν αρχίσεις να γράφεις κώδικα που χρησιμοποιεί reflection θα δεις ότι δεν θα ξέρεις τίποτα για καμία κλάση και για να το κάνεις να δουλεύει θα χρειαστεί δυναμικούς ελέγχους (δηλαδή κατά την διάρκεια της εκτέλεσης του προγράμματος) και typecasting για να μπορέσεις τελικά να χρησιμοποιήσεις τα αντικείμενα που κατασκεύασες.

    Αυτό έχει τρία προβλήματα που μπορώ να σκεφτώ αυτή την στιγμή:

    • Η εκτέλεση του κώδικα είναι πιο αργή.
    • Γράφεις επιπλέον ελέγχους που θα μπορούσαν να γίνουν κατά την μεταγλώττιση.
    • Ο κώδικας είναι unsafe, δηλαδή πλέον ο μεταγλωττιστής δεν μπορεί να ελέγξει αν το πρόγραμμα είναι σωστό. Όσα περισσότερα τέτοια χαρακτηριστικά βάλεις στο πρόγραμμά σου τόσο δυσκολότερο είναι να είσαι σίγουρος ότι αυτά που γράφεις θα τρέξουν σωστά. Ένας λόγος που υπάρχουν τύποι σε γλώσσες είναι να πιάσουν τα "εύκολα" λάθη που κάνει ο προγραμματιστής.
    1 Reply Last reply
    1

  • Login

Powered by NodeBB Contributors
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups