2014-10-03 2 views
0

Я только начну с того, что я новичок в программировании на Java. У меня есть эта проблема:Java Object, создающий другой объект класса

У меня есть этот класс:

public class Unit 
{ 
    public boolean status; 
    public Unit() 
    { 
     status=true; 
    } 
    public boolean getstatus(){ 
     return status; 
    } 
    public void setstatus(boolean pStatus){ 
     status=pStatus; 
    } 
} 

И я нужен второй класс под названием TestUnit, что, когда я использую его для создания объекта, unpon создания создает также Единица класс.

Как я могу это сделать? Помощь была бы оценена.

P.S .: Я работаю с Bluej.

ответ

0

Если TestUnit класс находится в том же пакете, то он может просто создать новый Unit экземпляр вроде этого:

Unit u = new Unit(); 

Но они должны действительно быть в разных пакетах, например

com.giaky.unit 
com.giaky.unit.test 

В этом случае необходимо указать импорт класс в ваш класс TestUnit. Вы делаете это с линией в верхней части файла, просто под package заявления, как это:

import com.giaky.unit.Unit; 

После этого, вы можете создать экземпляры вашего Unit класса так же, как если бы это было в том же пакете, с

Unit u = new Unit(); 

Ваш IDE поможет вам все это: она должна быть в состоянии помочь вам переместить классы в разных пакетах, в случае необходимости, а также импортировать классы из одного пакета в другой.

Импорт - это то, что вам нужно много, каждый раз, когда вы используете класс из библиотек JDK.

+0

Итак, класс ** TestUnit ** должен выглядеть так: открытый класс testUnit { общественный тестUnit() { Единица измерения unit_2 = new Unit(); } } – giaky3876

+0

Да, это правильно (хотя, очевидно, нет особого смысла, если вы не сделаете что-то с ним после того, как вы его создали!).Возможно, вы захотите иметь поле 'private' вашего класса TestUnit, в котором хранится экземпляр' Unit' (или вы не можете, в зависимости от того, что вы делаете). –

+0

Также убедитесь, что вы называете это 'TestUnit' (начальные колпачки), а не' testUnit' (начальный строчный регистр). Названия классов должны начинаться с заглавных букв (хотя это не означает, что это не ошибка). –

0

Вы ищете это?

public class TestUnit{ 
    private Unit unit; 

    public TestUnit(){ 
     unit = new Unit(); 
    } 
} 
0
public class TestUnit{ 
    private Unit unit; 
    public TestUnit(){ 
     this.unit=new Unit();} 
    } 
    } 

// Вы можете добавить другие методы и переменные по мере необходимости :)

0

Вы можете сделать что-то вроде этого:

public class TestUnit { 
    //You can create a reference to handle your Unit instance 
    private Unit myunit; 

    //Provide a constructor to assign a unit you create 
    public TestUnit(Unit myunit) { 
     this.myunit = myunit; 
    } 

    //Or provide a default constructor which instances a default one 
    public TestUnit() { 
     this.myunit = new Unit(); 
    } 

} 

Я думаю, что это способ, которым Вы можете обращаться , Я знаю, что очень хорошие ответы придут, но это мой подход в соответствии с вашим описанием :)

С уважением, динг :).

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