Criando objectos

oi

hoje minha duvida é na criação de objectos…
tava programando no meu programa de uma biblioteca quando tava criando objectos dos utilizadores quando me surgiu uma duvida…

normalmente inicia-se um objecto assim:

Utilizador bruno = new Utilizador();

mas se eu quiser que o nome do objecto(neste caso bruno),seja dado pelo utilizador??basta por o nome da variavel do nome pedido ao utilizador?tipo:

Utilizador nome =new Utilizador();

???

postem aí qlq coisa

obrigado

-TUGA-

Cara, acho que nao tem como, mas pra que exatamente voce precisa que alguem informe o nome do objeto a ser instanciado. Voce tem que alocar objetos dinamicamente ao andar da aplicaçao.

vlw

era mais um bixinho que tinha para ver se dava para mudar…

é que eu gosto de quando estou programando e me surge uma duvida, ela seja explicada, e para isso nada melhor que o portal java…voces são demais!:slight_smile:

obrigado

-TUGA-

Cara, falando bem sinceramente, acho que vc tah confundindo as coisas

Utilizador bruno = new Utilizador();

Você quer mudar o “bruno”? porque vc quer trocar isso?! ‘bruno’ é o nome da variavel que referencia o objeto Utilizador que vc criou, e esse nome (da variavel) pode ser o que vc quizer, e olha que tem gente que realmente coloca o que quizer:

Utilizador banana = new Utilizador();
Utilizador brasil = new Utilizador();
Utilizador h = new Utilizador();
Utilizador flamengo = new Utilizador();

Isso é tudo a mesma coisa, cria um Utilizador usando construtor padrão. Um sistema com qualquer um desses vai fazer a mesma coisa

Agora se vc quer que o objeto Utilizador tenha um nome e que vc possa criar ele informando um nome ou que ele ‘se de’ um nome, vc tem que ter uma variavel de instância chamada nome por exemplo dentro da classe Utilizador e dois construtores:

exemplo:

Utilizador:

	class Utilizador {
		// uma lista qualquer de nomes que pode ser usados pelo Utilizador para
		// gerar um nome
		private static String[] nomes = { "fulano", "ciclano", "beltrano",
				"maria", "jose", "pedro", "joao", "betina", "george", "luiz",
				"willian", "jennifer", "nelly", "joana", "manuel", "joaquim" };

		private static String[] sobrenomes = { "oliveira", "pereira",
				"cardoso", "bush", "silva", "alcantra", "suzuki" };

		private String nome;

		// cria um Utilizador com o nome informado
		private Utilizador(String nome) {
			this.nome = nome;
		}

		// gera um nome para o Utilizador
		public Utilizador() {
			// o nome gerado depende da sua criatividade
			int pn = new Long(System.currentTimeMillis() % nomes.length)
					.intValue();
			int sn = new Double(Math.random() * sobrenomes.length).intValue();
			this.nome = nomes[pn] + " " + sobrenomes[sn];
		}

		public String getNome() {
			return nome;
		}
	}

Teste:

	public static void main(String[] args) {
		Utilizador utilizador1 = new Utilizador();
		Utilizador utilizador2 = new Utilizador("Seu Nome");
		System.out.println(utilizador1.getNome());
		System.out.println(utilizador2.getNome());
	}

Sendo que eu gerei o nome usando alguma coisa pre definida em arrays, mas ali vai da criatividade de criar o nome que quizer…