Dator > hur du bygger dina egna solsystem i java

  • hur du bygger dina egna solsystem i java


  • Modellering ett solsystem i Java , förutom att vara roligt , är en bra övning för att illustrera och praxis tänka i termer av några grundläggande begrepp inom objektorienterad design ( OOD ), särskilt arv och polymorfism . Du kan lära dig OOD begrepp med en enkel bygg- din-eget solsystem modell

    Du behöver : .
    Computer
    Java Software Development Kit ( SDK ) .
    Textredigerare eller Java Integrated Development Environment (IDE ) .


    1 . EULAs 2 .
    Skapa GravityObject abstrakt klass . Du vill skapa din GravityObject som en abstrakt klass . Deklarera en klass som abstrakt i Java anger för kompilatorn att vi vill här klassen för att tjäna som en modell som ska användas av andra klasser , men klassen bör inte skapas själv . Detta är logiskt för solsystemet exempel : det finns inget sådant som en " GravityObject " , men det finns saker som planeter och stjärnor , som är föremål som har och påverkas av gravitation . Du skriver bara i programplaneringen för det en gång . I objektorienterad design , är denna egenskap kallat arv .

    Skriv detta i din GravityObject fil :

    offentliga abstrakt klass GravityObject {
    dubbel xPosition ;
    dubbel yPosition ;
    dubbel degreeInOrbit ,
    dubbel distanceFromParent ;

    GravityObject () {
    detta . avstånd=0 ; }


    GravityObject ( dubbel avstånd ) {
    this. distance=avstånd ;
    } }


    Detta är ett enkelt exempel , så du bara använder X och Y positionerna i objektet , tillsammans med avståndet från sin förälder och en examen variabel . Du kan senare skapa ytterligare en abstrakt klass , 3DGravityObject eller RelativisticGravityObject och ha den ärver från detta objekt . Detta gör att du kan lägga till detaljer för saker som förändrar .
    3 .
    Skapa OrbitalSystem abstrakt klass . Denna klass kommer också vara abstrakt , men kommer att vara mer sofistikerade än de GravityObject klassen .

    import java. util. ArrayList ;

    offentliga abstrakt klass OrbitalSystem utökar GravityObject {
    privat ArrayList barn=new ArrayList () ; //Objekt i systemet . De kommer att bana föräldern .



    public void add ( GravityObject barn ) { children. add ( barn ) ; }

    public void tick () {
    for (int x=0 , x GravityObject nuvarande=barn . get ( x ) ,
    current. degree +=1
    current. xPosition=this. xPosition + Math. cos ( degree/180 * Math. PI ) * current. distance ,
    ström. yPosition=this. yPosition-Math. sin ( degree/180 * Math. PI ) * current. distance ,
    } (se referenser 2 )

    } }


    klassen utökar GravityObject klassen . Den ArrayList innehar alla GravityObjects , och förklarade sina rörliga privat så att du kan tvinga andra klasser att använda funktionen add , se till att endast GravityObjects kan läggas till i arrayen . Detta illustrerar två andra viktiga OOD begrepp förutom arv . Den första är information gömmer sig : genom försegling bort det, har du sett till att andra delar av programmet inte kan komma åt den och sätta ogiltig information i databasen. Den andra är polymorfism , som tillåter oss att referera till ett objekt med inte bara sina egna namn , men namnen på någon av sina förfäder . Detta medger en stor flexibilitet i att skriva kod .
    4 .
    Skriv planeten och stjärnan klasser . Eftersom det mesta av arbetet har gjorts i abstrakt OrbitalSystem och klasser GravityObject kommer planeten och Star klasser vara enkelt .

    public class Star utökar OrbitalSystem { } ;

    och

    public class Planet sträcker GravityObject { } ;
    5 <. br > Skriv
    huvudklassen . Dina huvudsakliga funktion bör se ut på följande : .

    public static int main ( String [ ] args ) {
    Star s=nya Star () ; //Skapa en ny stjärna
    s. add ( ny Planet (20 )) ; //Lägg till en planet i stjärnans omloppsbana system som kretsar på ett avstånd av 20 enheter
    s. add ( ny Planet (66 ) ) . //Lägg till en annan planet till stjärnans omloppsbana system som kretsar på ett avstånd av 66 enheter .

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


    }

    Detta kommer att skapa en stjärna och två kretsar planeter , och kommer att ställa dem i rörelse .


Previous:Vilka är fördelarna med Java uppgradera ? Next:hur att fylla en dropDownList från databasen





Relaterade artiklar


  • hur man använder hk ExpressCard Digital / analog TV-mottagare att se en video-ingång
  • hur man gör en HP LaserJet 1000 arbeta med vista 64
  • intruktioner för att installera en intern dvd rom i en Compaq Presario stationär dator
  • hur du installerar ATI Radeon med Intel ombord video
  • Hur reparerar jag ett korrupt partition systemåterställning på en HP med en Compaq 6820s?
  • Lenovo T400 specifikationer
  • hur man bygger Toshiba A100
  • hur man överklockar minnet RAM
  • hur man programmerar en CASIO räknare
  • hur man bestämmer Linksys WPC11 version