Dúvida em POO e vetores { String status = "RESOLVIDO" }

7 respostas
lucasgarofolo

Olá, pessoal. Um professor mandou a gente dar seguimento a uma classe dele, e tinha que ser do jeito que ele estava fazendo,
porém, ao ver ele fazendo, nao concordei muito, mas foi uma sacada inteligente. Ao tentar fazer aqui em casa, deu erro, o que eu já esperava.
Seguinte, eu vou postar o código comentado aqui embaixo, e alguem da uma olhada e ve se é possível.

// classe Contato com o método adicionar valores nas variaveis de classe.
private String nome;
private String telefone;
private String email;
private String endereco;

public void adicionar(){
     //aqui o professor pediu pra gente criar algum mecanismos para inserir os valores nos atributos, seja com Swing ou System.out mesmo.
    // não tem retorno.
}

Agora a classe Agenda:

{
      Contato contato[] = new Contato[10]; //criou um vetor da classe contato
      private int totalContato = 0;

      public void adicionar(){
               contato[totalContato].adicionar(); //ele fez isso em sala explicando que ao chamar o método adicionar da classe contato, vc inseriria os valores nos atributos da classe Contato, e esse objeto ja ficaria guardado no vetor contato[] com os valores o objeto em questão.
               totalContato++;
       }

isso é válido?

7 Respostas

david_ware

Olha… Não faz muito sentido um método adicionar sem parâmetros porque vc teria que ter os valores para atribuir aos campos do obeto contato… podes fazer isso pelo construtor d classe ou por métodos setters…

Vlw

lucasgarofolo

então, eu programo em MVC, tudo qe eu modelo é em MVC,
eu cheguei a falar pro professor se poderia mudar a lógica dele,
ele falou que não, qe ele nao precisa de getters e nem setters por enquanto.
Vou ter qe ver isso na sexta, pq nao faz sentido mesmo não.

getAdicted

lucasgarofolo:
então, eu programo em MVC, tudo qe eu modelo é em MVC,
eu cheguei a falar pro professor se poderia mudar a lógica dele,
ele falou que não, qe ele nao precisa de getters e nem setters por enquanto.
Vou ter qe ver isso na sexta, pq nao faz sentido mesmo não.

Opa, Tudo bem?

Não procure entrar em conflito com o professor da sua faculdade. Tente conversar com ele, em particular, de forma a não expô-lo, caso ele esteja errado, claro.

Pelo que eu entendi, ele pecou em um ponto, e aparemente, você tem um certo conhecimento, então, é natural que você se sinta incômodado, mas entenda que ele está apenas seguindo a grade curricular do curso, dessa forma, atendendo aqueles que possuem um conhecimento inferior ao seu e que tambem estão lá para aprender. :thumbup:

Me corrija se eu estiver errado…

[]'s

lucasgarofolo

getAdicted, não discordo e muito pelo contrário, eu tenho esse professor como um dos meus ídolos.
Ele leciona Estrutura de dados, e a linguagem escolhida pela faculdade para exemplificar foi o java, ele até brincou falando que não conhecia java,
e de modo algum eu vou expô-lo, como já disse, tenho ele como um dos caras mais brilhantes que eu conheço,
e pra esse problema ai do código, aposto que ele fez isso propositalmente hahahaha

mas obrigado pelo conselho !
abraço e obrigado.

A

Acho que você não indicou qual erro deu (que você já esperava).

Batendo olho, imagino que vai dar um nullpointer ao chamar o método adicionar em um elemento do array.
Você instancia o array, mas não vi instanciar os objetos dele.

Com essa instanciação o código pode funcionar sim… o método adicionar seria responsável por preencher valores para a classe.

getAdicted

lucasgarofolo:
getAdicted, não discordo e muito pelo contrário, eu tenho esse professor como um dos meus ídolos.
Ele leciona Estrutura de dados, e a linguagem escolhida pela faculdade para exemplificar foi o java, ele até brincou falando que não conhecia java,
e de modo algum eu vou expô-lo, como já disse, tenho ele como um dos caras mais brilhantes que eu conheço,
e pra esse problema ai do código, aposto que ele fez isso propositalmente hahahaha

mas obrigado pelo conselho !
abraço e obrigado.

Então está tudo em casa :slight_smile:

[]'s

lucasgarofolo

eu consegui resolver o problema,
eu criei a variavel de trabalho

private Contato contato[];

que é um vetor que vai receber objetos da classe contato,
só que eu não criei o objeto dentro do contato,
então fica da seguinte forma.

private Contato contato[];
        private int totalContato;
        //construtor

        public Agenda() {
		contato = new Contato[10]; // especifiquei o tamanho, mas só isso ainda nao iria pegar.
                totalContato = 0;
	}
        
        public void adicionar() {
		if (!this.verificaTamanho())
			throw new IllegalArgumentException("Vetor lotado!");
		else {
			contato[totalContato] = new Contato(); //aqui eu criei o objeto para a posição selecionada
			contato[totalContato].adicionar(); //aqui eu chamei o método para adicionar valores as variaves da minha outra classe.
			totalContato++;
		}
	}

assim ficou no esquema ! e está resolvido.

Criado 24 de agosto de 2011
Ultima resposta 7 de set. de 2011
Respostas 7
Participantes 4