forum.math.uoa.gr

Forum του Τμήματος Μαθηματικών
Ημερομηνία 22 Σεπ 2017, 22:42

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απάντηση στο θέμα  [ 6 δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 25 Ιαν 2010, 15:19 
Χωρίς σύνδεση
Regular Forumer

Εγγραφη: 15 Σεπ 2008, 13:36
Δημοσ.: 108
Στις ενδεικτικες λυσεις ασκησεων προγραμματισμου γιατι οταν παει να φτιαξει καποια μεθοδο αρχηζει με
public int method1(int x)

και οχι με

public static int method1(int x)

στην μεθοδο παντα static δεν βαζουμε?


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης: Re: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 25 Ιαν 2010, 19:27 
Χωρίς σύνδεση
Regular Forumer

Εγγραφη: 12 Μαρ 2006, 23:50
Δημοσ.: 442
Τοποθεσια: Άγιος Στέφανος
Στην Java υπάρχουν μέθοδοι που μπορεί να είναι static ή οχι! Η διαφορά είναι η εξής: Αν η μέθοδος πρόκειται να καλεστεί μέσω κάποιου αντικειμένου της κλάσης τότε πρέπει να δηλωθεί ως static, αλλιώς ο compiler θα διαμαρτύρεται. Αν η μέθοδος όμως πρόκειται να καλεστεί από μία υποκλάσση (δηλαδή κλάση που κληρονομεί τις ιδιότητες της αρχικής) τότε δε θα είναι static μέθοδος. Ας υποθέσουμε ότι η κλάση σου είναι η class1 και η μέθοδος σου είναι η method1, που είναι static. Τότε class1 cls = new class1() δημιουργεί ένα σντικείμενο της κλάσης το cls. Αν θέλουμε να καλέσουμε τη μέθοδο method1 πρέπει να καλέσουμε cls.method1(); Έτσι καλείται η static μέθοδος. Ας υποθέσουμε τώρα ότι έχεις μια υποκλάση της class1 την class2, δηλαδή public class2 extends class1. Τότε η μέθοδος method1 είναι στην κλάση class1 και απλά μπορούμε να γράψουμε super.method1(); Στην περίπτωση αυτή ΔΕ χρειάζεται να είναι static.

Ελπίζω να βοήθησα!

_________________
Maths are so beautiful as a statue....


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης: Re: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 29 Απρ 2010, 18:04 
Χωρίς σύνδεση
Forum Administrator
Άβαταρ μέλους

Εγγραφη: 10 Μαρ 2006, 14:02
Δημοσ.: 227
Τοποθεσια: Εδώ
Στην Java όταν μια μέθοδος μίας κλάσης δηλώνεται ως static, μπορούμε να την καλέσουμε χωρίς να δημιουργήσουμε αντικείμενο της κλάσης.



Π.χ. έστω η κλάση Class1:

public class Class1 {

public int sum(int a, int b) {

return a+b;

}

}

για να καλέσουμε την μέθοδο sum στον κώδικα μας θα πρέπει να φτιάξουμε πρώτα ένα αντικείμενο της κλάσης Class1, δηλαδή:

int c;

Class1 c1 = new Class1();

c = c1.sum(5, 10);



Αν η μέθοδος ήταν δηλωμένη ως static τότε θα μπορούσαμε να την καλέσουμε χωρίς να φτιάξουμε αντικείμενο της κλάσης Class1, για παράδειγμα:

public class Class2 {

public static int sum(int a, int b) {

return a+b;

}

}

για να καλέσουμε την μέθοδο sum στον κώδικα γράφουμε:

int c;

c = Class2.sum(5, 10);





Γενικά για τις μεθόδους ισχύουν τα εξής:

- Οι κανονικές μέθοδοι (όχι static) μιας κλάσης έχουν άμεση πρόσβαση στις μεταβλητές και στις μεθόδους του αντικειμένου της κλάσης.

- Οι κανονικές μέθοδοι μιας κλάσης έχουν άμεση πρόσβαση στις static μεταβλητές και static μεθόδους της κλάσης.

- Οι static μέθοδοι έχουν άμεση πρόσβαση στις static μεταβλητές και static μεθόδους της κλάσης.

- Οι static μέθοδοι ΔΕΝ έχουν άμεση πρόσβαση στις κανονικές (όχι static) μεταβλητές και στις κανονικές μεθόδους του αντικειμένου της κλάσης (θα πρέπει να ορίσουμε σε ποιο αντικείμενο αναφέρονται). (Προφανώς στις static μεθόδους δεν μπορεί να χρησιμοποιηθεί ο όρος this)

Πηγή: http://java.sun.com/docs/books/tutorial/java/javaOO/classvars.html

_________________
"A program with a colorful GUI is like a woman with too much makeup. Shiny on the outside - awful on the inside."


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης: Re: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 22 Φεβ 2015, 11:08 
Χωρίς σύνδεση
Regular Forumer

Εγγραφη: 20 Φεβ 2013, 11:37
Δημοσ.: 164
Γνωρίζει κάποιος αν οι αλλαγές στη Java σε σχέση με προηγούμενες εκδόσεις είναι σημαντικές; Έχω ένα παλιό βιβλίο που αναφέρεται στη Java 2, και αναρωτιέμαι αν έχει νόημα να διαβάσω από αυτό ή είναι εντελώς παρωχημένο και δεν θα βγάλω άκρη;


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης: Re: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 23 Φεβ 2015, 13:44 
Χωρίς σύνδεση
Regular Forumer
Άβαταρ μέλους

Εγγραφη: 25 Σεπ 2007, 17:31
Δημοσ.: 4228
Μπα, πάνω κάτω ίδια θα ναι, εγώ θυμάμαι έφτιαχνα κάποια προγραμματάκια με βιβλίο του 2005 το 2011, η java που λες πρέπει να ναι και πιο καινούργια

_________________
https://www.youtube.com/watch?v=wbZuBDJVHEI


Κορυφή
 Προφίλ  
 
 Θέμα δημοσίευσης: Re: ΑΠΟΡΙΑ JAVA
ΔημοσίευσηΔημοσιεύτηκε: 23 Φεβ 2015, 17:13 
Χωρίς σύνδεση
Regular Forumer

Εγγραφη: 20 Φεβ 2013, 11:37
Δημοσ.: 164
Ευχαριστώ πολύ για την απάντηση barney :)


Κορυφή
 Προφίλ  
 
Τελευταίες δημοσιεύσεις:  Ταξινόμηση κατά  
Δημιουργία νέου θέματος Απάντηση στο θέμα  [ 6 δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μελη σε συνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group