Tô me confundindo muito com isso… Get, Set e Construtores…
É o seguinte, construtores geralmente são usados para criar e atribuir valores às variáveis de instância do objeto, certo?
E os acessadores e modificadores permitem a captura e a configuração de coisas, no caso aqui as variáveis de instância, certo?
Ok, aqui eu crio uma classe Retângulo e o seu construtor com as respectivas variáveis de instância:
package retangulo;
public class Retangulo {
	//criando o construtor
	Retangulo(){
		int point1;
		int point2;
	}
	//métodos Get and Set
	int getPoint1(){
		return point1;
	}
	int setPoint1(int newPoint){
		point1 = newPoint;
	}
	public static void main(String[] args) {
		Retangulo r = new Retangulo();
		r.setPoint1(30);
		System.out.println(r.getPoint1());
	}
}
E no console:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	point1 cannot be resolved
	at retangulo.Retangulo.setPoint1(Retangulo.java:20)
	at retangulo.Retangulo.main(Retangulo.java:28)
Acho que eu tô fazendo confusão com tudo! T.T
Alguém pode me explicar por qual motivo não posso usar Get e Set para configurar as variáveis de instância que estão no construtor?
Putz… tô realmente muito confusa sobre o que tá acontecendo aí… Além de que point1 e point2 são indicadas como se nunca tivessem sido inicializadas…
Obrigada! o/
         
        
          
        
           
           
           
         
         
            
            
          
       
      
        
        
          Não, não, no construtor você só inicializa os valores. A criação é feita fora dele:
[code]package retangulo;
public class Retangulo {
int point1;
int point2;
//criando o construtor
Retangulo(){
    point1 = 0;
    point2 = 0;
}
//métodos Get and Set
int getPoint1(){
	return point1;
}
int setPoint1(int newPoint){
	point1 = newPoint;
}
public static void main(String[] args) {
	Retangulo r = new Retangulo();
	r.setPoint1(30);
	System.out.println(r.getPoint1());
}
}
[/code]
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Troque
 public class Retangulo {  
   
   
     //criando o construtor  
     Retangulo(){  
         int point1;  
         int point2;  
     }  
por
 public class Retangulo {  
     int point1;
     int point2;
     //criando o construtor  
     Retangulo(){  
     }  
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Olha só agora…
package retangulo;
	
public class Retangulo {
	int point1;
	int point2;
	//criando o construtor
	Retangulo(){
		int point1 = 0;
		int point2 = 0;
	}
	//métodos Get and Set
	int getPoint1(){
		return point1;
	}
	int setPoint1(int newPoint){
		 point1 = newPoint;
	}
	public static void main(String[] args) {
		Retangulo r = new Retangulo();
		r.setPoint1(30);
		System.out.println(r.getPoint1());
	}
}
E no console…
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	This method must return a result of type int
	at retangulo.Retangulo.setPoint1(Retangulo.java:21)
	at retangulo.Retangulo.main(Retangulo.java:30)
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          o seu método setPoint não precisa retornar nada, no caso ele retorna void, pois ele só precisa inicializar a variavel
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Eu vou ter que usar Set como void então, né?
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Consegui! o/
=DD
Isso!
Então… alguma dica pra eu ler mais sobre métodos de configuração e construtores? =D
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Isso. E dentro do construtor você só usa os ints declarados fora. Não precisa escrever a palavra “int”.
Retangulo(){
[color=“red”]int[/color] point1 = 0;
[color=“red”]int[/color] point2 = 0;
}
Se vc escrever não vai dar erro. Mas os points de dentro do construtor não serão os mesmos point declarados fora dele.
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          E mais uma coisa… por qual motivo eu não posso inicializar as variáveis de instância somente no construtor? T.T
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          ENTENDI! =DDD
public class Retangulo {
	int point1;
	int point2;
	
	
	//criando o construtor
	Retangulo(){
		point1=0;
		point2=0;
	}
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Mas faz sentindo eu criar as variáveis de instância fora e depois inicializar todas no construtor? =S
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          
Na verdade, se a inicilização é direta, não faz sentido. É melhor usar diretamente mesmo:
[code]public class Retangulo {
int point1 = 0; //isso roda antes de todos os construtores
int point2 = 0;
//criando o construtor
public Retangulo(){
}
[/code]
Nesse caso, quando usar no construtor?
a) Use quando sua variável não for tão simples assim:
[code]public class Forma {
List pontos = new ArrayList();
//criando o construtor
public Forma(){
       pontos.add(0);
       pontos.add(1);
       pontos.add(2);
}[/code]
b) Use quando você quiser obrigar o usuário a digitar certos parâmetros:
[code]public class Retangulo {
//criando o construtor
public Retangulo(int a, int b){
	point1=a;
	point2=b;
}[/code]
c) Use quando sua classe não tiver um “set” para aquele atributo.
[code]public class Retangulo {
//criando o construtor
public Retangulo(int a, int b){
	point1=a;
	point2=b;
}
public int getPonto1() {
return point1;
}
public int getPonto2() {
return point2;
}
}[/code]
         
        
        
           
           
           
         
         
            
            
          
       
      
        
        
          Ahhh! =D
Entendi agora… com esses casos de usos mais específicos fica mais fácil então! =D