Chcę utworzyć obiekty Node z właściwościami state. Właściwość state można określić jako jedną z trzech zmiennych wyliczeniowych: enum State = {visited, unvisited, visiting};

Na przykład chciałbym zrobić Node n1; n1.state = State.unvisited; W tym przypadku n1 jest obiektem węzła w obiekcie Graph. Aby to zrobić, muszę utworzyć klasę Node. Jaki powinien być typ właściwości state?

class Node {
    [type] state;
    public Node() {
        // say something about the state
    }
}
0
Nathan Bell 1 kwiecień 2020, 07:37

5 odpowiedzi

Najlepsza odpowiedź

Możesz utworzyć enum w następujący sposób:

enum State {
  Visited,
  Unvisited,
  Visiting    
}

Gdy to zrobisz, możesz zdefiniować swoją właściwość w następujący sposób:

State state;
2
Sujeet Sinha 1 kwiecień 2020, 04:41

Jaki powinien być rodzaj majątku państwowego?

State

0
OscarRyz 1 kwiecień 2020, 04:46

Można zdefiniować wyliczenie poza klasą, a następnie utworzyć wystąpienie tego wyliczenia wewnątrz klasy w następujący sposób.

enum State {
  Visited,
  Unvisited,
  Visiting    
}
class Node {
    State state;
    public Node() {
        // say something about the state
    }
}
0
het jagani 1 kwiecień 2020, 04:47

Utwórz typ danych Enum:

public enum State {
  VISITED,
  UNVISITED,
  VISITING    
}

Twoja klasa powinna wyglądać mniej więcej tak:

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

Przykład Twojej klasy wyglądałby następująco:

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

Więcej informacji znajdziesz w tym linku lub w Google na temat enumerations, znajdziesz więcej informacji.

0
Harry Coder 1 kwiecień 2020, 04:55

Wyglądałoby to mniej więcej tak:
(Zmieniłem nazwy na wielkie litery, ponieważ taka jest konwencja wyliczeń)

Aby się do nich odnieść, zakodowałbyś State.VISITED za pomocą import packagename.State;
lub po prostu UNVISITED z 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
Dave The Dane 1 kwiecień 2020, 04:58