Duvida sobre variáveis de referência

8 respostas
D

Olá pessoal, este é meu primeiro post nesse forum. Estou com uma duvida nessa questão 7 (em anexo). Na observação diz que não é necessário manter variáveis para essas referencias, então não posso fazer, por exemplo:

Cliente a = new Cliente ( parametros aqui... )

Então como devo criar o objeto? Seria através de um método static? Como por exemplo:

Cliente.criarCliente ( parametros aqui... )

ou

Cliente a = Cliente.criarCliente ( parametros aqui... )

Outra dúvida, o método construtor da classe cliente no exercicio não recebe o endereço como parametro, a solução seria usar um “setEndereco” certo? Mas como fazer isso se não tenho uma variável como referência para o cliente? Se não ficou muito claro, explico de novo. Aguardo respostas!


8 Respostas

War_Paz

Não creio que seja isso…

Primeiro, você não pode construir um objeto por métodos, apenas construtores (Isso é meio que lógico)

Segundo, não dá pra usar o modificador “static” em um construtor

E terceiro, se você cria um objeto, você já está criando uma referência para ele na memória. Tenta rever o exercício lá do começo ou posta ele todo aqui

Ziru

War Paz:
Não creio que seja isso…

Primeiro, você não pode construir um objeto por métodos, apenas construtores (Isso é meio que lógico)

Segundo, não dá pra usar o modificador “static” em um construtor

E terceiro, se você cria um objeto, você já está criando uma referência para ele na memória. Tenta rever o exercício lá do começo ou posta ele todo aqui

Na verdade, alguns objetos em Java só podem ser criados por métodos extáticos de sua classe.

EDIT:

Aki é um exemplo dele.

Connection conn = DriverManager.getConnection(arg0);
War_Paz

Ziru:
War Paz:
Não creio que seja isso…

Primeiro, você não pode construir um objeto por métodos, apenas construtores (Isso é meio que lógico)

Segundo, não dá pra usar o modificador “static” em um construtor

E terceiro, se você cria um objeto, você já está criando uma referência para ele na memória. Tenta rever o exercício lá do começo ou posta ele todo aqui

Na verdade, alguns objetos em Java só podem ser criados por métodos extáticos de sua classe.

Opa, desculpa então. Também tô aqui pra aprender, né? :slight_smile:

Obrigado por corrigir :slight_smile:

Ziru

Sem problemas, estamos todos aqui para aprender mesmo.

regis_hideki

darkmen:
Olá pessoal, este é meu primeiro post nesse forum. Estou com uma duvida nessa questão 7 (em anexo). Na observação diz que não é necessário manter variáveis para essas referencias, então não posso fazer, por exemplo:

Cliente a = new Cliente ( parametros aqui... )

Então como devo criar o objeto? Seria através de um método static? Como por exemplo:

Cliente.criarCliente ( parametros aqui... )

ou

Cliente a = Cliente.criarCliente ( parametros aqui... )

Outra dúvida, o método construtor da classe cliente no exercicio não recebe o endereço como parametro, a solução seria usar um “setEndereco” certo? Mas como fazer isso se não tenho uma variável como referência para o cliente? Se não ficou muito claro, explico de novo. Aguardo respostas!

Para não manter variáveis como referência, basta fazer:

new Cliente ( parametros aqui... )

Dá para, por exemplo, adicionar a uma lista da seguinte forma (poderia ser em um outro objeto tbm…):

List<Cliente> clientes = new ArrayList()<>;
clientes.add(new Cliente(parametros));

No segundo caso, existe uma referência ao Cliente gerado, é o clientes.get(indice), mas pelo escrito no exercício 8, acho que seu professor não está considerando isso como “manter variáveis para essas referências”.

Com esse clientes.get(indice) você pode chamar o set…

mas é só um chute… precisa dar uma olhada melhor no contexto dos exercícios para entender melhor o que ele quer. Dei apenas algumas possíveis ideias pra você ir pensando.

D

Obrigado pelas respostas pessoal, mas ainda não entendi direito. Vou postar o exercício todo.

Sleipbr

eu não sei se a maneira que eu to fazendo aqui está correta, mas eu pensei a solução dessa questão dessa maneira:

Clientes

import java.util.ArrayList;


public class Clientes {
	
	private String nome;
	private static ArrayList<Clientes> c = new ArrayList<Clientes>();
	
	public Clientes(String nome) {
		this.nome = nome;
	}
	
	public static void criaCliente(String nome) {
		c.add(new Clientes(nome));	
	}
	
	public static void PegarClientes() {
		int i = c.size();
		System.out.println(i);
		for (Clientes contato: c) {
		      System.out.println(contato.nome);
		    }

	}

	public String getNome() {
		return nome;
	}

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

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Clientes.criaCliente("Felipe");
		Clientes.criaCliente("Diego");
		Clientes.PegarClientes();

	}

}

O exercício pede para não utilizar variáveis de referência no main então, chama-se um método estático cria um objeto e coloca na lista estática ... chama um método para percorrer e pronto ai dar as respostas... Ele quer todos os objetos em uma lista foi isso que eu entendi que o exercício pediu.

regis_hideki

[quote=Ziru]

War Paz:
Não creio que seja isso…

Primeiro, você não pode construir um objeto por métodos, apenas construtores (Isso é meio que lógico)

Segundo, não dá pra usar o modificador “static” em um construtor

E terceiro, se você cria um objeto, você já está criando uma referência para ele na memória. Tenta rever o exercício lá do começo ou posta ele todo aqui

Na verdade, alguns objetos em Java só podem ser criados por métodos extáticos de sua classe.

EDIT:

Aki é um exemplo dele.

Connection conn = DriverManager.getConnection(arg0);

Vale lembrar que em algum momento está sendo chamado o construtor da classe criada, seja no próprio método estático, ou em algum outro lugar.

Criado 20 de dezembro de 2012
Ultima resposta 21 de dez. de 2012
Respostas 8
Participantes 5