Jump to content



Δεν μπορώ να καταλάβω την είναι μια κλάση


dpa

Recommended Posts

Δεν μπορώ να καταλάβω την είναι μια κλάση

και πως λειτουργεί

το βιβλίο που έχω δείχνει ένα παράδειγμα αλλά δεν το καταλαβαίνω.

Μήπως μπορεί να με βοηθήσει κάποιος;;;

το παράδειγμα που έχει το βιβλίο είναι:

<?php

class myClass {

var $color = "silver";

var $make = "Mazda";

var $model = "Protege5";

}

$car = new myCar();

echo "I drive a ".$car->color." ".$car->make." ".$car->model;

?>

Δεν μπορώ να καταλάβω τι είναι αυτά

Αφού πρέπει να γράψεις όλα αυτά για να σου εμφανίσει την μάρκα το μοντέλο και το χρώμα γιατί να μην τα γράψεις σε ένα array()

Γιατί βάζει το new μπροστά από το myCar();;;;;;

Αν μπορεί κάποιος να με βοηθήσει θα το ευχαριστούσα

Link to comment
Share on other sites

Η κλάση είναι μιά οντότητα. Κάθε οντότητα έχει κάποια χαρακτηριστικά (properties) και κάποιες δυνατότητες (methods)

Στο array φυσικά μπορείς να έχεις μόνο properties.

Το new είναι constructor. Σημαίνει ότι δημιουργείς ένα καινούριο αμάξι. Μετά του λες ότι είναι κόκκινο, μάρκας Ferrari, μοντέλο F430. Όποια στιγμή αργότερα ζητήσεις αυτή την κλάση, έρχεται μαζί με τις ιδιότητές της.

Link to comment
Share on other sites

Αρχική απάντηση από Wizard! [Σήμερα, στις 17:12]

Η κλάση είναι μιά οντότητα. Κάθε οντότητα έχει κάποια χαρακτηριστικά (properties) και κάποιες δυνατότητες (methods)

Στο array φυσικά μπορείς να έχεις μόνο properties.

Το new είναι constructor. Σημαίνει ότι δημιουργείς ένα καινούριο αμάξι. Μετά του λες ότι είναι κόκκινο, μάρκας Ferrari, μοντέλο F430. Όποια στιγμή αργότερα ζητήσεις αυτή την κλάση, έρχεται μαζί με τις ιδιότητές της.

ακριβως! και γω πριν 2 βδομαδες τα εμαθα. java newbie.

και κατι που δεν μπορω να καταλαβω εγω ειναι γιατι σε μια κλαση που εκανα μου βγαζει οτι το ^ μου λεει οτι δεν μπορει να δηλωθει ως double ή int.

Link to comment
Share on other sites

Eπειδή με ΡΗΡ δεν έχω ασχοληθεί θα στα γράψω με ψευδοκώδικα:

class Car

{

variable color;

variable make;

variable model;

Car()

{

color = Blue;

make = Opel;

model = Astra;

};

Car(tempColor,tempMake,tempModel)

{

color = tempColor;

make = tempMake;

model = tempModel;

};

getColor{return color;};

}

Λοιπόν έχεις την κλάση Car.

Aυτή έχει ως μέλη της τα color,make,model.Αυτά χαρακτηρίζουν το αυτοκίνητο,

δηλαδή την κλάση Car.

To γράφεις σε κλάση γιατί δεν θέλεις κάθε φορά να γράφεις όλο το από πάνω +

άλλα πολλά που δεν είναι επί του παρόντος.

Έστω ότι στο πρόγραμμά σου θέλεις να φτιάξεις ένα νέο αυτοκίνητο.

Χρησιμοποιείς το new.

Έχω γράψει δύο μεθόδους Car() και Car(x,x,x). Aυτοί είναι οι λεγόμενοι constructors.

Δηλαδή δημιουργοί ελληνιστί δηλαδή κάνοντας new αυτούς δημιουργείς ένα νέο

αυτοκίνητο. Το new ειναι για να δεσμεύσεις μνήμη. Κάθε φορά που φτιάχνεις ένα αυτοκίνητο χρειάζεσαι μια δυναμική μνήμη να συγκρατεί τα στοιχεία του επομένως τις

ιδιότητές του.

Mπορείς να φτιάχνεις κάθε φορά το αυτοκίνητο Opel καλώντας new Car() ή

να φτιάξεις ένα άλλο καλώντας την new Car(x,x,x) όπου εσύ θα βάλεις το

χρώμα,μάρκα και μοντέλο.

π.χ.

Car temp1 = new Car();

Car temp2 = new Car(black,BMW,Z3);

Η μεταβλητή temp1 είναι ένα blue Opel Astra.

H temp2 είναι ένα black BMW Z3.

Aν θες να δεις το χρώμα (να το εκτυπώσεις) τότε θα καλέσεις

temp1.getColor() και temp2.getColor(). Έτσι έχεις πρόσβαση στα μέλη της κλάσης

σου.Δηλαδή φτιάχνοντας μια συνάρτηση που θα επιστρέφει ένα μέλος της αυτό που θες.

Αυτά για αρχή (μάλλον ασυνείδητα θέλω Ζ3) :p

Και η διαφορά πέρα από αυτά που είπαν τα παιδιά από πίνακα(array) είναι ότι ο πίνακας είναι στατικός δηλαδή για παράδειγμα βάζεις 10 αμάξια και δεν αλλάζει αυτό.

Ενώ με τις κλάσεις είσαι πιο ευέλικτος. Μπορείς ας πούμε με ένα Loop να φτιάξεις 1000 αμάξια χρώματος μπλε μάρκας opel άστρα.

Με τον πίνακα θα έπρεπε να το γράψεις 1000 φορές :bye:

Link to comment
Share on other sites

Πανε αγορασε το PHP 5 For Dummies, τα εξηγει πολυ καλά. Τώρα δεν μπορω να σου εξηγησω ολοκληρο κεφαλαιο αφού δεν έχεις καταλαβει τα βασικα, δηλαδη τον τροπο σκέψης του OOp και της δόμησής του.

Γενικα πάντως δεν είναι κατι δύσκολο και μην απελπιζεσαι. Απλά θέλει μελέτη και να το ψάξεις λιγο.

Δεν εχω τωρα τον χρονο, αργοτερα αν μπορεσω θα ποσταρω ξανα.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.