Может ли метод, который вызывает метод доступа, быть методом доступа - PullRequest
0 голосов
/ 14 сентября 2018
public Class accessor {
    private int x = 0; 

    public int getX() {
        return x; 
    }

    public String toString() {
        return getX() + "";
    }
}

Является ли метод toString () методом доступа в этом случае?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

toString не считается средством доступа, поскольку он не обращается к атрибуту (свойству) объекта, а скорее к объекту в целом (хотя я вижу вашу точку зрения).

Средства доступа - это геттеры (обычно называемые getSomething или isSomething для boolean с) и сеттеры (обычно называемые setSomething).

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

В классе, представляющем людей, у вас может быть, например, получатель полного имени, вызывающий получатели имени и фамилии:

    public String getFullName() {
        return getFirstName() + ' ' + getLastName();
    }

Я бы рассматривал getFullName как средство доступа, поскольку мы можем рассматривать полное имя как собственность человека (и его имя начинается с get).

0 голосов
/ 14 сентября 2018

Accessor, он же getter, как следует из названия, используется для прямого доступа к свойству класса.toString - это обычный публичный метод, который выполняет некоторую логику (больше, чем просто возврат значения определенного поля).Обычно такой метод переопределяется, чтобы обеспечить строковое представление внутреннего состояния объекта.

...