2016-04-15 3 views
0

Так у меня есть этот класс:Доступ супер объект класса

public class ServiceClass { 

    public static Validator validator; 

    public ServiceClass() { 

     if (validator == null) validator = new Validator(); 
    } 
} 

Теперь у меня есть расширенный класс:

public class Service1 extends ServiceClass { 

    public Service1() { 

     validator.init(); 
    } 
} 

является то, что правильный путь для доступа к объекту валидатор? Должен ли я создавать методы get as set для суперкласса? Должен ли я использовать super.validator.init(); ?

Благодарим заранее.

+1

Поскольку 'validator' объявлен статичным, это может вызвать проблемы, если он дважды вызовет метод init, в зависимости от того, что он должен делать. – SomeJavaGuy

ответ

0

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

Помимо этого, да, это правильно.

Также: обратите внимание, что вы используете валидатор как «статический», что означает, что каждый объект ServiceClass или любой ребенок будут совместно использовать один и тот же объект (у них не будет каждого объекта этого класса), поэтому будьте осторожны с вашим вы делаете с этим.

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