| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    Comment construire votre propre système solaire en Java
    La modélisation d'un système solaire en Java, en plus d'être amusant , est un bon exercice pour illustrer et pratiquer penser en termes de certains concepts de base en matière de conception orientée objet ( OOD) , en particulier l'héritage et le polymorphisme . Vous pouvez apprendre les concepts OOD avec une accumulation -votre- propre modèle de système solaire simple. Choses que vous devez
    Java Kit
    Ordinateur de développement logiciel ( SDK )
    éditeur de texte ou Java environnement de développement intégré (IDE)
    Voir Plus Instructions
    1 < br > 2

    Créer GravityObject classe abstraite. Vous souhaitez créer votre GravityObject comme une classe abstraite. Déclarer une classe pour être résumé en Java indique au compilateur que nous voulons cette classe pour servir de modèle pour être utilisé par d'autres classes , mais la classe ne doit pas être créé lui-même. Cela a un sens pour l'exemple du système solaire : il n'y a pas une telle chose comme un « GravityObject " , mais il ya des choses comme les planètes et les étoiles , qui sont des objets qui ont été et sont affectées par la gravité . Vous écrivez seulement la programmation pour le moment. Dans Conception Orientée Objet, ce trait est appelé héritage

    Type de ceci dans votre fichier GravityObject :

    public abstract class GravityObject { à double Xposition ; deux yposition ; deux degreeInOrbit ; deux distanceFromParent ;
    .

    GravityObject () { this.distance = 0; }

    GravityObject ( double de la distance ) { this.distance = distance ;}}

    Ceci est un exemple simple , vous aurez donc utiliser uniquement les positions x et y de l'objet , ainsi que la distance à partir de son parent , et une variable de degré . Vous pouvez ensuite créer une autre classe abstraite, 3DGravityObject ou RelativisticGravityObject , et le faire hériter de cet objet. Cela vous permettra d'ajouter les détails de choses qui changent .
    3

    créer la classe abstraite OrbitalSystem . Cette classe sera aussi abstraite, mais sera plus sophistiqué que la classe GravityObject

    importation java.util.ArrayList ; .

    Publique OrbitalSystem classe abstraite s'étend GravityObject { ArrayList enfants privés = new ArrayList ( ) ; //Objets dans le système. Ils seront en orbite les parents

    Ajoutez publics vides ( GravityObject enfant ) { children.add ( enfant );} .

    Tiques public void () { for (int x = 0; x < children.size (); x + +) { GravityObject courant = children.get (x); current.degree + = 1current.xPosition = this.xPosition + Math.cos ( degree/180 * Math.PI ) * current.distance ; courant . yposition = this.yPosition - Math.sin ( degree/180 * Math.PI ) * current.distance ;} (voir références 2 )

    }}

    la classe étend la classe GravityObject . Le ArrayList contient tous GravityObjects , et a déclaré son variable privée de sorte que vous pouvez forcer les autres classes à utiliser la fonction add , assurant que seuls GravityObjects peuvent être ajoutés au tableau . Cela illustre deux autres concepts OOD importantes en dehors de l'héritage. La première est la dissimulation des données : en scellant loin, vous avez fait en sorte que les autres parties du programme ne peuvent pas y accéder et de mettre des informations non valides en elle. Le second est le polymorphisme, ce qui nous permet de nous référer à un objet en utilisant non seulement ses propres noms , mais les noms de l'un de ses ancêtres . Cela permet une grande flexibilité dans l'écriture de code .
    4

    Write planète et les classes d' étoiles . Comme la plupart des travaux ont été réalisés dans le OrbitalSystem abstrait et classes de GravityObject , la planète et les classes d' étoiles seront simples

    Star public class OrbitalSystem {}; .

    Et
    < p> planète public class GravityObject {};
    5

    Ecrire classe principale . Votre fonction principale devrait ressembler à ce qui suit:

    public static void main ( String [] args ) { Étoile s = new Star ( ) ; //Création d' un nouveau star.s.add ( nouvelle planète (20) ) ; //Ajouter une planète de système orbital de l'étoile qui orbite à une distance de 20 units.s.add ( nouvelle planète (66) ) ; //Ajouter une autre planète pour le système orbital de l'étoile qui orbite à une distance de 66 unités .

    while ( true) { s.tick ();} }


    Cela va créer une étoile et deux planètes en orbite , et les mettre en mouvement < . br>

    Previous :

    next :
      articles connexes
    ·Comment puis-je ajouter un SSH Client Java à une page …
    ·Comment construire un site web utilisant Java 
    ·Pourquoi une chaîne Immuable calculer sa valeur Hash 
    ·Comment puis-je exécuter fichiers JAR Java avec Window…
    ·Qu'est-ce qu'un jeton en Java 
    ·Java Tutorial Splash Screen 
    ·Comment faire pour dépanner un Android Eclipse AVD 
    ·Comment créer un service Web en utilisant Axis 
    ·Comment faire pour accélérer un Applet 
    ·Comment faire pour créer un nouveau formulaire dans le…
      articles en vedette
    ·Comment construire un Rackup en Ruby Run 
    ·Comment utiliser des tableaux dans Visual Basic 
    ·Comment accepter l'entrée utilisateur avec Python 
    ·Comment écrire un programme Socket File Transfer Conso…
    ·Comment insérer du texte dans un document Word en VBA 
    ·Quel langage de programmation est appelé le ruban adhé…
    ·Qu'est-ce que le débogueur de script 
    ·Comment convertir une chaîne en une liste sur Python 
    ·Comment faire pour créer une zone d'image dans Visual …
    ·Comment passer codes de suivi dans un PHP Redirection 
    Copyright © Connaissances Informatiques http://fr.wingwit.com