Προς το περιεχόμενο

Java Call by reference


pbp

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας,

Γνωρίζω C/C++ και προσπαθώ να μάθω java.

Σε όλους μας ειναι γνωστό το παράδειγμα των 2 μεθόδων swap για call by value & call by reference.

Θα μπορούσε κάποιος να μου κάνει το ίδιο σε java για να καταλάβω λίγο πως λειτουργεί το call by reference και στη java?

Ευχαριστώ πολύ.

Δημοσ.

Θα μπορούσε κάποιος να μου κάνει το ίδιο σε java για να καταλάβω λίγο πως λειτουργεί το call by reference και στη java?

 

Όχι, γιατί δεν λειτουργεί.

 

Java: Ντεν έκω call by reference καρντιά μου

 

Link

 

 

Υ.Γ. Με άλλα λόγια το:

 

void foo( a, b )

temp = b

b = a

a = temp

 

 

Δεν αλλάζει τα a και b μόλις βγει από το block του.

Δημοσ.

Όχι, γιατί δεν λειτουργεί.

 

Java: Ντεν έκω call by reference καρντιά μου

 

Link

 

 

Υ.Γ. Με άλλα λόγια το:

 

void foo( a, b )

temp = b

b = a

a = temp

 

 

Δεν αλλάζει τα a και b μόλις βγει από το block του.

ο Integer (οχι το int) θεωρειται object? Αν ναι τοτε λογικα θα δουλεψει, εφοσον τα object τα παιρνει by ref

Δημοσ.

Όχι, γιατί δεν λειτουργεί.

 

Java: Ντεν έκω call by reference καρντιά μου

 

Link

 

 

Υ.Γ. Με άλλα λόγια το:

 

void foo( a, b )

temp = b

b = a

a = temp

 

 

Δεν αλλάζει τα a και b μόλις βγει από το block του.

 

Ντεν εκω call by reference ομως με κάποιο τροπο επιδιώκω να το επιτύχω :P

Αυτο ρωτάω :D

Πως!

Δημοσ.

[offtopic]

ελα παμε λιγο flame!!!

 

Ακου απο δω κι απο κει οτι java == C#!! Απο που κι ως που;

 

Η java δεν υποστηριζει referencing η c# εχει 2 (out,ref)

Η java δεν εχει BYTE η c# εχει

Η java δεν εχει unsigned η c# εχει

Η java δεν εχει POD η c# εχει

 

Πως ειναι δυνατον να λεμε οτι η java ειναι ιδια με την c# ( ?? )

Δημοσ.

[offtopic]

ελα παμε λιγο flame!!!

 

Ακου απο δω κι απο κει οτι java == C#!! Απο που κι ως που;

 

Η java δεν υποστηριζει referencing η c# εχει 2 (out,ref)

Η java δεν εχει BYTE η c# εχει

Η java δεν εχει unsigned η c# εχει

Η java δεν εχει POD η c# εχει

 

Πως ειναι δυνατον να λεμε οτι η java ειναι ιδια με την c# ( ?? )

 

Σε όλα τα άλλα μοιάζουν...

Αν ήταν και αυτά τα ίδια και στις 2 γλώσσες τοτε πολύ απλά δεν θα μιλούσαμε για 2 διαφορετικές γλώσσες αλλά για μία ^^

Δημοσ.

Εχουν και αλλες διαφορες... Ουτε linq εχει η java, ουτε delegates ,ουτε ιδια συνταξη εκτος απο μερικα βασικά. Και απο το βασικο framework δεν εχουν καμια σχεση

Δημοσ.

Εχουν και αλλες διαφορες... Ουτε 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

Δημοσ.

Ε καλα αυτα μου ηρθαν στο μυαλο.. παρε να'χεις:

 

Εντάξει, έγινε hijack το θέμα σε Javaθάψιμο.

 

Εντάξει, θάβουμε χωρίς να υπάρχει κάποιος γνώστης Java να κάνει έναν αντίλογο.

 

Αλλά να μην έχει και sealed? Το παράκανες! :-D

Δημοσ.

Ντεν εκω call by reference ομως με κάποιο τροπο επιδιώκω να το επιτύχω :P

Αυτο ρωτάω :D

Πως!

 

Σωστή είναι η λογική σου με τα 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

Δημοσ.

Εντάξει, έγινε hijack το θέμα σε Javaθάψιμο.

 

Εντάξει, θάβουμε χωρίς να υπάρχει κάποιος γνώστης Java να κάνει έναν αντίλογο.

 

Αλλά να μην έχει και sealed? Το παράκανες! :-D

 

Ε τωρα, αφου το ειπα, "παμε λιγο flame" happy.gif

 

Btw δεν ειμαι fun της c#, απλα μου αρεσει, και η java μου αρεσει (το mobile ΜΟΝΟ) και η c++wub.gif μου αρσει και η c, και javascpript

 

αντε παρε και κατι που εχει η java

>>>

<<<

Δημοσ.

Ε καλα αυτα μου ηρθαν στο μυαλο.. παρε να'χεις:

 

??

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 που βγηκε στην τελευταια εκδοση

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...