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

Arguments σε Objective C


zarzonis

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

Καλησπέρα. Εχω ξεκινήσει να μαθαίνω προγραμματισμό σε Objective C με το βιβλίο του Stephen Kochan και έχω μια απορία. Δεν έχω καταλάβει τι ακριβώς είναι τα arguments.

Πχ λέει:

-( void) setNumerator: (int) n;

-(void) setDenominator: (int) d;

 

These are both instance methods that return no value. Each method takes an integer argument, which is indicated by the (int) in front of the argument name. In the case of setNumerator, the name is n. the name is arbitrary and is the name the method uses to refer to the argument.

 

Πραγματικά αν μπορούσε κάποιος να μου εξηγήσει τι ακριβώς είναι τα arguments και αυτά τα setNumerator και setDenominator από που προέκυψαν, θα του ήμουν ευγνώμων.

 

Sent from my iPhone using Insomnia

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

<p>Έχεις προγραμματίσει ξανά ή είναι η πρώτη φορά ;</p>

 

Μόνο στο σχολείο αυτή που κάνουμε στην 3η λυκείου που είναι ψευδογλώσσα στην ουσία...

 

Sent from my iPhone using Insomnia

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ωραια.

Στο λύκειο δεν είχατε πει για συναρτήσεις και υποπρογράμματα ;
Μέθοδος = συνάρτηση

Νομίζω καλύτερα να ασχοληθείς με κάποια άλλη γλώσσα,γιατί η objective C θα σε μπερδέψει αρκετά.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θέλω να ασχοληθώ με την συγκεκριμένη γιατί με ενδιαφέρει ο προγραμματισμός για iOS...

 

Οι μέθοδοι(methods) κατάλαβα τι είναι... Το εξηγεί αναλυτικά μέσα στο βιβλίο. Τα arguments δεν κατάλαβα τι είναι. Τα πετάει ξαφνικά σε αυτό το σημείο και δεν τα εξηγεί καθόλου. Εψαξα και στο Internet και δεν βρήκα κάτι που να απαντάει σε αυτό που θέλω. Αν μπορείς και έχεις χρόνο να μου εξηγήσεις τι ακριβώς είναι αυτό που ρωτάω θα σου ήμουν ευγνώμων...

 

Sent from my iPhone using Insomnia

 

Θέλω να ασχοληθώ με την συγκεκριμένη γιατί με ενδιαφέρει ο προγραμματισμός για iOS...<br><br>

Οι μέθοδοι(methods) κατάλαβα τι είναι... Το εξηγεί αναλυτικά μέσα στο βιβλίο. Τα arguments δεν κατάλαβα τι είναι. Τα πετάει ξαφνικά σε αυτό το σημείο και δεν τα εξηγεί καθόλου. Εψαξα και στο Internet και δεν βρήκα κάτι που να απαντάει σε αυτό που θέλω. Αν μπορείς και έχεις χρόνο να μου εξηγήσεις τι ακριβώς είναι αυτό που ρωτάω θα σου ήμουν ευγνώμων...<br><br>

Sent from my iPhone using Insomnia

EDIT: Στο σχολείο ναι μιλήσαμε για προγράμματα και υποπρογράμματα και για συναρτήσεις. Πολύ εύκολα πράγματα. Η σχολή που θέλω έχει αρκετό προγραμματισμό μέσα και επειδή πραγματικά μου αρέσει πολύ, είπα να ασχοληθώ από τώρα το καλοκαίρι και να μάθω...

 

Sent from my iPhone using Insomnia

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Θέλω να ασχοληθώ με την συγκεκριμένη γιατί με ενδιαφέρει ο προγραμματισμός για iOS...

 

Οι μέθοδοι(methods) κατάλαβα τι είναι... Το εξηγεί αναλυτικά μέσα στο βιβλίο. Τα arguments δεν κατάλαβα τι είναι. Τα πετάει ξαφνικά σε αυτό το σημείο και δεν τα εξηγεί καθόλου. Εψαξα και στο Internet και δεν βρήκα κάτι που να απαντάει σε αυτό που θέλω. Αν μπορείς και έχεις χρόνο να μου εξηγήσεις τι ακριβώς είναι αυτό που ρωτάω θα σου ήμουν ευγνώμων...

 

Sent from my iPhone using Insomnia

 

 

EDIT: Στο σχολείο ναι μιλήσαμε για προγράμματα και υποπρογράμματα και για συναρτήσεις. Πολύ εύκολα πράγματα. Η σχολή που θέλω έχει αρκετό προγραμματισμό μέσα και επειδή πραγματικά μου αρέσει πολύ, είπα να ασχοληθώ από τώρα το καλοκαίρι και να μάθω...

 

Sent from my iPhone using Insomnia

 

Μπαινεις στα βαθια χωρις να ξερεις να κολυμπας :)

 

Τα arguments των μεθόδων δεν διαφέρουν σε τίποτα από τα ορίσματα των συναρτήσεων/υποπρογραμμάτων που έκανες στο Λύκειο.Τα χρησιμοποιούμε για να παραμετροποιήσουμε τη λειτουργία των μεθόδων.

 

Θα έγραφα περισσότερα,αλλά στη περίπτωση σου το αποφεύγω,γιατί από ψευδογλώσσα πηγαίνεις αμέσως σε αντικειμενοστρεφή.Περισσότερο κακό θα σου κάνω παρά καλό.

 

edit:

 

Τώρα είδα το edit που έκανες.Μη βιάζεσαι.Όλα θα έρθουν στην ώρα τους.Τώρα είναι η ώρα για μπάνια B)

 

Σε ποια σχολή πέρασες ;

Επεξ/σία από ChRis6
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

 

Θέλω να ασχοληθώ με την συγκεκριμένη γιατί με ενδιαφέρει ο προγραμματισμός για iOS...

 

Οι μέθοδοι(methods) κατάλαβα τι είναι... Το εξηγεί αναλυτικά μέσα στο βιβλίο. Τα arguments δεν κατάλαβα τι είναι. Τα πετάει ξαφνικά σε αυτό το σημείο και δεν τα εξηγεί καθόλου. Εψαξα και στο Internet και δεν βρήκα κάτι που να απαντάει σε αυτό που θέλω. Αν μπορείς και έχεις χρόνο να μου εξηγήσεις τι ακριβώς είναι αυτό που ρωτάω θα σου ήμουν ευγνώμων...

 

Sent from my iPhone using Insomnia

 

 

EDIT: Στο σχολείο ναι μιλήσαμε για προγράμματα και υποπρογράμματα και για συναρτήσεις. Πολύ εύκολα πράγματα. Η σχολή που θέλω έχει αρκετό προγραμματισμό μέσα και επειδή πραγματικά μου αρέσει πολύ, είπα να ασχοληθώ από τώρα το καλοκαίρι και να μάθω...

 

Sent from my iPhone using Insomnia

Μπαινεις στα βαθια χωρις να ξερεις να κολυμπας :)

 

Τα arguments των μεθόδων δεν διαφέρουν σε τίποτα από τα ορίσματα των συναρτήσεων/υποπρογραμμάτων που έκανες στο Λύκειο.Τα χρησιμοποιούμε για να παραμετροποιήσουμε τη λειτουργία των μεθόδων.

 

Θα έγραφα περισσότερα,αλλά στη περίπτωση σου το αποφεύγω,γιατί από ψευδογλώσσα πηγαίνεις αμέσως σε αντικειμενοστραφή.Περισσότερο κακό θα σου κάνω παρά καλό.

 

edit:

 

Τώρα είδα το edit που έκανες.Μη βιάζεσαι.Όλα θα έρθουν στην ώρα τους.Τώρα είναι η ώρα για μπάνια B)

 

Σε ποια σχολή πέρασες ;

Δεν πέρασα ακόμα αλλά ο βαθμός που έχω γράψει με κάνει να περνάω σε όποιο Πολυτεχνείο θέλω... Ειδικά με τα θέματα που έβαλαν φέτος και με ποσοστά 70% σε μαθηματικά και φυσική κάτω από την βάση... Ηλεκτρολόγων μηχανικών θέλω... Εχω φίλο μου που πέρασε πέρισυ και λέει ότι έχουν C και Java. Το ξέρω ότι η C δεν είναι αντικειμενοστραφής. Εχω παραγγείλει και ένα βιβλίο για Java. Αυτό θα με βοηθήσει περισσότερο να ξεκινήσω στον αντικειμενοστραφή προγραμματισμό;Τον προγραμματισμό τον έχω σαν χόμπι. Μου αρέσει πολύ να ασχολούμαι στον ελεύθερο χρόνο...Sent from my iPhone using Insomnia
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συγχαρητήρια !!!
Ναι σε πολυτεχνικές σχολές κυρίως C και Java κάνουν.

Εξαρτάται ποιο βιβλίο πήρες.Εγώ πιστεύω οτι καλό θα ήταν να αρχίσεις με C.Με τη java θα έχεις στην αρχή τα ίδια προβλήματα που αντιμετωπίζεις και με την objective C.

Άλλωστε θα δεις  πολλά νήματα εδώ  με απορίες σε C.Υπάρχουν πολλά μέλη που μπορούν να σε βοηθήσουν και παρακολουθούν τακτικά το forum

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

http://www.amazon.co.uk/gp/product/0273759760/ref=oh_details_o00_s01_i01?ie=UTF8&psc=1

 

Αυτό πήρα για Java με βάση τις καλύτερες κριτικές που διάβασα. Η μετάβαση από C σε objective c μετά θα είναι ευκολότερη; Γιατί ο κύριος στόχος μου είναι η objective c για develpment σε iOS. Το βιβλίο της Java το πήρα με σκοπό να με εισάγει καλύτερα στον αντικειμενοστραφή προγραμματισμό.

Αν έχεις υπόψιν σου κανένα καλό βιβλίο είτε σε ελληνικά είτε σε αγγλικά πρότεινέ μου. Θα ήθελα να είναι αναλυτικό όμως.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι αν ξέρεις C και τα βασικά του αντικειμενοστρεφή προγραμματισμού η obj C είναι παιχνιδάκι.Μετά το πρώτο έτος σε μια σχολή προγραμματισμού θα είσαι σε θέση πιστεύω να γράψεις απλές εφαρμογές για iOS.

Τώρα κάποιο βιβλίο δεν έχω στο νου μου,γιατί ποτέ δεν μου ήταν αναγκαίο.Στο internet βρίσκεις ΑΠΕΙΡΕΣ γραμμές κώδικα σε C και java

Βάλε και ένα linux στο pc σου και θα είσαι έτοιμος για προγραμματισμό.Εκτός αν έχεις mac μένεις όπως είσαι...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

hackintosh έχω εδώ και 3 χρόνια τώρα... Μπορώ κανονικά μέσα από Mac να προγραμματίσω σε C έτσι; Linux δεν με πειράζει να βάλω... Windows δεν θέλω με τίποτα...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσωπικά πιστεύω ότι η αρχή με την Objective C είναι μία καλή αρχή!

 

Δεν σου ανοίγει ορίζοντες βέβαια... κυρίως λόγω της περίεργης σύνταξης που είναι κληρονομία από την SmallTalk. Δηλαδή, η σύνταξη Java και C++ μοιάζει αρκετά... η σύνταξη Objective C και C++ δεν μοιάζει σχεδόν καθόλου. 

 

Όμως, είναι ωραία γλώσσα για αρχή κυρίως γιατί μαθαίνεις μηχανισμούς που δεν τονίζονται τόσο σε άλλες πιο "παραδοσιακές" γλώσσες. 

 

Στην ερώτησή σου τώρα...

 

Καταρχάς, διάβασε Booch. 

 

Από εκεί και πέρα, κάθε μέθοδος κάνει κάτι. Για να το κάνει, χρειάζεται δεδομένα. Αυτά είτε μπορεί να τα βρει επειδή τα έχει το αντικείμενο (attributes) είτε πρέπει κάποιος να της τα δώσει. 

 

Επίσης, το εάν θα πάρει ή όχι δεδομένα από άλλον το δηλώνεις όταν "φτιάχνεις" την μέθοδο. Εάν δεν παίρνει δεδομένα απλά βάζεις void. Εάν παίρνει όμως; Τι τύπου δεδομένα θα πάρει; Με ποιο όνομα θα αναφέρεσαι σε αυτά μέσα στον κώδικα της μεθόδου; 

 

Τα δεδομένα που παίρνει λέγονται arguments και η ονομασία που τους δίνεις είναι το πως θα τα ονομάζεις ΜΕΣΑ στον κώδικα της μεθόδου. Για αυτό λέει ο τύπος ότι τα ονόματα είναι τυχαία. Θα μπορούσες τον παρονομαστή να τον ονομάσεις Vaggeli, Maria, Litsa, deathStar, lost_ark ή ό,τι άλλο... (βολεύει όμως; ).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε ευχαριστώ πολύ για την απάντησή σου. Πιστεύω πως τώρα κάτι κατάλαβα.

Ας πούμε έχουμε τα παρακάτω methods.

 

-(void) print;

-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;

 

Το πρώτο method είναι instance method και δεν επιστρέφει τιμή άρα χρησιμοποιούμε το void. Επίσης δεν έχει arguement άρα τελειώνει εκεί το statement.

To δεύτερο και το τρίτο πάλι είναι instance method και δεν επιστρέφουν τιμή άρα χρησιμοποιούμε το void. Επίσης παίρνουν δεδομένα που ονομάζουνται arguments και είναι τύπου ακεραίου(integer). Το n και το d είναι τα ονόματα των arguments και τα δίνω ό,τι όνομα θέλω.

Το setNumerator και το setDenominator πως ακριβώς προέκυψαν; Το set έχει κάποια ειδική χρήση ή όχι; Όπου έχω λάθος, αν θες με διορθώνεις...

 

EDIT: Όταν λες να διαβάσω booch, αναφέρεσαι στον Andy Booch έτσι; Κάποιο συγκεκριμένο βιβλίο;

Ευχαριστώ και πάλι

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Booch = Grady Booch και συγκεκριμένα το βιβλίο Object-Oriented Analysis and Design with Applications

 

http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd/dp/020189551X

 

Διάβασε πρώτα τον Booch και μετά ξαναδιάβασε το βιβλίο που διαβάζεις. Θα σε βοηθήσει πάρα πολύ. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστώ,

Ναι συγγνώμη το είδα λάθος στο Google. Θα το αγοράσω τότε για να το διαβάσω. Σε αυτά που έγραψα στο προηγούμενο post μου μπορείς να μου πεις αν είναι σωστά;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

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