2016-11-19 3 views
1

Так им очень хотелось попросить моделировать Вселенную с двумя планетами, каждая планета будет иметь ракеты на ее поверхности.Добавление нового класса в существующий класс

Дело в том, что я получаю ошибки везде, когда пытаюсь добавить планеты во Вселенную Мне было интересно, следует ли мне продолжать с тем же классом или создать определенный класс для «Планеты», также когда я пытаюсь расположить Planets это говорит о том, что метод неизвестно для этого класса, хотя мы сделали пример в лекции, и не было никакой ошибки тогда

Вот код

import gdi.univrse* 

public class SomeUniverse { 
    public static void main(String[]args){ 
     Universe u = new Universe (args); 
     Planet Planet1 = new Planet(41 , 700,u); 
     Planet Planet2 = new Planet(51 , 610,u); 
     u.simulate(); 
    } 
} 

Так в основном он говорит, что конструктор (double, double, Universe) не определен И когда я пытаюсь сделать он шаг за шагом он также не работает

+2

Адрес: Ur 'Planet'? Добавьте код для него – developer

+0

выглядит так: 'Planet' не имеет конструктора' (double, double, Universe) ' – Andrew

+0

На самом деле вы определили классы Planet и Universe? Если бы вы могли разместить их здесь здесь? Другая проблема заключается в том, что 'import gdi.univrse *' не является допустимым оператором импорта. Вам нужна точка перед '*': 'import gdi.univrse.* ' –

ответ

-1

Ваше заявление о ввозе isrrectct. Если вы пытаетесь импортировать все классы в этом пакете, то вы должны написать

import gdi.univrs.* // assuming you meant to leave out the first 'e' 

Я рекомендую, вместо этого, что вы импортировать классы по отдельности. Вы говорите, что есть класс планета уже, в этом случае я полагаю, что вы импортировать его для использования в явном виде:

import gdi.universe.Planet // assuming it really has two 'e's 

Одна из причин этого заключается в том, что, если этот класс не существует, или не доступен на компиляции -time classpath, компилятор скажет вам. Тогда вы узнаете, что это проблема, и решите ее, прежде чем искать что-то еще неправильное.

Теперь, если классы уже существуют, их конструкторы уже определены. Вам нужно либо прочитать некоторую документацию, которая сообщает вам, что являются юридическими конструкторами, либо получить эту информацию по-другому (например, Eclipse даст вам сообщение о том, какие параметры ожидаются, если вы пишете неправильные). Вы можете использовать только конструкторы, которые определяет класс.

1

Я удалил свой предыдущий ответ, как выясняется, классы Planet и Universeсделать существуют, вы просто не используете их правильно.

Planet класс определяет это конструктор (ы), как это:

public Planet(double x, double y) { 
    this(); 
    this.setLocation(x, y); 
} 

public Planet() { 
    createdInstances.add(this); 
    this.planet = new gdi.scene.universe.Planet(); 
} 

означает, что вы должны создать планету либо без каких-либо аргументов, либо с х и у, например, так:

Planet myPlanet = new Planet(41, 700); // Location is set to 41, 700 
Planet mySecondPlanet = new Planet(); // Location defaults to 0, 0 

Чтобы добавить планету во вселенную, вы просто вызываете addEntity(myPlanet) на вселенной, как показано ниже:

import gdi.universe.* 

public class SomeUniverse { 
    public static void main(String[] args){ 
     Universe universe = new Universe(args); 
     Planet firstPlanet = new Planet(41, 700); 
     Planet secondPlanet = new Planet(51, 610); 

     universe.addEntity(firstPlanet); 
     universe.addEntity(secondPlanet); 
     universe.simulate(); 
    } 
} 

Похоже, что пакет gdi - это специальная библиотека, написанная тем, кто дал ее вам (я полагаю, ваша школа/университет), они должны предоставить некоторую документацию где-нибудь на ней.

+1

Я так думаю, Я думаю, что просто не знал «как пользоваться библиотекой» Что мне нужно делать? не создавать, я думаю, что я не совсем понял это на первых В общем спасибо за помощь! –

Смежные вопросы