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

Απορία ονομασίας μεταβλητής και κλάσης σε java


mm

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

Δημοσ.

Γεια χαρά, είμαι τελείως αρχάριος στην java και θα ήθελα να κάνω 2 ερωτήσεις.

 

1ον Θέλω να είμαι σίγουρος για το πως δηλώνουμε μια μεταβλητή και μετα μια κλάση.

 

Για μεταβλητές ισχύει οτι μπορούμε να ξεκινήσουμε με _ ή $ και να συνεχίσουμε με αλφαρηθμητικό unicode. Μπορούμε να τελειώσουμε όμως με _ ή $ ή με άλλους χαρακτήρες (!@#$%^&*()-/\[]{ }+=) ??

 

Πείτε μου ποιες απο τις παρακάτω ονομασίες θα ήταν έγκυρες και όσες δεν είναι που είναι το/τα λάθος/η:

 

(τις έχω αριθμήσει για να μπορείτε εύκολα να αναφερθείτε στην καθεμία)

 

1. _myVar_

2. $var2#

3. x*yz)

4. s`1"2"3

5. $fme?ta$

6. my.Var

7. my+var

8. η[μεταβλητή]\μ(ο)υ

9. εδω-οι-κα'λ'ες-τιμες

10. a<b>c-

 

Τα ίδια ισχύουν και για τις ονομασίες κλάσεων;

 

2ον Θα ήθελα να μου δώσετε απο ενα ή παραπάνω παραδείγματα για μεταβλητές κλάσεων,μεταβλητές υποστάσεων και τοπικές μεταβλητές (έχω διαβάσει θεωρία,παραδείγματα θα ήθελα)

thnx :D

Δημοσ.

Δεν σε κατάλαβα ,αν θέλεις απάντησε στην ερωτησή μου και ασε τις υποθέσεις για το αν είμαι ειλικρινής ή όχι. Είναι καθαρά δικές μου απορίες και οι δηλώσεις μεταβλητών είναι τελείως τυχαίες-ότι μου ήρθε εκείνη την ώρα. Δεν καταλαβαίνω γιατι πρέπει να δικαιολογηθώ γι'αυτό τώρα αλλα τέλος πάντων.

Δημοσ.

Στη C#, μόνο το 1. στέκει.

Γενικά, αν κ από java δεν κατέχω πολύ, επειδή είναι oo, φαντάζομαι πως κλάσεις κ μεταβλητές θα υπόκεινται στους ίδιους περιορισμούς ονοματοδοσίας.

Κι αν έχεις ένα java compiler εγκατεστημένο, μπορείς κάλλιστα και τάχιστα να τσεκάρεις την ορθότητα και αυτών και άλλων

Δημοσ.

Οκ θα απαντήσω στην πρώτη μου ερώτηση,εκανα τεστακια και απο ότι είδα επιτρέπονται μόνο οι χαρακτήρες _ και $ στην αρχή ή το τέλος της ονομασίας.Οποιοσδήποτε άλλον χαρακτήρας για αρχή μέση τέλος μου χτυπάει error.Σωστά;

 

Διαβάζω μόνος μου ενα βιβλιαράκι java και έχω αρκετές απορίες γενικά.

Δημοσ.

1. Αυτό είναι ΟΚ

>_myVar_

2. Το # δεν επιτρέπεται από τη γλώσσα. (Illegal character)

>$var2# 

3. Η παρένθεση δεν μπορεί να μπει έτσι. Περιμένει να έχει ανοίξει από κάπου πιο πριν. Επίσης από το * καταλαβαίνει ότι θέλεις να πολλαπλασιάσεις τη μεταβλητή x με τη μεταβλητή yz

>x*yz) 

4. To ` δεν επιτρέπεται (Illegal character)

Τα " δεν επιτρέπονται εδώ γιατί χρησιμοποιούνται για να φτιάξουμε strings.

>s`1"2"3

5. Το ? δεν μπορεί να μπει εδώ γιατί έχει άλλες χρήσεις (βλέπε Java tutorials)

>$fme?ta$ 

6. Ούτε η . μπορεί να χρησιμοποιηθεί εδώ για να ορίσεις ΕΝΑ όνομα. Για περισσότερες λεπτομέρειες βλέπε Java tutorials.

> my.Var 

7. To + είναι αντίστοιχη περίπτωση με το *

>my+var 

8. Προφανώς δεν μπορείς να γράψεις ελληνικά. Οι [] είναι αντίστοιχα με την ) πιο πάνω. Το \ έχει άλλη χρήση (java tutorials)

>η[μεταβλητή]\μ(ο)υ 

9. Το – αντίστοιχο με τα + και *. Ενώ τα ' χρησιμοποιούνται για δημιουργία char.

>εδω-οι-κα'λ'ες-τιμες

10. Τα <> έχουν άλλη χρήση (java tutorials)

>a<b>c 

Δημοσ.

Νομίζω ότι το όνομα μεταβλητής πρέπει να ξεκινάει από αλφαριθμητικό αλλά δεν έχει μεγάλη σημασία, θα ονόμαζες ποτέ μια μεταβλητή έτσι

>$var2#

>$fme?ta$

???

Στο βιβλίο που διαβάζεις γράφει σίγουρα ποια είναι επιτρεπτά ονόματα για μεταβλητές στη Java και ποια όχι.

Δημοσ.
Νομίζω ότι το όνομα μεταβλητής πρέπει να ξεκινάει από αλφαριθμητικό αλλά δεν έχει μεγάλη σημασία, θα ονόμαζες ποτέ μια μεταβλητή έτσι
>$var2#

>$fme?ta$

???

Κατ’ αρχάς δεν επιτρέπεται να ονομαστεί ποτέ

>$var2#

ή

>$fme?ta$

.

Όμως έτσι

>$fmeta$

και έτσι

>$var2

μια χαρά επιτρέπεται!

Αν πάντως ρωτάς μόνο αν θα τις ονόμαζα έτσι, τότε όχι, προφανώς και δε θα την ονόμαζα ποτέ έτσι.

Δημοσ.

Νομιζω οτι με τη παυλιτσα εισαι μια χαρα. Τι να τα κανες τα αλλα; Συνηθως τη παυλιτσα τη βαζουν μπροστα απο τα member μιας κλασης, τα private member. Απο java ξερω μονο mobile , και δεν εχω πετυχει καποιο member με $.

Δημοσ.

Καταρχήν σας ευχαριστώ για τις απαντήσεις. Στο βιβλίο που διαβάζω λέει οτι το όνομα μιας μεταβλητής μπορεί να ξεκινάει με τους χαρακτήρες _ ή $ (αν και δε συνιστάται) και να συνεχίζει με αλφαριθμητικό unicode. Για τους ελληνικούς χαρακτήρες που είπες eirinikp, δεν είναι χαρακτήρες unicode? Επίσης ο compiler του jcreator δε μου εμφανίζει error.

 

Αν μπορούσατε να μου δώσετε μερικά παραδείγματα και για τη δεύτερη ερώτηση μου :D :D

Δημοσ.
Για τους ελληνικούς χαρακτήρες που είπες eirinikp, δεν είναι χαρακτήρες unicode? Επίσης ο compiler του jcreator δε μου εμφανίζει error.

Τώρα με προβληματίζεις...:confused: Άσε που δε θα βρίσκομαι σε δικό μου υπολογιστή έως τη Δευτέρα και δεν μπορώ να το ελέγξω. Θέλω να απαντήσω "όχι δε δέχεται ελληνικούς χαρακτήρες", αλλά αυτό με το jcreator με συγκρατεί...:fear: Ζητάω και από κανέναν άλλο συνάδελφο να το ελέγξει.

Όπως και να 'χει πάντως, πιο εύκολα θα χρησιμοποιούσα μεταβλητή που να περιέχει το σύμβολο $, παρά να έχει ελληνικούς χαρακτήρες!!!:-)

Δημοσ.
Τώρα με προβληματίζεις...:confused: Άσε που δε θα βρίσκομαι σε δικό μου υπολογιστή έως τη Δευτέρα και δεν μπορώ να το ελέγξω. Θέλω να απαντήσω "όχι δε δέχεται ελληνικούς χαρακτήρες", αλλά αυτό με το jcreator με συγκρατεί...:fear: Ζητάω και από κανέναν άλλο συνάδελφο να το ελέγξει.

Όπως και να 'χει πάντως, πιο εύκολα θα χρησιμοποιούσα μεταβλητή που να περιέχει το σύμβολο $, παρά να έχει ελληνικούς χαρακτήρες!!!:-)

 

Χε χε δες αυτο που εκανα (ειναι σε c++, αλλα γινετε και σε c# )

>// προτζεκτ.cpp : Defines the entry point for the console application.
//

#include "stdafx.h" //stdio.h,tchar.h

#define κενο void
#define αριθμος int
#define εκτυποσε(φορματ,παραμετρο) printf(φορματ,παραμετρο)
#define ΕισοδοςΠρογραμματος _tmain
#define γραμμα _TCHAR
#define επιστροφη return
#define παρεχαρακτηρα getchar
#define χαρακτηρας char

κενο εκτυποσεΑριθμο(αριθμος αρι);
αριθμος συν(αριθμος α,αριθμος β);
αριθμος ΕισοδοςΠρογραμματος(αριθμος αργβ,γραμμα * αργψ[])
{
εκτυποσε("%s","1+2=");
εκτυποσεΑριθμο(συν(1,2));
  
παρεχαρακτηρα();
επιστροφη 0;
}
κενο εκτυποσεΑριθμο(αριθμος αρι)
{
εκτυποσε("%d",αρι);
}
αριθμος συν(αριθμος αρι1,αριθμος αρι2)
{
αριθμος προχειρος= αρι1+αρι2;
επιστροφη προχειρος;
}

Δημοσ.

Σχετικά με τα ελληνικά στα ονόματα μεταβλητών:

 

http://journals.ecs.soton.ac.uk/java/tutorial/java/nutsandbolts/vars.html

 

In Java, a variable name:

must be a legal Java identifier comprised of a series of Unicode characters. Unicode is a character coding system designed to support text written in diverse human languages. Unicode allows for the codification of up to 65,536 characters (currently 34,168 have been assigned). This allows you to use characters in your Java programs from various alphabets such as Japanese, Greek, Russian, Hebrew, and so on.

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

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

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