2013-03-09 3 views
-1

У меня есть сценарий, как это, хорошая реализация или нет?Объявление объекта массива внутри интерфейса

public interface Vehicle { 
// is it possible to declare array in interface? 

//so it is possible and no compilation errors 

Vehicle[] vehicles1 = new Vehicle[10]; 


} 
+1

Определения типов хранения подпадающих деталей реализации, вы должны * ** не *** делать это в интерфейсе, который связан только с объявлением поведения (не определяя его). – Perception

ответ

0

Технически можно объявить такое поле. Это будет public, static и final (что в основном делает его постоянным), даже если вы не указали его явно.

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

0

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

0

Нет, вы можете объявлять только public методов и static final Поля (константы) в интерфейсах.

Такая вещь возможна, но не то, что вы хотите:

public interface Vehicle { 
    public static final Vehicle[] vehicles1 = new Vehicle[10]; 
} 

Я предлагаю использовать обычную get и set модели:

public interface Vehicle { 
    void setVehicles1(Vehicle[] vehicles); 
    Vehicle[] getVehicles1(); 
} 
+0

вы можете объявить его как «Vehicle [] vehicles1 = new Vehicle [10]; модификаторы' '' '' '' '' '' '' '' '' '' '' '' '' '' будут добавлены неявно –

+0

Не был уверен в этом (потому что op предположил, что он получает компиляция ошибок). –

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