OO iniciante

Estou com dificuldades com o método separar(). Não consigo fazer ele mudar o extadoCivil da Pessoa. E se eu eu atribuo a string “Separado” ao método separar, gera este erro: The left-hand side of an assignment must be a variable

public class Pessoa {  
        private String nome, estadoCivil;  
          
        public Pessoa(String nome, String estadoCivil){  
                this.nome = nome;  
                this.estadoCivil = estadoCivil;  
        }  
  
        public String getEstadoCivil(){  
                return estadoCivil;  
        }  
        public void setEstadoCivil(){  
                this.estadoCivil = estadoCivil;  
        }  
          
}  
public class Casamento {  
        private String pessoa1, pessoa2;  
  
        public Casamento(String pessoa1, String pessoa2){  
                this.pessoa1 = pessoa1;  
                this.pessoa2 = pessoa2;  
        }  
        public void separar(){  
                pessoa1.getEstadoCivil();    
        }  
          
}  

[code]
public class app {

public static void main(String[] args) {

  Pessoa pessoa1 = new Pessoa("josé", "casado");  
  Pessoa pessoa2 = new Pessoa("maria", "casado");  
    
  System.out.println(pessoa1.getNome() + ", " + pessoa1.getEstadoCivil());  
  System.out.println(pessoa2.getNome() + ", " + pessoa2.getEstadoCivil());  
    
  Casamento casamento1 = new Casamento(pessoa1, pessoa2);  
    
  casamento1.separar(pessoa1, pessoa2);  
    
  System.out.println(pessoa1.getNome() + ", " + pessoa1.getEstadoCivil());  
  System.out.println(pessoa2.getNome() + ", " + pessoa2.getEstadoCivil());  

}

}[/code]

Olá amigo, fiz algumas alterações, veja se entenda:

[code]
public class Pessoa {

private String nome, estadoCivil;    
        
public Pessoa(String nome, String estadoCivil){    
	setNome(nome);
    setEstadoCivil(estadoCivil);    
}    

public String getNome(){    
	return nome;    
}    

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

public String getEstadoCivil(){    
	return estadoCivil;    
}    

public void setEstadoCivil(String estadoCivil){    
    this.estadoCivil = estadoCivil;    
}    

}[/code]

public class Casamento {    
       
	//private String pessoa1, pessoa2;    
    
    public Casamento(Pessoa pessoa1, Pessoa pessoa2){    
    	pessoa1.setEstadoCivil("CASADO");
      	pessoa2.setEstadoCivil("CASADO"); 
    }    
        
    public void separar(Pessoa pessoa1, Pessoa pessoa2){    
    	pessoa1.setEstadoCivil("SEPARADO");      
    	pessoa2.setEstadoCivil("SEPARADO");
    }    
            
} 
public class App {    
    
   public static void main(String[] args) {    
          
      Pessoa pessoa1 = new Pessoa("josé", "SOLTEIRO");    
      Pessoa pessoa2 = new Pessoa("maria","SOLTEIRO");    
          
      System.out.println(pessoa1.getNome() + ", " + pessoa1.getEstadoCivil());    
      System.out.println(pessoa2.getNome() + ", " + pessoa2.getEstadoCivil());    
          
      Casamento casamento1 = new Casamento(pessoa1, pessoa2);    

      System.out.println(pessoa1.getNome() + ", " + pessoa1.getEstadoCivil());    
      System.out.println(pessoa2.getNome() + ", " + pessoa2.getEstadoCivil());    
          
      casamento1.separar(pessoa1, pessoa2);    
          
      System.out.println(pessoa1.getNome() + ", " + pessoa1.getEstadoCivil());    
      System.out.println(pessoa2.getNome() + ", " + pessoa2.getEstadoCivil());    
    
   }    
    
}  

Qualquer dúvida me pergunte… vlw

O erro está aqui:

public void setEstadoCivil(){  
                this.estadoCivil = estadoCivil;  
        }  

Voce atribuiu o valor da mesma variável. Tanto this.estadoCivil como estadoCivil são a mesma variável.

Faça assim:

public void setEstadoCivil(String estado){  
                this.estadoCivil = estado;  
        }  

usar o método separar quase sempre gera problemas, principalmente se exister classes filhas.
O ideal mesmo é evitar invocar o método casar();

Deu certo! Valeu rapazeada!

[quote=ivansalvadori]usar o método separar quase sempre gera problemas, principalmente se exister classes filhas.
O ideal mesmo é evitar invocar o método casar();
[/quote]

belo exemplo… kkkkk