Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Dr_Java » 06 Ιουν 2005 03:19

Ας δούμε κάποια βασικά πραγματάκια που κάνουν την Java όπως και κάποιες άλλες γλώσσες προγραμματισμού να ξεχωρίζουν από τις υπόλοιπες!!!

Τι είναι το O O Programming
Η Java όπως και άλλες γλώσσες χαρακτηρίζοντε ως Object Oriented ( O O ). Σε τετοιου ίδους γλώσσες ο προγραμματιστής γραφει κώδικα για κάποια αντικείμενα τά οποια έχει δημιουργήσει για να πετύχει τον αντίκειμενικό του σκοπό...!!! Αυτό με λίγα λόγια γίνεται σε αυτού του ίδους τις γλώσσες.

Βασικές λειτουργίες
Για να γίνουν αυτές οι γλώσσες ξεχωριστές απο τις υπόλοιπες θα πρέπει να υπάρχουν και κάποιες λειτουργίες εξησου ξεχωριστές. Η ποιό βασική είναι η κληρονομικότητα (Inheritance).

Κληρονομικότητα
Η κληρονομικότητα είναι ίσως το μεγαλύτερο χαρκτηριστικό των ΟΟΡ γλωσσων. Είναι στην ουσία αυτό που λέει και η λέξη, κάποια αντικείμενα κληρόνομουν κάποια χαρακτησηστικά κάποιων άλλων, Ας δούμε ένα παράδειγμα για να γίνουν τα πράγματα λίγο ποιο ξεκάθαρα. Όταν φτιάχνουμε ένα αντικείμενο πχ τον ανθρωπο τα κύρια χαρακτηριστικά του ποια είναι? Ας πούμε σε αυτό το παράδειγμα το σχήμα των ματιών, χρώμα ματιών, μύτη, το σχήμα πρόσωπου, υψος, κιλά. Εαν κοιτάξετε γύρο σας στον έξω κόσμο όλοι οι άνθρωποι δεν έχουν τα ίδια χαρακτηριστικά (εκτός των διδύμων :)) έτσι λοιπόν και εδώ δεν θέλουμε να φτιάξουμε όλα τα αντικείμενά μας ίδια. Δημιουργούμε την mother class «human» από την οποία κληρονομουν όλες οι υπόλοιπες. Οι subclasses κληρονομουν τα βασικά χαρακτηριστικά αλλα επισης μπορούμε να προσθέσουμε και να αφερέσουμε όσα θέλουμε.Ας δούμε παρακάτω μορφή παρουσίασης της κληρονομικότητας
Εικόνα

Classes
Οι classes είναι είναι τα αρχεία που περιλαμβάνουν των κώδικά μας. Για να φτιάξουμε μια class θα πρέπει να έχει την κατάλληλη δομή η οποία ακολουθεί...

Κώδικας: Επιλογή όλων

public class Onoma
  { //open class 
      .
      .
      . 
     Dilosi metablitwn
      .
      . 
      .
     Methodos1() 
       {
          ….
          ….
        }

     Methodos2() 
       {
          ….
          ….
        }

  } // close class  

Μεθόδοι
Οι μεθόδοι είναι στην ουσία το κυριότερο μέρος μιας class μετά την σήλωση των μεταβλητών μας. Στο προηγούμενο παράδειγμα είχαμε ως κυριο χαρακτιριστικό πχ τα ματια. Πάμε να δούμε πως φτιάχνουμε μια μέθοδο για τα μάτια:

Κώδικας: Επιλογή όλων

     public static void eyes()
       {
            ….
            Kwdikas
            …...
            ……
       }
Ολα κάλα μέχρι εδω. Βλεπετε παραπάνω τις λέξεις public, static, void, πρως το παρων
ας πούμε οτι αυτές οι λέξεις οπώς και πολλές άλλες είναι λέξεις κλειδιά που χρησιμοποιούντε από την γλώσσα για ευκολία του προγραμματιστή για να ορίσει το τι τυπο μεθόδου φτιάχνει.

H μεθοδος Constructor (κατασκευαστής)
Μέσα σε μια class έχουμε ένα πλήθος από μεταβλητές, αυτές κάπου θα πρέπει να πάρουν τις αρχικές τους τιμές οπως επισης να δεχθούν και τις τιμές που θα δόσει ας πούμε ο χρήστης ή να αλλάξουν κατα την διάρκεια εκτέλεσης του προγράμματος. Αυτες τις διαδικασίες τις κάνει το constructor method. Εδω θα πρέπει να πω οτι μπορούμε να έχουμε όσα constructor methods θελουμε μέσα σε μια class. Πάμε να δούμε όμως και την δομή του. Το constructor method πάντα παίρνει την λέξη public μπροστά και μετα το όνομα τις class. Μέσα στις παρενθέσεις μπορούμε ή να μην βάλουμε τίποτα ή να βάλουμε κάποια μεταβλητή η οποία θα γίνεται initialize(αρχηκοποιήται) με κάποια από τις μεταβλητές που προυπάρχουν μέσα στον κώδικά μας O constructor o οποίος κάνει απλά initialize τις τιμές στις μεταβλητές μας λέγεται και default constructor. Παρακάτω ακολουθεί ένα παράδειγμα από την human class για να καταλάβουμε την δομή του constructor method

Κώδικας: Επιλογή όλων

// default constructor method
public OnomaClass()
   {
        height = 0;
        name   = " "; // keno onoma
        ….
        ….
    }
ή

Κώδικας: Επιλογή όλων

public OnomaClass( String aHeigth , double aName )
   { 
        height = aHeigth;
        name  = aName;
   }
Πως δημιουργούμε ένα object
Οπως είδαμε και πριν το ΟΟΡ δουλεύει με objects. Για να δουμε τον τρόπο που τα δημιουργούμε.

Κώδικας: Επιλογή όλων

Human myObject = new Human();
ή

Κώδικας: Επιλογή όλων

Human myObject = new Human( 1.90 , "kyriakos");
Ας δουμε τώρα την επεξήγηση αυτών των statements.
1oν
Για να φτιάξουμε ένα object πρωτα πρώτα δηλώνουμε τι τύπος object είναι, σε αυτό το παράδειγμα το object μας είναι τύπου Human.
2ον
Μετα δηλώνουμε το όνομα του object, εδώ έχουμε το όνομα myObject.
3ον
Μετα έχουμε τo = new το οποιο είναι υπέυθυνο για να δημιουργηθεί το object.
4ον
Και στο τέλος έχουμε constructor method της class του object. Στη πρώτη περίπτωση η γλώσσα θα φτιάξει ένα object με κενές τιμές και στη δεύτερη θα φτιάξει ενα με αρχικές τιμές με υψος 1,90 και όνομα κυριάκος.

Στο attachment που ακολουθεί θα βρείτε μια class BankAccount που υλοποιούντε όλα τα παραπάνω εκτος της δημιουργίας του object που θα έρθει με το Μερος Β’

Ελπίζω να βοηθάει αρκετά!!! :wink:
Συνημμένα
BankAccount.rar
Sorry για τα αγγλικα σχόλια που θα δείτε στο αρχείο αλλα η class είναι φτιαγμένη για το πανεπιστήμιο μου που είναι εξίσου αγγλικο
(433 Ψηφιολέξεις) Μεταφορτώθηκε 849 φορές
Εικόνα

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από skeftomilos » 06 Ιουν 2005 19:14

Ο Doctor ξαναχτύπησε! :D

Έχω δει πολλούς και συχνά να κατηγορούν τη VB για το verbose τρόπο που ορίζει το τέλος των ρουτινών, συνθηκών κ.λπ.:

Κώδικας: Επιλογή όλων

    End If
  End Function
End Class
Αν λοιπόν σε κάθε } της Java πρέπει να βάζουμε ένα επεξηγηματικό σχόλιο, δεν είναι το ίδιο;

Κώδικας: Επιλογή όλων

    } // end if
  } // end function
} // end class
Και μια χαζή ερώτηση: με πιο πρόγραμμα ανοίγει ένα αρχείο rar; Πάντως με το WinZip δεν ανοίγει.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
manolism
Super Moderator
Δημοσιεύσεις: 6652
Εγγραφή: 25 Ιαν 2004 16:01
Τοποθεσία: Wild West
Επικοινωνία:

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από manolism » 06 Ιουν 2005 19:17

skeftomilos έγραψε: Και μια χαζή ερώτηση: με πιο πρόγραμμα ανοίγει ένα αρχείο rar; Πάντως με το WinZip δεν ανοίγει.
Με το WinRar

:D

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Dr_Java » 06 Ιουν 2005 23:59

lunarmedia έγραψε:
skeftomilos έγραψε: Και μια χαζή ερώτηση: με πιο πρόγραμμα ανοίγει ένα αρχείο rar; Πάντως με το WinZip δεν ανοίγει.
Με το WinRar

:D
Χαχαχαχχαα lol :D :D καλό αυτό!!!

Οσον αφορά τα σχόλια καθε φορά που έχουμε ένα } πίστεψέ με είναι ότι καλυτερο μπορεις να κάνεις σε μεγάλους κώδικες...!!! Και ένα απλό παράδειγμα, πριν δυο εβδομάδες και κάτι τελείωσα μια εργασία για το uni, ο κώδικα σε μερικές classes ήταν υπερβολικά μεγάλος (για να καταλάβεις για τι εφαρμογή μιλάμε ήταν ενα προγραμμα encryption / decryption backup servises και αποστολή μέσο δικτύου ή internet σε remote server). To προγραμμα αυτό επειδή μου άρεσε πάρα πολύ σαν ιδέα θα το συνεχίσω για την πάρτυ μου. Φαντασου μετά από κάμποσο καιρό που θα το πιάσω πάλι και δω πολλά μαζί } } } } } αντε να θυμηθώ τι κλείνει το καθένα τους...!!! (η επομενη κινηση που θα έκανα θα ήταν "αστο για αυριο..." και θα έπαιζα καπάκι call of duty :kaloe: )

Απ'οτι καταλαβαίνεις λοιπόν σε προγράμματα μεγάλου κώδικα είναι οτι καλύτερο!!!
Εικόνα

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Cmg__ » 07 Ιουν 2005 00:44

:clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: :clap: v

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Cmg__ » 07 Ιουν 2005 00:45

parte kai ena v sto telos gia na mathete :lol:

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από skeftomilos » 07 Ιουν 2005 14:09

Το τελικό ν είναι ανορθόγραφο, θέλει τ με τόνο, ή δύο underscores (__). :kaloe: Καλά ρε Νίκο πότε έφτασες τα 338 μηνύματα; Έχω χάσει το μέτρημα! :D
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Dr_Java » 07 Ιουν 2005 15:31

:o 338 ???? εγω δηλαδη τι να πω με τα 100 και κατι!!!! :(

Ερχεται και το Java basics μερος β'!!!!! :kaloe:
Εικόνα

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Cmg__ » 07 Ιουν 2005 16:12

Η αληθεια ειναι πως το ψιλοεπιδιωξα μιας και το αισθημα συλλογης που με διακατέχει υπερνικησε την λακωνικότητα μου! :P
ainte prwi prwi....
Το τελικό ν είναι ανορθόγραφο, θέλει τ με τόνο, ή δύο underscores (__). Καλά ρε Νίκο πότε έφτασες τα 338 μηνύματα; Έχω χάσει το μέτρημα!
lol!
Thodwrh wreo to psilo-animated new avatar soy :wink: !

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από skeftomilos » 07 Ιουν 2005 17:31

Αντί για το WinRar κατέβασα το FilZip που είναι freeware, κι έτσι άνοιξα το rar. Καλό πρόγραμμα το FilZip αλλά είχα πρόβλημα με το δεύτερο user account των XP.

Ο doctor έχει βάλει μία πολύ απλή class (κλάση ή "τάξη" ακαδημαϊκά) με constructor, δύο μεθόδους (deposit, withdraw) και μία ιδιότητα (Balance).
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Dr_Java
Δημοσιεύσεις: 218
Εγγραφή: 15 Αύγ 2003 16:42
Τοποθεσία: πειραιας
Επικοινωνία:

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Dr_Java » 08 Ιουν 2005 02:19

Η class που κάνει implement την bankAccount ακολουθεί στο μερος β που εκει θα δούμε τον τρόπο που γίνετε το implementation σε classes!!!
Ολα στο καιρό τους!!! :kaloe:
Πιστεύω είναι αρκετά καλό το παράδειγμα με τον λογαριασμό τραπέζης για να καταλάβει κάποιος το τι "παιζει" με τις classes έτσι????
Εικόνα

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Cmg__ » 08 Ιουν 2005 23:39

U KNOW :D !

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από txc » 09 Ιουν 2005 21:20

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

Δεν έχω πρόβλημα αν είναι στα αγγλικά, ευχαριστώ πολύ εκ των προτέρων.

Cmg__
Δημοσιεύσεις: 1710
Εγγραφή: 29 Μαρ 2005 22:40

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από Cmg__ » 10 Ιουν 2005 00:11

Den kserw apo java alla exeis swsto nickname :)

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

Java Basics Μερος Α' τι είναι OOP, classes, methods, objects

Δημοσίευση από txc » 10 Ιουν 2005 00:17

xaxa cmg, συναδερφος και εσυ στη μουσικη?

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

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