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();;;;;;

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

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

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

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

Φίλε όταν την ζητάς τα ξαναγράφεις όμως τα χαρακτηριστικά ε?

Δώσε μου ένα παράδειγμα αν θες

Ευχαριστώ

Ξέρει κανείς να μου δώσει ένα αναλυτικό παράδειγμα για τις κλάσεις;

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

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

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

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

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

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

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

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:

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

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

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

Archived

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

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

Important Information

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