nao entendi..heheehe...esse código acima eu escrevi aqui só pra ilustrar mesmo.....por exemplo, quando vc usa swing e vai implementar um cor no fundo, o método recebe um parametro do tipo Color c, aí faz assim:
setBackground(new Color(255,0,255); e eu nao entendi....tipo foi criando uma variavel do tipo color?..é por isso uso o new?
hehe
desculpa.....é que é muita coisa......fiquei meio perdido..rs
J
jaireltonPJ
setBackground(new Color(255,0,255);
O metodo setBackground() espera um parametro do tipo Color, então o que você está fazendo é criar um novo objeto Color e passar direto para o setBackground() sem guardar em uma variavel antes, isso é feito porque em alguns casos teriamos que criar uma variavel só pra passar o parametro para o metodo, sendo que ela não seria usada mais em lugar nenhum.
Esse codigo aí é equivalente a:
Color cor = new Color(255,0,255);
setBackground(cor);
T
tochoPJ
"jairelton":
setBackground(new Color(255,0,255);
O metodo setBackground() espera um parametro do tipo Color, então o que você está fazendo é criar um novo objeto Color e passar direto para o setBackground() sem guardar em uma variavel antes, isso é feito porque em alguns casos teriamos que criar uma variavel só pra passar o parametro para o metodo, sendo que ela não seria usada mais em lugar nenhum.
Esse codigo aí é equivalente a:
Color cor = new Color(255,0,255);
setBackground(cor);
Entendi... :lol:
Então eu posso criar meus próprios valores para passar por parâmeto?
por exemplo:
myCalculadora.Acao(Operador operador) << recebe um parametro do tipo operador myCalculadora.Acao(new Operador(+))
ou viajei demais? acho que a lógica disso nao tá lá essas coisas...mas é só pra ver se é isso....
Seria isso?...
Muito Grato
BrunoBastosPJ
quando vocÊ faz
myCalculadora.Acao(new Operador(+))
você tem um objeto anônimo. Você não vai ter a referência dele na linha debaixo. a difereça entre criar um
você pode continuar trabalhando com o objeto Operador depois de passalo para o método. Usando objetos anônimos depois daquela linha o seu objeto esta na mira do garbage collector
J
jaireltonPJ
"tocho":
Então eu posso criar meus próprios valores para passar por parâmeto?
Pode, esse é a essencia da orientação a objetos.
publicclassOperador(){//corpo da classe}publicclassCalculadora{publicvoidacao(Operadorop){}}Calculadoracalc=newCalculadora();calc.acao(newOperador());
"BrunoBastos":
Usando objetos anônimos depois daquela linha o seu objeto esta na mira do garbage collector
Não necessariamente, pode ser que haja uma referencia pra ele.
J
jbjaresPJ
Gostei muito do tópico, me fez aprender bastante, eu gostaria de aproveitar pra perguntar quais as aplicações mais comuns para objetos anonimos?
Obrigado
J
jaireltonPJ
Só passa-los como parametros, ou acessar um membro sem criar uma variavel, só isso. Pois não há muito o que fazer com um objeto sem uma variavel que o referencie...
A ideia a entender é: você não precisa armazenar a referencia em uma variavel para usa-la, só precisa ter em mente que se não armazenar, vai perde-la logo apos o uso.
J
jbjaresPJ
Entendi… é uma questão de boa engenharia e uma forma de evitar desperdiço. Resumidamente seria isso mesmo?
Abraço.
T
tochoPJ
Primeiramente obrigado a todos que responderam.
Vou fazer um código aqui para colocar em prática o que foi dito nesse tópico…e logo em seguida posto aqui.