pbp Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 Γεια σας, Γνωρίζω C/C++ και προσπαθώ να μάθω java. Σε όλους μας ειναι γνωστό το παράδειγμα των 2 μεθόδων swap για call by value & call by reference. Θα μπορούσε κάποιος να μου κάνει το ίδιο σε java για να καταλάβω λίγο πως λειτουργεί το call by reference και στη java? Ευχαριστώ πολύ.
Timonkaipumpa Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 Θα μπορούσε κάποιος να μου κάνει το ίδιο σε java για να καταλάβω λίγο πως λειτουργεί το call by reference και στη java? Όχι, γιατί δεν λειτουργεί. Java: Ντεν έκω call by reference καρντιά μου Link Υ.Γ. Με άλλα λόγια το: void foo( a, b ) temp = b b = a a = temp Δεν αλλάζει τα a και b μόλις βγει από το block του.
παπι Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 Όχι, γιατί δεν λειτουργεί. Java: Ντεν έκω call by reference καρντιά μου Link Υ.Γ. Με άλλα λόγια το: void foo( a, b ) temp = b b = a a = temp Δεν αλλάζει τα a και b μόλις βγει από το block του. ο Integer (οχι το int) θεωρειται object? Αν ναι τοτε λογικα θα δουλεψει, εφοσον τα object τα παιρνει by ref
Timonkaipumpa Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 ο Integer (οχι το int) θεωρειται object? Αν ναι τοτε λογικα θα δουλεψει, εφοσον τα object τα παιρνει by ref Δες εδώ. Τα εξηγεί ωραία.
pbp Δημοσ. 16 Σεπτεμβρίου 2011 Μέλος Δημοσ. 16 Σεπτεμβρίου 2011 Όχι, γιατί δεν λειτουργεί. Java: Ντεν έκω call by reference καρντιά μου Link Υ.Γ. Με άλλα λόγια το: void foo( a, b ) temp = b b = a a = temp Δεν αλλάζει τα a και b μόλις βγει από το block του. Ντεν εκω call by reference ομως με κάποιο τροπο επιδιώκω να το επιτύχω Αυτο ρωτάω Πως!
Timonkaipumpa Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 Ρίξε μία ματιά στο link που έδωσα στον παπί. Θα σε βοηθήσει.
παπι Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 [offtopic] ελα παμε λιγο flame!!! Ακου απο δω κι απο κει οτι java == C#!! Απο που κι ως που; Η java δεν υποστηριζει referencing η c# εχει 2 (out,ref) Η java δεν εχει BYTE η c# εχει Η java δεν εχει unsigned η c# εχει Η java δεν εχει POD η c# εχει Πως ειναι δυνατον να λεμε οτι η java ειναι ιδια με την c# ( ?? )
pbp Δημοσ. 16 Σεπτεμβρίου 2011 Μέλος Δημοσ. 16 Σεπτεμβρίου 2011 [offtopic] ελα παμε λιγο flame!!! Ακου απο δω κι απο κει οτι java == C#!! Απο που κι ως που; Η java δεν υποστηριζει referencing η c# εχει 2 (out,ref) Η java δεν εχει BYTE η c# εχει Η java δεν εχει unsigned η c# εχει Η java δεν εχει POD η c# εχει Πως ειναι δυνατον να λεμε οτι η java ειναι ιδια με την c# ( ?? ) Σε όλα τα άλλα μοιάζουν... Αν ήταν και αυτά τα ίδια και στις 2 γλώσσες τοτε πολύ απλά δεν θα μιλούσαμε για 2 διαφορετικές γλώσσες αλλά για μία ^^
ΠάρηςΓ Δημοσ. 16 Σεπτεμβρίου 2011 Δημοσ. 16 Σεπτεμβρίου 2011 Εχουν και αλλες διαφορες... Ουτε linq εχει η java, ουτε delegates ,ουτε ιδια συνταξη εκτος απο μερικα βασικά. Και απο το βασικο framework δεν εχουν καμια σχεση
παπι Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Εχουν και αλλες διαφορες... Ουτε linq εχει η java, ουτε delegates ,ουτε ιδια συνταξη εκτος απο μερικα βασικά. Και απο το βασικο framework δεν εχουν καμια σχεση Ε καλα αυτα μου ηρθαν στο μυαλο.. παρε να'χεις: ?? yield return as is set get linq (where,select,from,join...) in checked/unchecked unsafe(fixed,stackalloc,pointers) struct (και nullable, πχ int?,char?, foo?) ref out attribute system extension methods system internal sealed abstract readonly delegate propery system anonymous object anonymous functions
defacer Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Ε καλα αυτα μου ηρθαν στο μυαλο.. παρε να'χεις: Εντάξει, έγινε hijack το θέμα σε Javaθάψιμο. Εντάξει, θάβουμε χωρίς να υπάρχει κάποιος γνώστης Java να κάνει έναν αντίλογο. Αλλά να μην έχει και sealed? Το παράκανες!
Aztec Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Ντεν εκω call by reference ομως με κάποιο τροπο επιδιώκω να το επιτύχω Αυτο ρωτάω Πως! Σωστή είναι η λογική σου με τα objects . Όμως οι wrapper κλάσεις Integer, Long κτλ είναι immutable. Δεν μπορούν να αλλάξουν τιμή. Επομένως όταν πας να αλλάξεις τιμή θα δωθεί νέα διευθυνση που θα δείχνει στην νέα τιμή. Ο σωστός τρόπος κατ εμέ για να πετύχεις αυτό που λες πρέπει να φτιάξεις mutable wrapper για τον int με την την μεταβλητη σου. Εδώ είναι ένα θέμα που έχω απαντήσει και εξηγήσει για τις immutable wrapper κλάσεις http://www.insomnia.gr/topic/399328-java/page__p__3872401__hl__mutable__fromsearch__1#entry3872401 Αν αυτά σου φαίνονται περίπλοκα απλά φτιάξε μια κλάση με μια primitive variable και άλλαξε το κανονικότατα. Έτσι και αλλιώς αυτό που θα δεις στο link μια primitive μεταβλητη περιέχει απλά είναι final
παπι Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Εντάξει, έγινε hijack το θέμα σε Javaθάψιμο. Εντάξει, θάβουμε χωρίς να υπάρχει κάποιος γνώστης Java να κάνει έναν αντίλογο. Αλλά να μην έχει και sealed? Το παράκανες! Ε τωρα, αφου το ειπα, "παμε λιγο flame" Btw δεν ειμαι fun της c#, απλα μου αρεσει, και η java μου αρεσει (το mobile ΜΟΝΟ) και η c++ μου αρσει και η c, και javascpript αντε παρε και κατι που εχει η java >>> <<<
Aztec Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Άντε και κατι που δεν έχει η c# checked exceptions
ΠάρηςΓ Δημοσ. 17 Σεπτεμβρίου 2011 Δημοσ. 17 Σεπτεμβρίου 2011 Ε καλα αυτα μου ηρθαν στο μυαλο.. παρε να'χεις: ?? yield return as is set get linq (where,select,from,join...) in checked/unchecked unsafe(fixed,stackalloc,pointers) struct (και nullable, πχ int?,char?, foo?) ref out attribute system extension methods system internal sealed abstract readonly delegate propery system anonymous object anonymous functions και dynamic που βγηκε στην τελευταια εκδοση
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.