Параметр по сравнению с членскими переменными

Надеюсь, это поможет

public class B extends A {
//  public int intVal = 2;

    public B() {
        super();
        super.intVal = 2;
    }

    public void identifyClass() {
        System.out.println("I am class B");
    }
}
22
задан cwallenpoole 10 February 2009 в 14:48
поделиться

6 ответов

В целом участники класса должны представить состояние из объекта класса.

Они не временные местоположения для параметров метода (это - то, что параметры метода для).

32
ответ дан Michael Burr 29 November 2019 в 04:04
поделиться

Я утверждаю, что это не проблема стиля, а скорее проблема удобочитаемости/пригодности для обслуживания. Одна переменная должна иметь одно использование и одно использование только. Переменные “Recycling” в различных целях просто, потому что они, оказывается, требуют того же типа, не имеют никакого смысла.

Из Вашего описания кажется будто код другого человека, Вы продолжили работать, делает точно это, так как все другое использование в основном охвачено Вашим списком. Помещенный просто, это использует переменные члена парламента, не занимающего официального поста для действия как временные файлы в зависимости от ситуации. Действительно ли я прав принять это? Если так, код ужасен.

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

8
ответ дан Konrad Rudolph 29 November 2019 в 04:04
поделиться

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

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

8
ответ дан Alan Mullett 29 November 2019 в 04:04
поделиться

Необходимо только создать переменные, когда и где они необходимы и избавляются от них, когда Вы сделаны. Если классу не нужна переменная уровня класса для функционирования, то ему просто не нужен тот. Создание переменных, где Вам не нужны они, является очень плохой практикой.

4
ответ дан David Anderson 29 November 2019 в 04:04
поделиться

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

Используя глобально ограниченную по объему переменную единственный способ реализовать свойства в.NET (даже автоматические свойства в конечном счете используют глобально ограниченную по объему переменную, просто не один необходимо объявить себя).

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

0
ответ дан Scott Dorman 29 November 2019 в 04:04
поделиться

Я не согласился бы с реализацией его для глобального доступа или сделать программирование легче. Путем представления их глобально, не фильтруя никакого вида делают более трудным определить доступ в будущем.

0
ответ дан Michael Glenn 29 November 2019 в 04:04
поделиться