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

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

Δημοσ.

Καλημερα σε ολους,λοιπον παραθετω μερικα κοματια κωδικα απ το προγραμμα που δουλευω(αυτα που με ενδιαφερουν) και θα θελα να σας θεσω μερικα ερωτηματα που εχω

public class MyDvdClub
{

public static void main(String[] args
{
Movie m1 = new Movie("Rambo", (short)1980, "code1", false);
DVDClub c1 = new DVDClub();
c1.addMovie(m1);
}
}


public class Movie
{
private String title;
private short year;
private String code;
private boolean support_3D;

public Movie(String title,short year,String code,boolean support_3D)
{

this.title = title;
this.year = year;
this.code = code;
this.support_3D = support_3D;
}
}



public class DVDClub
{
private Movie[] movies;
private int counter;

public DVDClub()
{
movies = new Movie[100];
counter = 0;
}

public void addMovie(Movie m)
{
movies[counter++] = m;
}

}

Τωρα μαθαινω τους πινακες με αντικειμενα κ εχω λιγο εως αρκετα μπερδευτει.

 

1)Για να καταλαβω τι παιζει θελω να μαθω τι γινεται στην μνημη

   α)Το Αντικειμενο π.χ c1 στελνει στην μεθοδο addMovie τιην διευθυνση της m1?και εκει φτιαχνουμε       ενα  αντικειμενο τυπου Movie για να αποθηκευσουμε την διευθυνση της m1?

2)Ενα αντικειμενο δειχνει στην διευθηνση των μεταβλητων?που δειχνει ακριβως?στην πρωτη θεση του πρωτου στοιχειου?

 

Τα εχω κανει σαλατα,εχω καραμπερδευτει,οποιος εχει την καλοσυνη να μας τα ξεδιαλυνει λιγο τα πραγματα,θα ημουν υποχρεος

Δημοσ.

Η διευθυνση αντιγραφεται, οχι το αντικειμενο.

Η διευθυνση (=reference) δείχνει απλα στο αντικειμενο, Δεν εχει νοημα αρχη η τελος, δεν μπορεις να κανεις αριθμητική ωστε να δειχνει 2 byte πιο κοντα η πιο μακρια οπως στην C.

 

Ο πινακας ειναι αντικειμενο επίσης 

Δημοσ.

 

Η διευθυνση αντιγραφεται, οχι το αντικειμενο.

Η διευθυνση (=reference) δείχνει απλα στο αντικειμενο, Δεν εχει νοημα αρχη η τελος, δεν μπορεις να κανεις αριθμητική ωστε να δειχνει 2 byte πιο κοντα η πιο μακρια οπως στην C.

 

Ο πινακας ειναι αντικειμενο επίσης

 

Απλα ειχα(μαλλον λανθασμενα) την εντυπωσω οτι εδειχνε στην διεθυνση του πρωτου στοιχειου του πινακα και μετα αυξαναντας την διευθυνση κατα ενα δειχνουμε στο επομενο στοιχειο,μαλλον τα εχω κανει σαλατα ε? :-)

Δημοσ.

Όντως ξέχνα τα περι διευθύνσεων, δεν είναι C εδώ.

 

1) Για να σου λυθεί η απορία τελικά ναι, στέλνει τη διεύθυνση της m1 αλλά αυτό δεν πρέπει να σε απασχολεί. Όχι δε χρειάζεται, δεν πρέπει. Αν σε απασχολεί πας να σκεφτείς στο λάθος επίπεδο για την περίπτωση. Στη m1 δε φτιάχνεις κανένα αντικείμενο, το αντικείμενο είναι ένα εφόσον μιλάμε για class (reference type) και το πρόγραμμα κάνει μόνο ένα new. Απλώς περνάς απο δω κι απο κει διαφορετικά (αλλά προφανώς πανομοιότυπα) αντίγραφα της αναφοράς στο αντικείμενο. Το "αναφορά" είναι μια έννοια που επίτηδες η γλώσσα θέλει να αφήσει αφηρημένη για να σου περάσει το μήνυμα ότι πρέπει να σε απασχολεί μόνο το τι γίνεται (ποιά η ουσία του) και όχι το πώς ακριβώς γίνεται.

 

2) Ένα αντικείμενο δε δείχνει πουθενά, απλώς υπάρχει. Οι αναφορές σ' αυτό πάλι δε "δείχνουν", είναι απλά διαφορετικοί τρόποι να κατονομάσεις το ίδιο πράγμα, όπως π.χ. ο Μήτσος είναι ένας αλλά μπορείς ενδεχομένως να πεις "φώναξε το Μήτσο", "φώναξε τον ψηλό", "φώναξε το γιατρό", "φώναξε τον παπάρα από μέσα" και να εννοείς ακριβώς το ίδιο πράγμα. Ακόμα κι αν δεν έχεις καμία αναφορά (δεν έχεις ιδέα ούτε πού είναι ο Μήτσος ούτε πως τον λένε) αυτό δεν επηρρεάζει την ύπαρξη ή όχι του αντικειμένου.

 

3) Δεν είναι C, μην ασχολείσαι με πίνακες. Δε λέω να κάνεις τα πάντα για να το αποφύγεις, λέω ότι όταν έχεις ελεύθερη επιλογή πρέπει να είναι κάπου στο τέλος της λίστας με τις προτιμήσεις σου.

  • Like 1
Δημοσ.

 

1) Για να σου λυθεί η απορία τελικά ναι, στέλνει τη διεύθυνση της m1 αλλά αυτό δεν πρέπει να σε απασχολεί. Όχι δε χρειάζεται, δεν πρέπει. Αν σε απασχολεί πας να σκεφτείς στο λάθος επίπεδο για την περίπτωση. Στη m1 δε φτιάχνεις κανένα αντικείμενο, το αντικείμενο είναι ένα εφόσον μιλάμε για class (reference type) και το πρόγραμμα κάνει μόνο ένα new. Απλώς περνάς απο δω κι απο κει διαφορετικά (αλλά προφανώς πανομοιότυπα) αντίγραφα της αναφοράς στο αντικείμενο. Το "αναφορά" είναι μια έννοια που επίτηδες η γλώσσα θέλει να αφήσει αφηρημένη για να σου περάσει το μήνυμα ότι πρέπει να σε απασχολεί μόνο το τι γίνεται (ποιά η ουσία του) και όχι το πώς ακριβώς γίνεται.

 

2) Ένα αντικείμενο δε δείχνει πουθενά, απλώς υπάρχει. Οι αναφορές σ' αυτό πάλι δε "δείχνουν", είναι απλά διαφορετικοί τρόποι να κατονομάσεις το ίδιο πράγμα, όπως π.χ. ο Μήτσος είναι ένας αλλά μπορείς ενδεχομένως να πεις "φώναξε το Μήτσο", "φώναξε τον ψηλό", "φώναξε το γιατρό", "φώναξε τον παπάρα από μέσα" και να εννοείς ακριβώς το ίδιο πράγμα. Ακόμα κι αν δεν έχεις καμία αναφορά (δεν έχεις ιδέα ούτε πού είναι ο Μήτσος ούτε πως τον λένε) αυτό δεν επηρρεάζει την ύπαρξη ή όχι του αντικειμένου.

 

3) Δεν είναι C, μην ασχολείσαι με πίνακες. Δε λέω να κάνεις τα πάντα για να το αποφύγεις, λέω ότι όταν έχεις ελεύθερη επιλογή πρέπει να είναι κάπου στο τέλος της λίστας με τις προτιμήσεις σου.

 

Σ ευχαριστω θερμα φιλε μου,πολυ διαφωτιστικα τα οσα εγραψες,απλα ηθελα να δω τι παιζει στην μνημη με το που δημιουργειται ενα αντικειμενο,που δειχνει,ποσες θεσεις δεσμευει κτλ κτλ αλλα εφοσον μου λες οτι δεν πρεπει ν ασχολουμαι μ αυτο οκ,σταματαω να το σκαλιζω,να σαι καλα,καλο βραδυ

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...