Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 Vytvorte GravityObject abstraktné triedu . Budete chcieť vytvoriť GravityObject ako abstraktné triedy . Deklarácia triedy byť abstrakt v jazyku Java naznačuje kompilátora , že chceme táto trieda bude slúžiť ako model , ktorý bude používaný iných tried , ale nemali by byť vytvorená trieda sama . To dáva zmysel pre príklad slnečnej sústavy : nie je tam žiadna taká vec ako " GravityObject " , ale tam sú veci , ako sú planéty a hviezdy , ktoré sú predmety , ktoré majú , a sú ovplyvnené gravitáciou . Stačí iba napísať programovanie pre neho raz . V objektovo orientovaného dizajnu , táto vlastnosť sa nazýva dedičnosť 
 
 Zadajte do vášho GravityObject súboru : 
 
 public abstract class GravityObject { double xPosition , double yPosition , double degreeInOrbit , double distanceFromParent ; 
 . 
 GravityObject ( ) { this.distance = 0 ; } 
 
 GravityObject ( double vzdialenosť ) { this.distance = vzdialenosť ; } } 
 
 Toto je jednoduchý príklad , takže budete Používajte iba xay polohy objektu , spolu so vzdialenosťou od jej materskej spoločnosti a štúdiá premenné . Dalo by sa neskôr vytvoriť ďalšie abstraktné triedu , 3DGravityObject alebo RelativisticGravityObject , a mať to dedí z tohto objektu . To vám umožní pridať podrobnosti o veci , ktoré sa menia . 
 3 
 Vytvorte OrbitalSystem abstraktné triedu . Táto trieda bude tiež abstraktné , ale bude zložitejšie , než je trieda GravityObject 
 
 import java.util.ArrayList ; . 
 
Public abstract class OrbitalSystem rozširuje GravityObject { private ArrayList deti = new ArrayList ( ) ; //Objekty v systéme . Budú obiehať rodičia klipart
 public void add ( GravityObject dieťa ) { children.add ( dieťa ) ; } . 
 
 Public void tick ( ) { for ( int x = 0 ; x < children.size ( ) ; x + + ) { GravityObject prúd = children.get ( x ) ; current.degree + = 1current.xPosition = this.xPosition + Math.cos ( degree/180 * Math.PI ) * current.distance ; prúd . yPosition = this.yPosition - Math.sin ( degree/180 * Math.PI ) * current.distance ; } ( pozri odkazy 2 ) 
 
 } } 
 
 trieda rozširuje triedu GravityObject . ArrayList obsahuje všetky GravityObjects , a vyhlásila , že je variabilný ako súkromný , takže môžete vynútiť iných tried použiť funkciu add , zabezpečiť , že iba GravityObjects môžu byť pridané do poľa . To ilustruje dve ďalšie dôležité OOD koncepty okrem dedičnosti . Prvý z nich je dát skrýva : utesnením to preč , ste zabezpečené, že ostatné časti programu nemožno získať prístup , a dať neplatné informácie do neho . Druhým je polymorfizmus , čo nám umožňuje odkazovať na objekt pomocou nielen vlastné mená , ale mená niektorý z jeho predkov . To umožňuje veľkú flexibilitu pri písaní kódu . 
 4 
 Napíšte planéta a hviezda triedy . Pretože väčšina prác bola vykonaná v abstraktných OrbitalSystem a GravityObject tried , budú kurzy Planet a Star byť jednoduchý 
 
 public class hviezda rozširuje OrbitalSystem { } ; . 
 
 A 
 
 public class Planet rozširuje GravityObject { } ; 
 5 
 Napíšte hlavnú triedu . Váš hlavný funkcia by mala vyzerať takto : 
 
 public static int main ( String [ ] args ) { spoločnosti Star s = new hviezda ( ) ; //Vytvorenie nového star.s.add ( nový Planet ( 20 ) ) //Pridať planétu na obežnej systému hviezdy , ktorá obieha vo vzdialenosti 20 units.s.add ( nový Planet ( 66 ) ) ; //Pridať ďalšiu planétu na obežnej systému hviezdy , ktorá obieha vo vzdialenosti 66 jednotiek . 
 
 while ( true ) { s.tick ( ) ; } . 
 
 } 
 
 Tým sa vytvorí hviezdu a dve obiehajúce planéty , a nastaví im v pohybe