2010-01-21 4 views
1

Если у меня есть класс «А», который я хочу объявить экземпляром, который я часто использую в классе «В», что является решающим фактором в том, следует ли объявлять его вне класса », B "или внутри каждого метода я использую его внутри класса" B "?переменная область - как решить

public Class A 
{ 
} 

A declareClassA = new A(); 
public Class B 
{ 
} 

или

public Class B 
{ 
    public void MethodA() 
    { 
     A declareClassA = new A(); 
     ... 
    } 
    public void MethodB() 
    { 
     A declareClassA = new A(); 
     ... 
    } 

} 

ответ

0

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

Если нет, объявите его внутри класса.

public Class B 
{ 
    A myA = new A(); 
} 
2

Во-первых, вы не можете (AFAIK) объявить переменную вне класса.

Для первого примера, я думаю, что вы имели в виду:

public Class B 
{ 
    A declareClassA = new A(); 
    // methods here.. 
} 

Что касается вашего вопроса - вам нужно использовать тот же экземпляр, как в Methoda и MethodB, или нет?

Если вы это сделаете, используйте приведенный выше код. Если нет, используйте отдельный декларацию в каждом методе.

+0

Возможно, эти классы объявляются в другом классе ... –

0

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

0

Это зависит от того, требуется ли вам постоянное хранение этого объекта. Если вам нужно ссылаться на один и тот же экземпляр, объявите его как переменную уровня класса, иначе объявите его в методах, чтобы уменьшить связь между вашими методами.

Кроме того, если эти функции всегда с помощью класса А думать о том, должны ли они принадлежат к классу А вместо класса B

1

Наилучшая практика будет размаху переменной на самом низком необходимом уровне. Если вам нужно разделить переменную между методами, то ее область должна быть вне этого. Если методы работают независимо и могут выжить с областью на этом уровне, тогда вы должны объявить/создать новую переменную там.

Всегда держите свою область как можно меньше, не уменьшая функциональность.

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