Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να φτιάξετε τον δικό σας ηλιακό σύστημα σε Java

Μοντελοποίηση ένα ηλιακό σύστημα σε Java , εκτός του ότι είναι διασκεδαστικό , είναι μια καλή άσκηση για να παρουσιάσετε και την πρακτική σκέψη από την άποψη ορισμένων βασικών εννοιών σε Αντικειμενοστραφής Σχεδιασμός ( OOD ) , ειδικά κληρονομικότητα και πολυμορφισμός . Μπορείτε να μάθετε τις έννοιες OOD με ένα απλό build - σας - το δικό του μοντέλο του ηλιακού συστήματος . Τα πράγματα που θα χρειαστείτε
Υπολογιστών
Java Software Development Kit ( SDK )
επεξεργαστή κειμένου ή Java ολοκληρωμένο περιβάλλον ανάπτυξης ( IDE )
Η Εμφάνιση Περισσότερες οδηγίες
Η 1
2

Δημιουργία GravityObject αφηρημένη κατηγορία . Θα θελήσετε να δημιουργήσετε GravityObject σας ως μια αφηρημένη τάξη . Δηλώνοντας μια τάξη για να είναι αφηρημένη σε Java υποδεικνύει στον compiler που θέλουμε αυτή η κατηγορία να χρησιμεύσει ως πρότυπο για να χρησιμοποιηθούν από άλλες κλάσεις , αλλά η κλάση δεν θα πρέπει να δημιουργήσει η ίδια . Αυτό έχει νόημα για το ηλιακό σύστημα παράδειγμα : δεν υπάρχει τέτοιο πράγμα όπως μια « GravityObject » , ωστόσο υπάρχουν πράγματα , όπως οι πλανήτες και τα αστέρια , τα οποία είναι αντικείμενα τα οποία έχουν και επηρεάζεται από τη βαρύτητα . Μπορείτε να γράψετε μόνο τον προγραμματισμό για αυτό μία φορά . Σε Αντικειμενοστραφής Σχεδιασμός , αυτό το χαρακτηριστικό ονομάζεται Κληρονομικότητα

Πληκτρολογήστε αυτό στο αρχείο GravityObject σας :

public abstract class GravityObject { διπλό XPOSITION ? Διπλή yPosition ? Διπλή degreeInOrbit ? Διπλή distanceFromParent ?
.

GravityObject ( ) { this.distance = 0 ? }

GravityObject ( διπλάσια απόσταση ) { this.distance = απόσταση ? } }

Αυτό είναι ένα απλό παράδειγμα , έτσι θα χρησιμοποιήσετε μόνο το x και y θέσεις του αντικειμένου , μαζί με την απόσταση από τη μητρική της και ένα μεταβλητό βαθμό. Θα μπορούσε αργότερα να δημιουργήσετε μια άλλη αφηρημένη κατηγορία , 3DGravityObject ή RelativisticGravityObject , και έχουν κληρονομήσει από αυτό το αντικείμενο . Αυτό θα σας επιτρέψει να προσθέσετε τις λεπτομέρειες για πράγματα που αλλάζουν .
Εικόνων 3

Δημιουργήστε το OrbitalSystem αφηρημένη κατηγορία . Η κατηγορία αυτή θα πρέπει επίσης να είναι αφηρημένη , αλλά θα είναι πιο εξελιγμένα από την κατηγορία GravityObject

java.util.ArrayList εισαγωγής ? .

Δημόσια αφηρημένη κατηγορία OrbitalSystem επεκτείνει GravityObject { ιδιωτική παιδιά ArrayList = νέα ArrayList ( ) ? //Αντικείμενα εντός του συστήματος . Θα τροχιά γύρω από τη μητρική

add public void ( GravityObject παιδί ) { children.add ( παιδί) ? } .

Public void tick ( ) { για ( int x = 0 ? X

} }

Η κλάση επεκτείνει την κλάση GravityObject . Η ArrayList κατέχει όλα τα GravityObjects , και δήλωσε μεταβλητή ιδιωτική του , έτσι ώστε να μπορεί να αναγκάσει άλλες τάξεις να χρησιμοποιήσετε τη λειτουργία πρόσθετο , εξασφαλίζοντας ότι μόνο GravityObjects μπορούν να προστεθούν στον πίνακα . Αυτό απεικονίζει δύο άλλες σημαντικές έννοιες OOD εκτός κληρονομιά . Το πρώτο είναι η κρυψώνα δεδομένα: με τη σφράγιση μακριά, έχετε εξασφαλίσει ότι τα άλλα μέρη του προγράμματος δεν μπορούν να έχουν πρόσβαση και να θέσει έγκυρες πληροφορίες σε αυτό . Το δεύτερο είναι πολυμορφισμός , η οποία μας επιτρέπει να αναφερθώ σε ένα αντικείμενο χρησιμοποιώντας όχι μόνο τα δικά σας ονόματα , αλλά τα ονόματα οποιουδήποτε από τους προγόνους του . Αυτό επιτρέπει μεγάλη ευελιξία στην σύνταξη κώδικα.
Η 4

Γράψτε τον πλανήτη και το αστέρι κατηγορίες . Δεδομένου ότι το μεγαλύτερο μέρος του έργου έχει γίνει με την αφηρημένη OrbitalSystem και GravityObject τάξεις , οι τάξεις Planet και Star θα είναι απλή

δημόσια τάξη Αστέρια επεκτείνει OrbitalSystem { } ? .

Και

δημόσια τάξη Planet επεκτείνει GravityObject { } ?
5

Γράψτε κύρια κατηγορία . Η κύρια λειτουργία σας θα πρέπει να μοιάζει με το παρακάτω :

δημόσια στατική int main ( String [ ] args ) { Αστέρων s = νέα Star ( ) ? //Δημιουργήστε ένα νέο star.s.add ( νέο Planet ( 20 ) ) ? //Προσθέστε έναν πλανήτη στο τροχιακό σύστημα του άστρου που βρίσκεται σε τροχιά γύρω σε απόσταση 20 units.s.add ( νέο Planet ( 66 ) ) ? //Προσθέστε άλλο πλανήτη στο τροχιακό σύστημα του άστρου που βρίσκεται σε τροχιά γύρω σε απόσταση 66 μονάδες .

ενώ η (πραγματική ) { s.tick ( ) ? } .

}

Αυτό θα δημιουργήσει ένα αστέρι και δύο πλανήτες , και θα τους θέσει σε κίνηση


Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα