Duvida sobre Array e Matrizes , qual é a melhor soluçao

Ola Pessoal,

Estou tentando fazer um programinha onde eu tenho um sistema com varios usuarios(por exemplo 4 usuarios). Cada usuario pode ter uma politica. Onde para cada usuario do sistema tenho uma politica. So que cada Politica pode conter um conjunto de regras. E cada usuario pode ter varios recursos no sistema.
Criei 4 classes java: usuarios, politica, recursos e regras. Eu criei uma classe para manipular os usuarios que é um array.
E agora sao as duvidas: Primeiro, sera que posso remover a classe poltica e fazer o relacionamento direto entre os usuarios com a classe regras.
E uma vez que cada usuario pode ter varias regras, sera melhor melhor criar uma outra classe para manipular as regras?
E uma vez que cada usuario pode ter varias recursos, sera melhor melhor criar uma outra classe para manipular as recursos?
Ou a melhor forma é ter uma matriz com os usuarios, as regras e os varios recursos.

Por favor, me ajudem…estou precisando muito de uma luz. Sou novissima no Java e estou perdida…
Obrigada

Você fez correto separando cada entidade em uma classe, ou seja, você vai ter uma classe Usuario, uma classe Politica, outra Recurso e outra Regra. Observe que o nome da classe é singular, pois cada instância da classe vai conter um único membro(exemplo: uma Regra, um Recurso, etc.)…

Agora vem a questão da composição.

Cada usuário pode ter uma política: Você deve ter um atributo de Politica na classe do Usuario. E um atributo de Usuario na classe Política, para que um referencie o outro.

Cada Politica pode conter um conjunto de Regras: Na classe Politica você deve criar um array de Regras. Note que dentro da classe Politica você tem várias Regras, por conta do array criado.

Cada usuário pode ter vários recursos: Segue a mesma lógica acima, com um array de Recursos dentro da classe Usuario.

Ficou um pouco mais compreensível?

Essas sao as assinaturas das classes, eu nao faço nenhuma operação dentro delas, so set e get

public class Usuario {
private String nome;
private String usuarioid;
private Politica politica;
private Recurso recurso;
construtor
get e set
}

public class Politica {

private String name;
private boolean decisao;
private Regra regra;
privare Usuario usuario; //:COMO VC ME  SUGERIU

//construtor
//get e set

}

public class Regras {

private String descricao;
private int valor;
private String regra;
private Data data;

//construtor
//get e set

}

public class Recurso {

private String descricao;
private int valor;

//construtor
//get e set
?}

Eu criei uma classe para manipular os usuarios que é um array.
classe manipulausuario
private Usuario [] usurious;

Nao entendi essa parte: Na classe Politica você deve criar um array de Regras. Note que dentro da classe Politica você tem várias Regras, por conta do array criado.
Eu gostaria de saber como faço para criar uma classe que vai manipular o arras de regras, porem nao gostaria de cria-lo dentro da classe Politica. Sera que vc pode me ajudar, com algum código…
Sera que eu preciso uma classe chamada manipulaRecurso
private Recurso [] recurso;

Como eu relaciono estes arrays?nao sei? como eu faço para que o usuario[0] no array usuário esteja relacionado com o recurso[0] em um outro array

Sera que ficou claro.

Então moça, pra fazer isso você vai precisar do mínimo de conhecimento em Orientação a Objeto, e principalmente conceitos de Composição e Agregação.

Não tem como eu te passar código e tentar te explicar tudo isso aqui pelo fórum, são conceitos fáceis mas que demoram certo tempo pra aprender…

Te recomendo esta apostila: http://www.caelum.com.br/apostila-java-orientacao-objetos/

Ola amigo,

Agradeço muito a sua boa vontade em me ajudar…
Sera que vc nao pode me dar mais dicas…sobre qual estrutura devo usar…qualquer ajuda é muito bem vinda…
ou pelo menos me diga como posso tentar fazer sem, nao precisa te codigo nao

Essa é a questão central.

Você tem que entender, principalmente, qual a relação entre estas classes. O exemplo que te dei é o início desse problema, seria interessante ter mais informações sobre este problema.

Se você precisa entregar isso na aula/curso, te recomendo a marcar um tempinho com um professor ou colega que saiba mais, e aprenda sobre isso. Infelizmente não somos professores aqui, apenas tiramos dúvidas.

Eu dei o início da resolução pra você, te dei dicas pra estudo, agora fica com você. Se pesquisar no Google tem muito material bom sobre os assuntos que te recomendei.

:wink:

Outra coisa, para esse tipo de coisa, não use arrays primitivos, use List:

Ela te dá as funções para adicionar, remover, etc. e não tem limitações quanto a tamanho.