Как я могу реализовать класс, если одно из его свойств является переменной enum? - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу создать Node объекты с state свойствами. Свойство state можно определить как одну из трех переменных enum: enum State = {visited, unvisited, visiting};

Так, например, я хотел бы сделать Node n1; n1.state = State.unvisited; В этом случае n1 является объектом Node в Graph объект. Для этого мне нужно создать класс Node. Каким должен быть тип state свойства?

class Node {
    [type] state;
    public Node() {
        // say something about the state
    }
}

Ответы [ 5 ]

2 голосов
/ 01 апреля 2020

Вы можете создать enum следующим образом:

enum State {
  Visited,
  Unvisited,
  Visiting    
}

Как только это будет сделано, вы можете определить свою собственность следующим образом:

State state;
0 голосов
/ 01 апреля 2020

Это выглядело бы примерно так:
(я изменил имена на Upper-Case, так как это соглашение для перечислений)

Чтобы обратиться к ним, вы должны кодировать State.VISITED с помощью import packagename.State;
или просто UNVISITED с import static packagename.State.*;

public class Enum60963806 {

    public static enum State {
          VISITED,
        UNVISITED,
          VISITING;
    }
    public static final class Node {

        private final State state;

        public Node(final State state) {
            this.state = state;
        }
    }
}
0 голосов
/ 01 апреля 2020

Создайте тип данных Enum:

public enum State {
  VISITED,
  UNVISITED,
  VISITING    
}

Тогда ваш класс должен выглядеть примерно так:

class Node {
    State state;
    public Node() {
        // say something about the state
    }
}

Экземпляр вашего класса будет выглядеть так:

Node node1, node2;
node1 = new Node();
node2 = new Node();
node1.state = State.VISITED;
node2.state = State.UNVISITED;

Для получения дополнительной информации перейдите по этой ссылке или в Google по поводу enumerations, вы найдете дополнительную информацию.

0 голосов
/ 01 апреля 2020

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

enum State {
  Visited,
  Unvisited,
  Visiting    
}
class Node {
    State state;
    public Node() {
        // say something about the state
    }
}
0 голосов
/ 01 апреля 2020

Каким должен быть тип государственной собственности?

State

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...