Olá, estou precisando acessar um método que esta em outra classe. Minha dúvida é se preciso utilizar synchronized ou não.
public class PessoaTrabalhando {
int trabalho;
String id;
public void setQuantidadeTrabalho(int trabalho) {
this.trabalho = trabalho;
}
public int getQuantidadeTrabalho() {
return this.trabalho;
}
public void setID(int id) {
this.id = id;
}
public int getID() {
return this.id;
}
}
public class Gerene {
PessoTrabalhando pt;
int total = 0;
public Gerente(PessoaTrabalhando pt) {
this.pt = pt;
}
public void contaPessoasTrabalhando() {
this.total += this.pt.getQuantidadeTrabalho();
}
}
É minha dúvida é se o método QuantidadeTrabalho deve conter o synchronized por ele estar sendo acessado por duas classe diferentes.
Acredito que o seu medo seja que as 2 classes acessem o mesmo tempo. Bom isso só vai acontecer se você estiver programando com multiplos processos (treads).
Pode tirar mais dúvidas no link abaixo. http://www.guj.com.br/articles/43
Não tenho certeza se entendi o que perguntou, mas como ninguém te respondeu até agora, vou tentar. Isso ajuda a pensar como funciona Java.
Se vc quer acessar as funcionalidades de PessoaTrabalhando faça de Gerente uma subclasse (extends) de PessoaTrabalhando. Faça um construtor para PessoaTrabalhando e o chame com super em Gerente. Acho que é assim que se consegue o que quer, como disse, se é que entendi o que quer.
Se fui primário demais e tudo isso é de seu conhecimento e o que disse nada responde ao que perguntou, peço desculpas.
Até o ponto em utilizar o synchronized em situações mais complexas entendi, tipo onde você adiciona e retira elementos de uma mesma fila, a ideia de produtor/consumidor, até esse ponto entendido. A minha dúvida é se tenho que utilizar sincronização com atualização de váriáveis simples, atributos de outras classes.
eu só nao entendi sua lógica, você coloca a referência de um objeto pessoaTrabalhando dentro do objeto Gerente…e você consegue adicionar somente 1 pessoa trabalhando…mas no final esta incrementando, muito estranho isso…
diga qual a lógica de negócios que podemos te dizer uma forma mais “saudavel” de transformar em classes…