random Δημοσ. 23 Μαΐου 2001 Δημοσ. 23 Μαΐου 2001 deite mia glossa programmarismou:<BR> <A HREF="http://caml.inria.fr/" TARGET=_blank>http://caml.inria.fr/</A> <A HREF="http://caml.inria.fr/FAQ/FAQ_DEBUTANT-eng.html" TARGET=_blank>http://caml.inria.fr/FAQ/FAQ_DEBUTANT-eng.html</A> <P>Dorean , OO, kai executables<P>Koufo: den exei local variables!!<BR>diladi den mporeis na kaneis<P>int x;<BR>x=5;<P><BR>
Γηρυόνης Δημοσ. 24 Μαΐου 2001 Δημοσ. 24 Μαΐου 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by random:<BR><B><P>Koufo: den exei local variables!!<BR>diladi den mporeis na kaneis<P>int x;<BR>x=5;<P></B><HR></BLOCKQUOTE><P> Κατ'αρχας local variable δε σημαίνει αυτό. Local variables είναι οι μεταβλητές που χρησιμοποιούντε μόνο μέσα σε συγκεκριμένς μεθόδους (ή functions για αυτούς που δουλέυουνε C/C++) και δεν μπορούνε να τις χρησιμοποιήσουνε άλλες μέθοδοι έξω από το σκοπό της μεθόδου που τις χρησιμοποιεί. Για παράδειγμα:<P>public class Example<BR>{<BR> int globalVariable = 100;<P> public void example1()<BR> {<BR> int localVariable1 = 0;<BR> }<P> public void example2()<BR> {<BR> int localVariable2 = 1;<BR> }<BR>}<P>H localVariable1 είναι τοπική μεταβλητή της μεθόδου example1 γιατί μπορεί να χρησιμοποιηθεί μόνο μέσα σε αυτή τη μέθοδο και όχι έξω από αυτή (δηλαδή χρησιμοποιείται μόνο τοπικά). Κατά τον ίδιο τρόπο η localVariable2 είναι τοπική μεταβλητή γαιτί χρησιμοποιείται μόνο μέσα στη μέθοδο example2 και δεν μπορεί να χρησιμοποιηθεί έξω από αυτή.<P> Σε αντίθεση η globalVariable είναι παγκόσμια μεταβλητή γιατί μπορούνε να τη χρησιμοποιήσουνε και οι δύο μέθοδοι. Με τη σειρά και η globalVariable είναι τοπική μεταβλητή γαι την κλάσση Example, δηλαδή άλλες κλάσσεις έξω από αυτή δεν μπορούνε να τη χρησιμοποιήσουνε (τουλάχιστον όχι χωρίς να έχουνε ένα reference της κλάσσης).<P> Επίσης μπορείς να κάνεις χ=3 αλλά το κάνεις διαφορετικώς<P>let x = 3;;<P>και το χρησιμοποιείς διαφορετικώς, δηλαδή αντί να κάνεις x=x+3 κάνεις x+3.<P> Η διαφορά έγκειται στο ότι η CAML είναι functional programming language (όπως είναι και η Haskel και η Miranda - για αυτούς που έχουνε ασχοληθεί με fucntional programming) και δουλεύει μόνο με συναρτήσεις. Δηλαδή για να βρείς το τετράγωνο κάποιου αριθμού κάνεις:<P>let square(x) = x * x;;<BR>square : int -> int <P>που σημαίνει ότι υπάρχει μία συνάρτηση που λέγεται square και παίρνει ώς παράμετρο ένα άριθμό (ακέραιο, δεν έχει σημασία γιατί θα ήτανε το ίδιο και για float, real, double ο,τιδήποτε από τη στιγμή που είναι όλοι αριθμοί, απλώς θα έπερεπε να αλλάξει η τελευταία γραμμή και να γίνει square: float->float), τον πολλαπλασιάζει με τον εαυτό του και επιστρέφει έναν άλλο ακέραιο. Οπότε τώρα για να βρείς το τετράγωνου κάποιου αριθμού κάνεις απλώς square(2) και σου βγάζει 4.<P> Το παραπάνω για να γίνει στη Java θα έπρεπε:<P>public class Square<BR>{<BR> public static void main(String [] arguments)<BR> {<BR> int square = 0;<BR> int number = Integer.parseInt(argumnets[0]);<BR> square = number * number;<BR> System.out.println(square);<BR> }<BR>}<P>και για να τρέξει:<P>java Square 2<P> Βγάλτε συμπεράσματα.<P> <P>------------------<BR>"It can only be attributed to human error"<BR>2001 A Space Odyssey<p>[This message has been edited by girionis (edited 23-05-2001).]
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.