bazinga13 Δημοσ. 11 Απριλίου 2014 Δημοσ. 11 Απριλίου 2014 Καλησπερα παιδια,θα θελα λιγο την γνωμη σας για τις μεταβλητες private στην Java public class Test { private String name = "iannis"; public static void main(String[] args) { Test test = new Test(); test.name = "nikos"; System.out.println(test.name); } } Αποτελεσμα nikos παρολο που δηλωνω την μεταβλητη private μπορω να της αλλαξω το ονομα public class Test { public static void main(String[] args) { Test2 test = new Test2(); test.name = "nikos"; System.out.println(test.name); } } class Test2 { private String name = "kostas"; } Αποτελεσμα Name has private access in Test2 Ωραια το καταλαβα απλα η ερωτηση μου ειναι οτι αν θελω να δηλωσω μεταβλητες τυπου private στην πρωτη περιπτωση δεν μπορω?σιγουρα θα υπαρχει λογος απλα δεν τον ξερω
Moderators Kercyn Δημοσ. 11 Απριλίου 2014 Moderators Δημοσ. 11 Απριλίου 2014 Το να δηλώσεις μια μεταβλητή ως private εξασφαλίζει ότι μόνο η κλάση στην οποία βρίσκεται μπορεί να έχει πρόσβαση σε αυτή. Στην πρώτη περίπτωση, η name ανήκει στην κλάση Test, οπότε η Test μπορεί και να την διαβάσει και να την αλλάξει. Δεν καταλαβαίνω τι ακριβώς εννοείς με την ερώτησή σου. Πρέπει να δεις στο πρόγραμμά σου τι κλάσεις χρειάζεσαι και στη συνέχεια να δεις ποιες μεταβλητές θα είναι private, όπως στη 2η περίπτωση. Τι ακριβώς θες να κάνεις στην 1η περίπτωση;
Luciddream Δημοσ. 11 Απριλίου 2014 Δημοσ. 11 Απριλίου 2014 εχω την εντύπωση οτι θέλει να την κάνει final Ωραια το καταλαβα απλα η ερωτηση μου ειναι οτι αν θελω να δηλωσω μεταβλητες τυπου private στην πρωτη περιπτωση δεν μπορω?σιγουρα θα υπαρχει λογος απλα δεν τον ξερω π.χ private final String name = "iannis";
bazinga13 Δημοσ. 11 Απριλίου 2014 Μέλος Δημοσ. 11 Απριλίου 2014 Δεν προσπαθω να κανω τιποτα το ιδιαιτερο απλα θελω να δω σε ποιες περιπτωσεις εχω προσβαση στις private μεταβλητες και σε ποιες οχι. Α)Αυτο που με μπερδευει αφανταστα και δεν το εχω ξεκαθαρισει ακομα ειναι γιατι βαζουν την main μεσα στην κλαση,αυτο ειναι που με μπερδευει και οσο και να εψαξα στο ιντερνετ δεν βρηκα καπου που να το εξηγουν Β)Περιμενα οτι μεσα απο την main δεν θα ειχα δικαιωμα να αλλαξω την τιμη των private μεταβλητων οπως γινεται στην δευτερη περιπτωση Γ)Γιατι στην πρωτη περιπτωση μεσα απο την main εχω δικαιωμα ν αλλαξω τις τιμες των μεταβλητων ενω στην δευτερη δεν εχω? Πρεπει να σας εχω μπερδεψει πολυ ε εγω να δειτε ποσο μπερδεμενος ειμαι
Moderators Kercyn Δημοσ. 11 Απριλίου 2014 Moderators Δημοσ. 11 Απριλίου 2014 Τα πάντα στη Java είναι αντικείμενα. Ακόμα και το ίδιο το πρόγραμμά σου είναι ένα αντικείμενο. Η main είναι μια μέθοδος της κλάσης Test, άρα έχει πρόσβαση σε όλες τις private μεταβλητές της Test. Στη δεύτερη περίπτωση έχεις 2 κλάσεις, την Test και την Test2. Η Test2 δεν έχει δικαίωμα να δει ή να πειράξει τις private μεταβλητές μιας άλλης κλάσης. Πάντως επειδή έχω δει ότι ασχολείσαι ταυτόχρονα και με C και με Java, θα σου έλεγα να παρατήσεις τη μια απ' τις 2 γιατί είναι εντελώς διαφορετικές στη νοοτροπία τους και μπερδεύεσαι άσκοπα.
bazinga13 Δημοσ. 11 Απριλίου 2014 Μέλος Δημοσ. 11 Απριλίου 2014 Η main είναι μια μέθοδος της κλάσης Test, άρα έχει πρόσβαση σε όλες τις private μεταβλητές της Test. αααααααααα γεια σου αδερφε μου ,κεντησες ,εχω μπει δεν ξερω κ εγω σε ποσες σελιδες στο ιντερνετ και αυτο δεν το ανεφερε κανενας,δεν το βρηκα πουθενα,δεν ξερεις ποσο μου ξεκαθαρισες το τοπιο,τωρα μαλιστα,το πιασα το νοημα Πάντως επειδή έχω δει ότι ασχολείσαι ταυτόχρονα και με C και με Java, θα σου έλεγα να παρατήσεις τη μια απ' τις 2 γιατί είναι εντελώς διαφορετικές στη νοοτροπία τους και μπερδεύεσαι άσκοπα. Η αληθεια ειναι οτι ειχα ξεκινησει με C πριν 8 χρονια και ειπα να την ξαναφρεσκαρω αλλα εχεις οντος δικιο,θα ακολουθησω την συμβουλη σου
Timonkaipumpa Δημοσ. 12 Απριλίου 2014 Δημοσ. 12 Απριλίου 2014 αααααααααα γεια σου αδερφε μου ,κεντησες ,εχω μπει δεν ξερω κ εγω σε ποσες σελιδες στο ιντερνετ και αυτο δεν το ανεφερε κανενας,δεν το βρηκα πουθενα,δεν ξερεις ποσο μου ξεκαθαρισες το τοπιο,τωρα μαλιστα,το πιασα το νοημα Η αληθεια ειναι οτι ειχα ξεκινησει με C πριν 8 χρονια και ειπα να την ξαναφρεσκαρω αλλα εχεις οντος δικιο,θα ακολουθησω την συμβουλη σου Σε αντίθεση με την C/C++ όπου δηλώνεις ένα entry point και αυτό είναι συνήθως η main, στην Java δηλώνεις ποια θα είναι η main class σου και αυτή οφείλει να έχει μία main public μέθοδο. Αυτό σημαίνει ότι μπορείς να έχεις main μέθοδο σε όλες τις κλάσεις σου αλλά θα καλείται αυτή της main class.
bazinga13 Δημοσ. 12 Απριλίου 2014 Μέλος Δημοσ. 12 Απριλίου 2014 Αυτό σημαίνει ότι μπορείς να έχεις main μέθοδο σε όλες τις κλάσεις σου αλλά θα καλείται αυτή της main class. Πολυ καλη πληροφορια αυτη φιλε μου σ ευχαριστω,οσο παει και ξεκαθαριζει το τοπιο
Timonkaipumpa Δημοσ. 12 Απριλίου 2014 Δημοσ. 12 Απριλίου 2014 Πολυ καλη πληροφορια αυτη φιλε μου σ ευχαριστω,οσο παει και ξεκαθαριζει το τοπιο Αυτό το γεγονός (με την main) είναι και ένα από τα arguments όσων λένε για τον "μπαρσταδεμένο" χαρακτήρα της C++, όπου έχει ένα entry point και αυτό δεν είναι μέσα σε κλάση αλλά "ξεκάρφωτο".
gon1332 Δημοσ. 12 Απριλίου 2014 Δημοσ. 12 Απριλίου 2014 pg.457 @Pearson Absolute Java 5th Edition - Walter Savitch 2012 Είναι από το βιβλίο που σου είχα στείλει. Όλα τα ερωτήματά σου μπορούν να λυθούν από ένα βιβλίο. Συν το γεγονός ότι αυτά που διαβάζεις είναι σωστά (για την έκδοση Java που πραγματεύεται πάντα). Έχουν προτείνει και άλλα μέλη κάποια βιβλία. Διαλέγεις και... " παίρνεις " .
defacer Δημοσ. 12 Απριλίου 2014 Δημοσ. 12 Απριλίου 2014 εχω μπει δεν ξερω κ εγω σε ποσες σελιδες στο ιντερνετ και αυτο δεν το ανεφερε κανενας,δεν το βρηκα πουθενα Ο λόγος που δεν το αναφέρει κανείς είναι ότι θεωρείται αυτονόητο. Αν κάνεις ένα google για "java private" το κάθε ένα από τα πρώτα results θα σε βγάλει σε μια σελίδα όπου λιγότερο ή περισσότερο άμεσα αναφέρεται πως κάτι δηλωμένο private μπορείς να το "δεις" μόνο από την ίδια κλάση στην οποία έχει δηλωθεί. Αν μέχρι τότε δεν είχες συνειδητοποιήσει πως είσαι μέσα στην class Test και βασικά προσπαθείς να δεις ένα private της class Test νομίζω αυτό θα ήταν αρκετό για να καταλάβεις τι γίνεται. 1
bazinga13 Δημοσ. 14 Απριλίου 2014 Μέλος Δημοσ. 14 Απριλίου 2014 Φιλε gon την καλημερα μου,ειχα κανει Format και το εσβησα το αρχειακι,νομισα οτι το ειχα χασει αλλα ειχα ξεχασει οτι ηταν στο inbox μου,μολις το κατεβασα και αρχιζω το διαβασμα,ναι εισαι σε φορμα γιατι θα επανερθω με πολλες σπαζοκεφαλιες Την καλημερα μου σε ολους και ευχαριστω για την ανταποκριση
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα