1
votes

Comment initialiser un tableau d'objets dans main?

J'ai un constructeur pour le tableau de l'objet personne:

Group[] group1 = new Group() \\????

J'ai aussi la méthode addPerson

Comment déclarer un nouveau tableau dans main? donc je peux ajouter après des personnes? J'obtiens une exception nulle. Je veux appeler le tableau «group1». le tableau est-il de type Person? ou groupe? Comment créer un nouveau groupe?

public class Group
{
    final int MAX =10;
    private Person[] _groupOfPersons;
    private int _numOfPersons;


    public Group()
    {
        _groupOfPersons = new Person [MAX];
        _numOfPersons = 0;
    }


0 commentaires

4 Réponses :


0
votes

Group [] group1 = new Group [] {};

Ceci initialise un tableau vide.

Si vous procédez comme ceci: Group [] group1 = new Group [] {new Group ()};

Vous pouvez group1[0ITED.setPersons(...);


0 commentaires

0
votes

Si vous voulez déclarer une table avec 2 colonnes par exemple dans main, faites:

group1[0].setPersons(..);
group1[1].setPersons(..);

pour remplir les colonnes que vous pouvez faire

Group[] group1 = new Group{2];


0 commentaires

0
votes

Vous pouvez le faire de l'une des manières indiquées ci-dessous:

class Person {

}

class Group {
    final int MAX = 10;
    private Person[] _groupOfPersons;
    private int _numOfPersons;

    public Group() {
        _groupOfPersons = new Person[MAX];
        _numOfPersons = 0;
    }

    public Person[] get_groupOfPersons() {
        return _groupOfPersons;
    }

    public void set_groupOfPersons(Person[] _groupOfPersons) {
        this._groupOfPersons = _groupOfPersons;
    }

    public int get_numOfPersons() {
        return _numOfPersons;
    }

    public void set_numOfPersons(int _numOfPersons) {
        this._numOfPersons = _numOfPersons;
    }

    public void addPerson(Person person) {
        for (int i = 0; i < MAX; i++) {
            if (_groupOfPersons[i] == null) {
                _groupOfPersons[i] = person;
                return;
            }
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Group group = new Group();

        // First way
        group.get_groupOfPersons()[0] = new Person();

        // Second way
        group.addPerson(new Person());
    }
}


0 commentaires

0
votes

Il y a vraiment de nombreuses façons:

group:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

group1:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]

group2:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]

group3:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]

group4:
[Group{groupOfPerson=[Person{name='foo'}, Person{name='bar'}, Person{name='baz'}]}]

group5:
[Group{groupOfPerson=[Person{name='fooMod'}, Person{name='bar'}, Person{name='baz'}]}]

group6:
[Group{groupOfPerson=[Person{name='foo'}]}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]


Process finished with exit code 0

Voici la sortie:

public static void main(String[] args) {
    class Person {
        private String name;

        public Person(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "Person{" +
                    "name='" + name + '\'' +
                    '}';
        }
    }

    class Group {
        Person[] groupOfPerson = new Person[10];

        public Group() {
        }

        public Group(Person[] groupOfPerson) {
            this.groupOfPerson = groupOfPerson;
        }

        public Person[] getGroupOfPerson() {
            return groupOfPerson;
        }

        public void setGroupOfPerson(Person[] groupOfPerson) {
            this.groupOfPerson = groupOfPerson;
        }

        @Override
        public String toString() {
            return "Group{" +
                    "groupOfPerson=" + Arrays.toString(groupOfPerson) +
                    '}';
        }
    }

    Person[] people = new Person[]{new Person("foo"), new Person("bar"), new Person("baz")};
    Group aGroup = new Group(people);

    Group[] group = new Group[100];
    group[0] = aGroup;
    // group[100] = aGroup; -> Array index is out of bounds
    System.out.println("group:\n" + Arrays.toString(group) + "\n");

    Group[] group1 = new Group[1];
    group1[0] = new Group();
    group1[0].setGroupOfPerson(people);
    System.out.println("group1:\n" + Arrays.toString(group1) + "\n");

    Group[] group2 = new Group[]{aGroup};
    System.out.println("group2:\n" + Arrays.toString(group2) + "\n");

    List<Group> l = List.of(new Group(people));
    Group[] group3 = l.toArray(Group[]::new);
    System.out.println("group3:\n" + Arrays.toString(group3) + "\n");

    Group[] group4 = new Group[]{aGroup};
    group4[0].setGroupOfPerson(people);
    System.out.println("group4:\n" + Arrays.toString(group4) + "\n");

    Group[] group5 = new Group[]{aGroup};
    group4[0].getGroupOfPerson()[0] = new Person("fooMod");
    System.out.println("group5:\n" + Arrays.toString(group5) + "\n");

    Group[] group6 = new Group[100];
    group6[0] = new Group(new Person[]{new Person("foo")});
    System.out.println("group6:\n" + Arrays.toString(group6) + "\n");
}   


0 commentaires