Duvida: get, set, this

e ai rapaziada…

**tenho duvidas sobre as funcionalidades do get, set e this…

se alguem poder responder, agradeço…
valeu

ola,
get e set nao sao palavras reservadas em java, sao apenas abstracoes de metodos para uma melhor organizacao do codigo. o get eh pra pegar algum valo de variavel, e o set pra ajustar.

ja o this serve pra referenciar uma variavel desta classe, ou seja, ou seja, o this equivale à própria classe onde ele esta.

note no codigo abaixo a importancia do get e do set: o int valor é private, nao da para acessar ele de fora da classe fazendo:
Teste t = new Teste();
t.valor = 1905;//impossivel fazer isso, aqui usa-se o set
System.out.println(t.valor); //impossivel fazer isso, aqui usa-se o get

espero que tenha ficado facil entender o this tambem…
acima eu fiz:
Teste t = new Teste();
t.valor;

mas se eu estiver querendo acessar valor de dentro da propria classe, como no codigo abaixo, eu faço estaClasse.valor, ou seja, this.valor.

class Teste {
  private int valor;
  
   public int getValor() { //METODO GET
     return this.valor;
   }

   public void setValor(int novo) { //METODO SET
     this.valor = novo;
   }


}

espero nao ter complicado demais.

e ai cara…entendi sua explicação…ficou mais claro agora…
é pq tô fazendo exercicio de oop e fiz um programinha famoso do carro:

**[quote]public class programaCarros{

private String modelo;
private String cor;
private int ano;
private float km;

public programaCarros(){
	this.ano = 2000;
	this.modelo = "F250";
	this.km = 6500;
}


public void setAlteraAno( int mudanca ){
	this.ano = mudanca;
}
public void getMostraAno(){
	System.out.println(this.ano);
}
public void setAlteraModelo( String mudanca ){
	this.modelo = mudanca;
}
public void getMostraModelo(){
	System.out.println(this.modelo);
}
public void setAlteraKm( float d ){
	this.km = d;
	
}
public void getMostraKm(){
	System.out.println(this.km);
}

}[/quote]

**fiz alguns metodos pra mudar os valores e mostrar os novos valores…
** todos meus atributos estão private, por isso estou usando o set, get e this…
**fiz outra classe pra mudar os valores e mostrá-los…como faço especificamente??
valeu…

cara…
eu acho q vc não presica usar “this” nesse caso pq vc não tem variaveis com nomes iguais…
no caso soh c vc usa-se a ano no lugar de mudança assim

public void setAlteraAno( int ano ){
this.ano = ano;
}

um conselho q eu sempre doh eh q não use o this ao menos q for extremamente necessario pq gera muita confusão…

olha esse modelo de classe

public class programaCarros{ 

   private String modelo; 
   private String cor; 
   private int ano; 
   private double km; 

   public programaCarros(){ 
      setAno( 2000 ); 
      setModelo( "F250" ); 
      setKm( 6500 ); 
   } 

   public void setAno( int ano ){ 
      this.ano = ano; 
   } 

   public int getAno(){ 
      return this.ano; 
   } 

   public void setModelo( String modelo ){ 
      this.modelo = modelo; 
   } 

   public String getModelo(){ 
      return this.modelo; 
   }
 
   public void setKm( double km ){ 
      this.km = km; 
   } 

   public double getKm(){   
      return this.km; 
   } 

}

[]'s

ou ainda:

[code]public class ProgramaCarros{

private String modelo; 
private String cor; 
private int ano; 
private double km; 

public ProgramaCarros(){
    ano    = 2000;
    modelo = "F250";
    km     = 6500;
}

public void setAno( int ano ){ 
   this.ano = ano; 
} 

public int getAno(){ 
   return this.ano; 
} 

public void setModelo( String modelo ){ 
   this.modelo = modelo; 
} 

public String getModelo(){ 
   return this.modelo; 
} 

public void setKm( double km ){ 
   this.km = km; 
} 

public double getKm(){    
   return this.km; 
} 

} [/code]

:wink:

Eu sei que está sendo inicializado mas esta é a melhor forma…

public programaCarros(){
this.ano = 2000;
this.modelo = “F250”;
this.km = 6500;

hum descordo do ultimo post

segundo a definição os acessos a variáveis e atributos de classes
devem ser feitos atraves de seus métodos sets e gets

facilita a manutenção de codigos, mas para classes como essa
pequenas tanto faz os 3 jeitos de codificar :razz:

de todo jeito vai funcionar igual :lol:

[]´s