Como fazer algo assim... nem sei como explicar... so desenhar

23 respostas
Hebertbc

Boa tarde, tenho uma duvida simples mais nem sei como pesquisar isso…

public class teste{

public teste(teste novoTeste){
this = novoTeste; 
 // ? existe alguma maneira de fazer algo similar a isso?
}

}

obrigado pela atenção.

23 Respostas

Marlon_Meneses

hã?!

Giulio_Augusto

[code]# public class teste{
#
# public teste(teste novoTeste){
# this.novoTeste = novoTeste;
# // ? existe alguma maneira de fazer algo similar a isso?
# } [quote]

Seria isso ???

Hebertbc

Eu ainda acho ke to viajando… mais é algo mais o menos assim

public class teste{  

 int a;
 int b;
    
 public teste(teste novoTeste){  
  //queria fazer algo parecido com isso 
  this = novoTeste;   

  // em vez de fazer isso aki
 this.a = novoTeste.getA();
 this.b = novoTeste.getB();
 }        
}
lazarento

Oq vc ta querendo fzer ?

lazarento

public teste(int a , int b){ this.a = a; this.b = b; } ???

Explica oq vc quer fzer pra gente ver se tem uma maneira melhor de fzer oq vc quer fzer , rs

E

Desenhe então.

E

Você quer criar uma classe que se comporte como um nó de uma lista ligada, ou como um nó de uma árvore? (Ou seja, que tem uma referência para um objeto que pertence à mesma classe?)

robert.gamma

Cara, não sei se tô viajando mais que você :shock:

seria algo assim?

public class teste{

int a;

int b;

int result;
public soma(){
	result = a * b;

}

public teste novoteste = new teste(); 
this.getNovoTeste();

}

Marky.Vasconcelos

Voce quer copiar o objeto para esse ou usar a referencia dele para ser esse?

Hebertbc

quero saber se tem como fazer um construtor passando como parametro um objeto de mesma instancia e setar todos campos de uma vez.

public class teste{
 
 int a;

 public teste(teste novoteste){
  //isso aki num da, ja tentei
  this = novoteste;

  //o correto é fazer isso, setando todos os campos do objeto
  this.a = novoteste.a;
  //so que eu queria sabe se tem como fazer isso automatico, setar todos duma vez
 }

}
Hebertbc

Isso mesmo era a palavra que faltava, usar ele como referencia.

B

Usar a referência dele para sobrepor a própria classe(this) enquanto está dentro dela, isso não dá para fazer.

O que dá para fazer é copiar todos os atributos do objeto passado para o novo objeto.

Hebertbc

Aeee

Bruno Laturner:
Usar a referência dele para sobrepor a própria classe(this) enquanto está dentro dela, isso não dá para fazer.

O que dá para fazer é copiar todos os atributos do objeto passado para o novo objeto.

Era o que eu suspeitava… mto obrigado pela ajuda de todos… desculpe gastar o tempo de vcs…

C

Estude um pouco sobre ponteiros de java!
Você vai entender porque isso é assim, e vai te ajudar muito com seus próximos programas.

Marky.Vasconcelos

Cristianbf:
Estude um pouco sobre ponteiros de java!
Você vai entender porque isso é assim, e vai te ajudar muito com seus próximos programas.

E descobrir que ponteiros não existem em java certo?

L

Pelo que entendi, você quer criar uma instancia onde todos os atributos são uma cópia de outra instancia. Para fazer isso pesquise sobre o metodo clone() e a inteface Cloneable

B

Ele quer fazer uma instanciação de objeto:

public class MinhaInstancia {
  public class Curso {
    String nomeDoCurso;
    double valorDoCurso;
  }

  public static void main(String[] args) {
  MinhaInstancia minhaInstancia = new MinhaInstancia();
  Curso cursojava = minhaInstancia.new Curso();
  cursojava.nomeDoCurso = "Curso de Java";
  cursojava.valorDoCurso = 55;
  }
}

Sou iniciante em JAVA, mas creio que assim dÊ certo.

Felagund

Vc pode fazer algo assim

public class Teste{
   //private static Teste instance;
   private int a;

  public Teste(int a){
     this.a = a;
  }
  public static Teste copyInstance(Teste instance){
     return new Teste(instance.getA());
  }

  public int getA(){
     return a;
  }
}

Do modo que vc quer é estranho.

Nesse codigo eu copio os campos para um novo objeto. e retorno ele.

welitonjose

oq vcs qrem fazer galera

Sorriso

Utilizando interface Cloneable para poder clonar um objeto e trabalhar com ele sem problemas.

public class TheClone implements Cloneable {

	private String name;
	private int year;

	public TheClone() {
	}

	public Object clone() {
		try {
			return super.clone();
		} catch (CloneNotSupportedException e) {
			return null;
		}
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		this.year = year;
	}
}
Criando a classe de inicialização do programa
public class main {

	public static void main(String[] args) {
		
		// Criando um objeto
		TheClone original = new TheClone();
		original.setName("Sorriso");
		original.setYear(20);
		
		// Efetuando seu clone
		TheClone copiaOriginal =  (TheClone)original.clone();
		
		// Printando os valores  clonados
		System.out.println("O clone do original é: " + copiaOriginal.getName());
		System.out.println("Sua idade é: " + copiaOriginal.getYear());
		
		// Alterando a copia
		copiaOriginal.setName("Mudou o nome");
		
		// Printando o original para verificar se com a alteração
		// da cópia ele não foi alterado
		System.out.println("O nome do original é: " + original.getName());
		
		// Printando o nome da cópia alterado
		System.out.println("O clone do original é: " + copiaOriginal.getName());
		
	}
}

Exemplo de como utilizar o clone, simples.

E o objeto clonado não possui mais referencias ao seu clone pois após o clone serão coisas distintas.

Flw, espero ter ajudado.

C

Mark_Ameba:
Cristianbf:
Estude um pouco sobre ponteiros de java!
Você vai entender porque isso é assim, e vai te ajudar muito com seus próximos programas.

E descobrir que ponteiros não existem em java certo?

Falei ponteiros porque eu não lembrava o nome do que java realmente usa, se você pesquisar sobre ponteiros em java você descobre: :wink:

:arrow: Ponteiros não existem em java, é usado referências.
:arrow: Ponteiro possui um endereço fixo na memória, refência pode ter seu endereço alterado.
:arrow: Ponteiros podem apontar para partes vazias na memória, conhecida como null.
No caso da referência, significa que ela não foi estabelecida ainda.
:arrow: Referências são melhores para acessar variáveis, e é mais seguro que ponteiros.
:arrow: O mais próximo que java tem de ponteiros é a instanciação de classes.

Não tenho nada contra seu comentário, só acho que você deveria fazer comentários mais contrutivos.

Marky.Vasconcelos

Ta… o que eu quis dizer é que não existe ponteiros em Java assim como os do C.

E de dentro da classe é impossivel fazer o que ele quer sem os ponteiros do C.

C

Mark_Ameba:
Ta… o que eu quis dizer é que não existe ponteiros em Java assim como os do C.

E de dentro da classe é impossivel fazer o que ele quer sem os ponteiros do C.

A tá! Foi por isso que eu mandei ele estudar! hehehe

Criado 26 de janeiro de 2010
Ultima resposta 27 de jan. de 2010
Respostas 23
Participantes 14