Duvida de criação de objetos

4 respostas
R

Ola sou iniciante em java e gostaria de saber ,como criar objetos em tempo de execução ,a quantidade de objetos sera definida pelo usuario

em outras linguagens que trabalhei fiz assim ,sendo que criava variaveis para armazenar valores.

String nomeObjeto;

For(int i=1;i<= quantidadeDeObjetos;i++){

nomeObjeto=Objeto+i;

nomeObjeto=i+10;

}

assim de o usuario quiser 3 “Objetos”(Variaveis)ficaria assim.

Objeto1=11
Objeto2=12
Objeto3=13

4 Respostas

mrrbigu

Se você fizer algo do tipo em java, você estará criando os objetos, mas perderá a referência deles a cada novo loop do for, e eles ficarão à disposição da coleta de lixo.
Então o que você precisa é guardar a referência deles, num ArrayList por exemplo e depois retornar o ArrayList para o usuário.

Obs: O código “nomeObjeto=i+10;” não funciona em java, pois você está atribuindo um inteiro para a String.

Poneis123

Para fazer o que vc disse, precisa de algo assim:

int qtdUsario = 3; //este valor é digitado pelo usuario

List listaObjetos = new ArrayList();

for(int i=0; i<qtdUsuario; i++){
  listaObjetos.add(i+10);
}

A listá ficará da seguinte forma:

listaObjetos[0] = 10
listaObjetos[1] = 11
listaObjetos[2] = 12>

F

Boa tarde!

Bom você pode fazer o que quer de várias formas.

Eu te passo uma dica ou uma ideia para poder implementar exatamente aquilo que precisa. Estou te passando um exemplo bem fora das boas práticas mas acho que passa a idéia da coisa :wink:

import java.util.ArrayList;
import java.util.List;

public class Main {
	
	public static class Objeto{
		private String nome;
		
		private Integer valor;

		public String getNome() {
			return nome;
		}

		public void setNome(String nome) {
			this.nome = nome;
		}

		public Integer getValor() {
			return valor;
		}

		public void setValor(Integer valor) {
			this.valor = valor;
		}
		
	}
	
	public static void main(String[] args) {
		
		Integer total = 0;
		List<Objeto> objetos = new ArrayList<Objeto>();
		if (args[0] != null){
			total = Integer.parseInt(args[0]);
		}
		
		for (int i=0; i<total; i++){
			Objeto obj = new Objeto();
			obj.setNome("Objeto"+i);
			obj.setValor(10+i);
			objetos.add(obj);
		}
		
		for (Objeto o : objetos){
			System.out.println(o.getNome()+"="+o.getValor());
		}
	}

}

Espero ter ajudado.
Abraço

R

Muito obrigado pela dicas de vcs…
vou olhar os codigos e implentar o meu…

Grato

Renato brum

Criado 15 de março de 2010
Ultima resposta 16 de mar. de 2010
Respostas 4
Participantes 4