απορια σε java
- Scorpion311
- Kilobyte level
- Posts: 379
- Joined: Sat Jun 06, 2009 12:11 pm
- Academic status: 4th year
- Gender: ♂
Re: απορια σε java
υπαρχει τροπος να καλεσω μεθοδο απο αλλη κλαση,χωρις ομως να φτιαχω αντικειμενο της?
- Loner
- Venus Former Team Member
- Posts: 4004
- Joined: Fri Oct 26, 2007 11:08 pm
- Academic status: N>4
- Gender: ♂
- Location: Στη ρωγμή του χρόνου
Re: απορια σε java
μόνο αν είναι static η μέθοδοςScorpion311 wrote:υπαρχει τροπος να καλεσω μεθοδο απο αλλη κλαση,χωρις ομως να φτιαχω αντικειμενο της?
You either die a Spongebob or live long enough to see yourself become the Squidward.
- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: απορια σε java
και public ή υπάρχει κληρονομικότητα. Νιανια.Loner wrote:μόνο αν είναι static η μέθοδοςScorpion311 wrote:υπαρχει τροπος να καλεσω μεθοδο απο αλλη κλαση,χωρις ομως να φτιαχω αντικειμενο της?
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- Kostas1601
- Mbyte level
- Posts: 695
- Joined: Sat Aug 29, 2009 12:30 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: απορια σε java
Μια απορία java φύσεως παιδιά, πρέπει να υλοποιήσουμε μια μέθοδο pop() για μια CharStack καλούμε την RemoveFromFront() για την συνδεδεμένη λίστα μας, η οποία επιστρέφει ένα αντικείμενο τύπου Object..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
Last edited by Kostas1601 on Wed Nov 10, 2010 1:40 pm, edited 1 time in total.
~Yesterday is History, Tommorow's a Mystery...But Today is a Gift...And That's Why They Call It Present
~

- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: απορια σε java
Γιατί η insertAtFront() να επιστρέφει αντικείμενο? Μήπως εννοείς ότι παίρνει όρισμα ένα αντικείμενο? Πιο λογικό μου ακούγεται να επιστρέφει boolean ξερω γω (επιτυχία εισαγωγής).Kostas1601 wrote:Μια απορία java φύσεως παιδιά, πρέπει να υλοποιήσουμε μια μέθοδο pop() για μια CharStack καλούμε την insertAtFront() για την συνδεδεμένη λίστα μας, η οποία επιστρέφει ένα αντικείμενο τύπου Object..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
Για γράψε λίγο τον ορισμό και των δύο

Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- Kostas1601
- Mbyte level
- Posts: 695
- Joined: Sat Aug 29, 2009 12:30 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: απορια σε java
Συγγνόμη λάθος..stoupeace wrote:Γιατί η insertAtFront() να επιστρέφει αντικείμενο? Μήπως εννοείς ότι παίρνει όρισμα ένα αντικείμενο? Πιο λογικό μου ακούγεται να επιστρέφει boolean ξερω γω (επιτυχία εισαγωγής).Kostas1601 wrote:Μια απορία java φύσεως παιδιά, πρέπει να υλοποιήσουμε μια μέθοδο pop() για μια CharStack καλούμε την insertAtFront() για την συνδεδεμένη λίστα μας, η οποία επιστρέφει ένα αντικείμενο τύπου Object..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
Για γράψε λίγο τον ορισμό και των δύο
Η insertAtFront(Object b) είναι void...
Η removeFromFront() επιστρέφει Object..
- Spoiler: εμφάνιση/απόκρυψη
- Spoiler: εμφάνιση/απόκρυψη
~Yesterday is History, Tommorow's a Mystery...But Today is a Gift...And That's Why They Call It Present
~

- abujafar
- Mbyte level
- Posts: 651
- Joined: Wed Dec 03, 2008 2:49 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: Marmaras
Re: απορια σε java
Πρεπει να χρησιμοποιησεις wrapper Class, την Character δηλαδη ωστε να παρεις ενα αντικειμενο Character πισω και μετα να παρεις την char τιμη του.Kostas1601 wrote:Μια απορία java φύσεως παιδιά, πρέπει να υλοποιήσουμε μια μέθοδο pop() για μια CharStack καλούμε την insertAtFront() για την συνδεδεμένη λίστα μας, η οποία επιστρέφει ένα αντικείμενο τύπου Object..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
Btw, για pop() θα κανεις remove οχι insert.Μαλλον σου ξεφυγε εδω στο ποστ.
- Kostas1601
- Mbyte level
- Posts: 695
- Joined: Sat Aug 29, 2009 12:30 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: απορια σε java
Ναι remove εννοούσα το άλλαξαabujafar wrote:Πρεπει να χρησιμοποιησεις wrapper Class, την Character δηλαδη ωστε να παρεις ενα αντικειμενο Character πισω και μετα να παρεις την char τιμη του.Kostas1601 wrote:Μια απορία java φύσεως παιδιά, πρέπει να υλοποιήσουμε μια μέθοδο pop() για μια CharStack καλούμε την insertAtFront() για την συνδεδεμένη λίστα μας, η οποία επιστρέφει ένα αντικείμενο τύπου Object..
όταν βάζουμε το return statement στην pop() δέν δέχεται την επιστροφή Object (η pop() πρέπει να επιστρέψει char)
Και δέν δουλεύει το καλούπωμα σε char..δέν μπορούμε να μετατρέψουμε το επεστρεφόμενο αντικείμενο σε char...
το παράδοξο είναι οτι στην push() καλούμε την insertAtFront(Object a) της List με όρισμα τύπου char και δέν υπάρχει κανένα πρόβλημα...
Κάτι σχετικό με τον πολυμορφισμό πρέπει να μου ξεφεύγει...
Ευχαριστώ..
Btw, για pop() θα κανεις remove οχι insert.Μαλλον σου ξεφυγε εδω στο ποστ.
...Ευχαριστώ πολλύ that did the trick!!!!

Γιαί όμως σάν όρισμα στην insertAtFront(Object b) μπαίνει απευθείας char χωρίς πρόβλημα??...

~Yesterday is History, Tommorow's a Mystery...But Today is a Gift...And That's Why They Call It Present
~

- stoupeace
- Wow! Terabyte level
- Posts: 5372
- Joined: Tue Aug 26, 2008 4:08 pm
- Academic status: High school
- Gender: ♀
Re: απορια σε java
Οταν εχεις όρισμα Object μπορει να μπει οτιδηποτε στη θεση του, ειναι η μαμά classKostas1601 wrote:Γιαί όμως σάν όρισμα στην insertAtFront(Object b) μπαίνει απευθείας char χωρίς πρόβλημα??...
Mε αλλα λογια το char ειναι Object, το Object πρεπει να το καστάρεις σε (Character) οπως ειπε ο abu
Η καλύτερη μπάντα όλου του κόσμου: Sonata Antartika
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
Mpomp is building an army army. And I got my head back.
░░░░░███████ ]▄▄▄▄▄▄▄▄
▂▄▅█████████▅▄▃▂ ____☻/︻╦╤─
Il███████████████████]. /▌
_◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤.. . / \
- abujafar
- Mbyte level
- Posts: 651
- Joined: Wed Dec 03, 2008 2:49 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: Marmaras
Re: απορια σε java
Γιατι κανει autoboxing απο μονη της η Java και το βαζει.Kostas1601 wrote: Γιαί όμως σάν όρισμα στην insertAtFront(Object b) μπαίνει απευθείας char χωρίς πρόβλημα??...
- cyberpython
- Mbyte level
- Posts: 654
- Joined: Wed Nov 21, 2007 8:18 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: Αθηνα
- Contact:
Re: απορια σε java
Από την έκδοση 5 και έπειτα (προσοχή γιατί μερικά συστήματα - π.χ. Δίας - τρέχουν πολύ παλαιότερες εκδόσεις).abujafar wrote:Γιατι κανει autoboxing απο μονη της η Java και το βαζει.Kostas1601 wrote: Γιαί όμως σάν όρισμα στην insertAtFront(Object b) μπαίνει απευθείας char χωρίς πρόβλημα??...
- tsilochr
- Wow! Terabyte level
- Posts: 3246
- Joined: Tue Mar 16, 2004 2:47 pm
- Academic status: PhD
- Gender: ♂
- Location: mm.aueb.gr
- Contact:
Re: απορια σε java
Αυτό είναι ένα πάρα πολύ κακό χαρακτηριστικό της γλώσσας που μπορεί να δημιουργήσει πολλά κουλά προβλήματα αν δεν ξέρεις 100% τι προγραμματίζεις. Έχει μερικά εδώabujafar wrote:Γιατι κανει autoboxing απο μονη της η Java και το βαζει.Kostas1601 wrote: Γιαί όμως σάν όρισμα στην insertAtFront(Object b) μπαίνει απευθείας char χωρίς πρόβλημα??...
http://video.google.com/videoplay?docid ... 5401838409#
Σε πρώτη φάση αφιέρωσε χρόνο να δεις τα generics.
- Kostas1601
- Mbyte level
- Posts: 695
- Joined: Sat Aug 29, 2009 12:30 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: απορια σε java
Παιδιά, αντιμετόπισα το εξής τελείως παράξενο πρόβλημα :
έχω μια for η οποία όσο επαναλαμβάνεται εκτυπώνει ένα μύνημα και δέχεται μια τιμή μεσω Scanner ...στην τελευτάια input απλά δέν εμφανίζεται κέρσορας για input string...δέν μπορώ να καταλάβω γιατι...
Εάν γράψω μία ακόμα ακριβώς ίδια εντολή , δέν θα δουλέψει στην πρώτη, αλλα στην δεύτερη θα δουλέψει κανονικά....
ο κώδικας είναι ο εξής :

έχω μια for η οποία όσο επαναλαμβάνεται εκτυπώνει ένα μύνημα και δέχεται μια τιμή μεσω Scanner ...στην τελευτάια input απλά δέν εμφανίζεται κέρσορας για input string...δέν μπορώ να καταλάβω γιατι...
Εάν γράψω μία ακόμα ακριβώς ίδια εντολή , δέν θα δουλέψει στην πρώτη, αλλα στην δεύτερη θα δουλέψει κανονικά....
ο κώδικας είναι ο εξής :
Code: Select all
System.out.println("Parakalw eisagete to onoma tou foithth:");
eisagwgh = input.nextLine();
System.out.println("Parakalw eisagete ton ari8mo mhtrwou tou foithth:");
ari8mos = input.nextInt();
String ari8mos1 = Integer.toString(ari8mos);
System.out.println("Parakalw eisagete to ba8mo tou foithth sto ma8hma:");
int ba8mos = input.nextInt();
String ba8mos1 = Integer.toString(ba8mos);
System.out.println("thelete na synexisete thn eisagwgh stoixeiwn?");
String yo = input.nextLine(); // <-----AYTH DEN DOYLEUEI.....
System.out.println("thelete na synexisete thn eisagwgh stoixeiwn?");
String yoz = input.nextLine(); //<------AUTH DOYLEUEI KANONIKA...... Alla mono ean mpei meta apo thn prohgoumenh...


~Yesterday is History, Tommorow's a Mystery...But Today is a Gift...And That's Why They Call It Present
~

- Loner
- Venus Former Team Member
- Posts: 4004
- Joined: Fri Oct 26, 2007 11:08 pm
- Academic status: N>4
- Gender: ♂
- Location: Στη ρωγμή του χρόνου
Re: απορια σε java
οπότε μάλλον κάτι παίζει με τα lines...Αν το argument που δίνεις από το πληκτρολόγιο είναι μία λέξη (ένα token) μπορείς να χρησιμοποιήσεις την next(); αντί για την nextLine();Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.
You either die a Spongebob or live long enough to see yourself become the Squidward.
- Kostas1601
- Mbyte level
- Posts: 695
- Joined: Sat Aug 29, 2009 12:30 pm
- Academic status: Alumnus/a
- Gender: ♂
Re: απορια σε java
Ευχαριστώ πολλύ....δέν θα το έβρισκα με τίποτα...Να σαι καλαLoner wrote:οπότε μάλλον κάτι παίζει με τα lines...Αν το argument που δίνεις από το πληκτρολόγιο είναι μία λέξη (ένα token) μπορείς να χρησιμοποιήσεις την next(); αντί για την nextLine();Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.


~Yesterday is History, Tommorow's a Mystery...But Today is a Gift...And That's Why They Call It Present
~

- abujafar
- Mbyte level
- Posts: 651
- Joined: Wed Dec 03, 2008 2:49 am
- Academic status: Alumnus/a
- Gender: ♂
- Location: Marmaras
Re: απορια σε java
Νομιζω μπορεις επισης να βαζεις ενα nextLine() μονο του πριν τελειωσει το for για να καθαριζει ο buffer και θα σου δουλευει κομπλε.Kostas1601 wrote:Ευχαριστώ πολλύ....δέν θα το έβρισκα με τίποτα...Να σαι καλαLoner wrote:οπότε μάλλον κάτι παίζει με τα lines...Αν το argument που δίνεις από το πληκτρολόγιο είναι μία λέξη (ένα token) μπορείς να χρησιμοποιήσεις την next(); αντί για την nextLine();Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.
Since this method continues to search through the input looking for a line separator, it may buffer all of the input searching for the line to skip if no line separators are present.![]()
Δεν ειμαι 100% σιγουρος, κατα 90%.
- Scorpion311
- Kilobyte level
- Posts: 379
- Joined: Sat Jun 06, 2009 12:11 pm
- Academic status: 4th year
- Gender: ♂
Re: απορια σε java
λοιπον, οριζω εναν πινακα 2 διαστ εστω α[][] που εχει μεσα object, μετα οριζω συναρτηση εστω public void omg(Object [][] b),οταν την καλω omg(a)οτι επεξεργασια και να κανω στον b την παθενει και ο α...ειναι λογικο αυτο???εχω χαθει




Re: απορια σε java
http://www.yoda.arachsys.com/java/passing.htmlScorpion311 wrote:λοιπον, οριζω εναν πινακα 2 διαστ εστω α[][] που εχει μεσα object, μετα οριζω συναρτηση εστω public void omg(Object [][] b),οταν την καλω omg(a)οτι επεξεργασια και να κανω στον b την παθενει και ο α...ειναι λογικο αυτο???εχω χαθει![]()
![]()
http://foss.aueb.gr the penguin strikes back <(' ) | channel #foss-aueb @ irc.freenode.net
Play and help!

-
- Kilobyte level
- Posts: 263
- Joined: Fri Apr 24, 2009 5:51 pm
- Academic status: 4th year
- Gender: ♂
- Location: Γλυφάδα, Αθήνα
- Contact:
Re: απορια σε java
Κάνε post τον κώδικά σου. Σύμφωνα με τα όσα λες έχεις:Scorpion311 wrote:λοιπον, οριζω εναν πινακα 2 διαστ εστω α[][] που εχει μεσα object, μετα οριζω συναρτηση εστω public void omg(Object [][] b),οταν την καλω omg(a)οτι επεξεργασια και να κανω στον b την παθενει και ο α...ειναι λογικο αυτο???εχω χαθει![]()
![]()
Code: Select all
public static void main(String[] args)
{
Object a[][] = new Object[m][n];
omg(a);
}
....
public static void omg(Object[][] b)
{
....
}
Με λίγα λόγια, το πρόγραμμά σου αυτή τη στιγμή τρέχει όπως θα έπρεπε να τρέχει. Εσύ τι ακριβώς θες να κάνεις?
- Scorpion311
- Kilobyte level
- Posts: 379
- Joined: Sat Jun 06, 2009 12:11 pm
- Academic status: 4th year
- Gender: ♂
Re: απορια σε java
εγω θελω να κανω κατι στον b χωρις να αλλαξει ο a. θελω να αλλαξω μια τιμη να υπολογισω κατι και να γυρισω στην αρχικη κατασταση χωρις να εχει γινει καποια αλλαγη...γινεται αυτο?
-
- Kilobyte level
- Posts: 263
- Joined: Fri Apr 24, 2009 5:51 pm
- Academic status: 4th year
- Gender: ♂
- Location: Γλυφάδα, Αθήνα
- Contact:
Re: απορια σε java
Τα αντικείμενα στη Java by default περνιούνται by Reference (άρα οι τιμές των μεταβλητών τους αλλάζουν όταν τις πειράζεις σε μία συνάρτηση). Αν δεν θες να αλλάξουν, πολύ απλά θα περάσεις τις τιμές που θες (του αντικειμένου) σε κάποιες άλλες τοπικές μεταβλητές μέσα στη συνάρτηση και θα κάνεις τον υπολογισμό σου με αυτές.Scorpion311 wrote:εγω θελω να κανω κατι στον b χωρις να αλλαξει ο a. θελω να αλλαξω μια τιμη να υπολογισω κατι και να γυρισω στην αρχικη κατασταση χωρις να εχει γινει καποια αλλαγη...γινεται αυτο?
- Scorpion311
- Kilobyte level
- Posts: 379
- Joined: Sat Jun 06, 2009 12:11 pm
- Academic status: 4th year
- Gender: ♂
Re: απορια σε java
το προβλημα ειναι τα αντικειμενα, ετσι? αν εγω φτιαξω εναν πινακα ιδιων διαστασεων και περιεχει τις int μεταβλητες των αντηικειμενων που με ενδιαφερουν και χρησιμοποιω αυτο αντι τα objects, τοτε απο κληση σε κληση της συναρτησης θα αλλαζουν μονο τοπικα και οχι και τα προηγουμενα ετσι?Feth wrote:Τα αντικείμενα στη Java by default περνιούνται by Reference (άρα οι τιμές των μεταβλητών τους αλλάζουν όταν τις πειράζεις σε μία συνάρτηση). Αν δεν θες να αλλάξουν, πολύ απλά θα περάσεις τις τιμές που θες (του αντικειμένου) σε κάποιες άλλες τοπικές μεταβλητές μέσα στη συνάρτηση και θα κάνεις τον υπολογισμό σου με αυτές.Scorpion311 wrote:εγω θελω να κανω κατι στον b χωρις να αλλαξει ο a. θελω να αλλαξω μια τιμη να υπολογισω κατι και να γυρισω στην αρχικη κατασταση χωρις να εχει γινει καποια αλλαγη...γινεται αυτο?