Declaracao da variavel de objeto e comando this

Boa noite,
estou com uma duvida aqui que tentei reler diversas vezes a apostila e soh me complico mais.

vou direto ao assunto ok ?

qual a diferenca entre

Conta minhaConta;
minhaConta = new Conta();

E

minhaConta Conta;
minhaConta = new Conta();

nao entendi o motivo de poder inverte a declaracao das variaveis:S

e para que serveafinal o comando this. ?
exemplo this.saldo (Apostila caelum)

Muito obrigado a todos!

outra cosia,
eu poderia encurtar o codigo declarando ele assim:

Conta minhaConta = new Conta();

?

Bom vamo ver se consigo lhe ajudar:

// Declaração de variavel minhaConta do tipo Conta (ainda não existe um objeto)
Conta minhaConta

// instancia o objeto minhaConta (cria o objeto)
// sempre depois do new vem o construtor da classe
// toda classe tem um construtor, se vc não colocar um o compilador põe um sem argumentos  
minhaConta = new Conta();

O comando this refere-se sempre ao objeto que está em uso no momento

exemplo

[code]

// quando eu uso this.text é o mesmo que
// MyThis m = new MyThis();
// m.text = “texto”;

public class MyThis {
String text;
public void changeThis(String s){
this.text = s;
}

}[/code]

Espero ter ajudado!

opa valeu por responder camarada,
sobre a declaracao de variavel de objeto eu ate peguei, mas o this ainda estou meio que com duvidas.
vou ver se releio varias vezes ate entender :smiley:

ou se alguem puder tentar me explicar de outra forma tambem to aceitando :smiley:

Voce pode sempre declarar o objeto antes de usa-lo

[code]//declarando o objeto, sempre que declarar informe um valor para que este objeto possa ser utilizado
Pessoa pessoa = null

//Voce também pode declará-lo e instanciá-lo
Pessoa pessoa = new Pessoa();[/code]

O comando this é para dizer q vc esta utilizando um objeto global, declaro e acessado por toda sua classe, pois as vezes vc pode ter, mesmo não sendo aconselhável, objetos com mesmo nome declarado, sendo um local de seu metodo e um global de sua classe.

Espero ter ajudado!

Abraço!

[quote=pedrolima88]opa valeu por responder camarada,
sobre a declaracao de variavel de objeto eu ate peguei, mas o this ainda estou meio que com duvidas.
vou ver se releio varias vezes ate entender :smiley:

ou se alguem puder tentar me explicar de outra forma tambem to aceitando :D[/quote]

Imagina que você tem um int saldo; na classe Conta:

public class Conta {

int saldo;
}

Quando você queiser setar algum valor ao saldo, por exemplo, não há necessidade de usar o this, pois o this ultilizamos para diferenciar atributos da classe de outras classe. This = “esse”.

Mas se tivessemos:

public class Conta {

|--> int saldo;
|
|        public void setSaldo(int saldo) {
|      
|_ >  this.saldo = saldo; // Este segundo será o que entramos como parâmetro do método setSaldo.
      
 /*Aqui surgiu a necessidade de usarmos o "this", pois o objeto int que entrará como parâmetro também se chama "saldo", para a classe entender que
     você quer setar o valor no saldo dela, você ultiliza o "this"*/

    }
}

Sacou?

abçs

[quote=thiagocg]Voce pode sempre declarar o objeto antes de usa-lo

[code]//declarando o objeto, sempre que declarar informe um valor para que este objeto possa ser utilizado
Pessoa pessoa = null

//Voce também pode declará-lo e instanciá-lo
Pessoa pessoa = new Pessoa();[/code]

O comando this é para dizer q vc esta utilizando um objeto global, declaro e acessado por toda sua classe, pois as vezes vc pode ter, mesmo não sendo aconselhável, objetos com mesmo nome declarado, sendo um local de seu metodo e um global de sua classe.

Espero ter ajudado!

Abraço![/quote]

tipo isso:

class Conta {

	int numero;
	String nome;
	double saldo;
	double limite;
	
	void saca(double saldo) {
		this.saldo = this.saldo - saldo;		
	}
	
	void deposita(double quantidade) {
		this.saldo = this.saldo + quantidade;
	}
	//ta dizendo que this.saldo é sua variavel de instancia e que saldo é sua variavel local do metodo
        //palavra chave this para mostrar que esse é um atributo, e não uma simples variável.
        // mas isso é opcional
	void transfere(Conta destino,double saldo) {
		this.saldo = this.saldo - saldo;
		destino.saldo = destino.saldo + saldo;
	}

ahhh agora sim estou sacanado, o this ele aponta para avariavel global, ou seja a que esteja fora do metodo certo ?
o uso dele pode ser aconselhavel somente quando tem o mesmo nome as variaveis ou foi apenas coencidencia?

valeu :smiley:

Você pode usar o this sempre que se referir a um membro da classe e não somente quando houver ambiguidade de nomes.

opa!
muito obrigado mesmo.
Soh para confirmar entao:
isso aqui,

Conta c1;
c1 = new Conta();

eh a mesma coisa que isso aqui:
Conta c1 = new Conta();

?

valeu!

[quote=pedrolima88]opa!
muito obrigado mesmo.
Soh para confirmar entao:
isso aqui,

Conta c1;
c1 = new Conta();

eh a mesma coisa que isso aqui:
Conta c1 = new Conta();

?

valeu![/quote]

é isso ai são 3 etapas segundo a kathy sierra declaração, criação e atribuição

1 - Conta c1 --> declaração da variavel
2 - new Conta(); --> solicita a JVM alocar espaço pra um novo objeto
3 - Cota c1 = new Conta(); --> vincule o objeto e a referência, atribui o novo objeto Conta a variável de referência c1

opa beleza, mas isso esta violando alguma norma de boa programacao ? tipo as normas da sun ou algo do tipo? ainda nao cheguei a ler elas :T

hehehheeh, vc faz umas perguntas engraçadas, não ta violando nada naum , esse é o caminho.