sugestões

5 respostas
M

há algum canal de comunicação que eu posso usar para dar sugestões p/ a linguagem java?

poxa, um recurso mto interessante q tem no delphi(n sei se tem em alguma outra linguagem, mas java q eu saiba, nao tem[se tiver, alguem me dá um toque :wink: ]): as tais das propriedades
tipo, eu tenho a classe:

public class JTextField extends .............. implements ........... {
 private String texto;
 ....
 public void setText(String texto) {
  this.texto = texto;
 }
 public String getText() {
  return texto;
 }
}
JTextField textField1 = new JTextField();

para alterar o texto q aparece na tela, eu usaria textField1.setText();

e para obter o texto, usaria textField1.getText(), certo?

fazendo uma analogia às propriedades(n sei o nome tecnico da coisa, eu chamo de propriedade mesmo, pq eh esse o nome q se usa pra fazer a declaração <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/w.pngink.png?v=9" title=":wink:" class="emoji" alt=":wink:"> )
public class JTextField extends .............. implements ........... &#123;
 private String texto;
 ....
 private void setText&#40;String texto&#41; &#123;
  this.texto = texto;
 &#125;
 private String getText&#40;&#41; &#123;
  return texto;
 &#125;

 public property String text read getText write setText; /* posso omitir o campo read ou write, para fazer a propriedade read-only, write-only, oq eu quiser */
&#125;

daí eu usaria simplesmente textField1.text tanto para leitura quanto para escrita. Apesar de ser mto parecido visualmente, isso em nada tem a ver com acessar diretamente uma suposta variavel de instancia chamada text, pois internamente, oque seria usado continuaria sendo setText() e getText(), sendo q estes poderiam ser declarados como public mesmo, para manter compatibilidade com código existente.

acho mto mais elegante acessar os valores da minha classe dessa forma, doque usando os famosos getXXX() e setXXX()

outra coisa q faz falta é a possibilidade de escolher entre passar um argumento a um método por valor ou por referencia. sei que tipos primitivos são passados por valor, e vetores e classes por referencia, e que há formas de contornar a situação, caso eu queria passar um tipo primitivo por referencia, basta passa-lo dentro de um vetor, já que o vetor em sí é passado por referencia.
mas seria muito mais simples se pudesse fazer algo como

public void inc&#40;var int num&#41; &#123; /* aqui o argumento num SEMPRE seria passado por referencia */
 ++num;
&#125;
ou entao&#58;
public void inc&#40;int num&#41; &#123;
 ++num;
&#125;

e chama-lo forçando a passagem por referencia:
inc(var dia); /* onde dia é uma variavel qualquer cujo valor eu queira incrementar em um (eu sei que bastaria um ++dia, mas eu só quero exemplificar a minha ideia) */

ou o oposto:

public void umNomeQualquer&#40;val int&#91;&#93; idades&#41; &#123;
...
&#125;

apesar de o argumento ser um vetor, a passagem sempre seria por valor… se bem q isto causaria uma perda de performance, visto que ao chamar o método, teria q ser criada uma copia do vetor e todos os seus elementos em uma outra posição da memoria(e é esse o motivo para q vetores sejam passados por referencia), mas ficaria a criterio do programador saber quando isso será util e quando será desvantajoso(existe essa palavra?)

aproveitando, oque voces acham dessas ideias? o lance da passagem por valor e referencia eu já vi sendo comentado aqui, mas o outro eu nunca vi…

5 Respostas

C

Acho bem legal amigo. :wink:

Vou passar essa dua dica para os moderadores colocarem em algum Índice do Fórum!

[]'s

V

O lugar onde pode-se fazer sugestões a respeito de Java é o JCP.

A primeira sugestão: Propriedades
Parece uma boa boa sugestão, mas não é. A idéia de se fazer setters e getters não é simplesmente para configurar a permissão de leitura/escrita. A idéia é muito mais ampla. Imagine por exemplo que toda vez que você altere o saldo de uma conta você verifica se ele está vermelho e se tiver vermelho você tem que avisar o usuário. Qual é o melhor lugar para se ter certeza que toda vez que alterar o valor do saldo isso será testado? Dentro do método setSaldo!!!
Os setters e getters são reamente chatos de escrever. Ainda bem que qq IDE descente (aka Netbeans, Eclipse, JBuilder…) gera automaticamente…

A segunda sugestão: Passagem por referência

Essa aí é uma briga onde muitos bons programadores vão concordar com você e outros vão discordar. Eu estou no grupo dos que discordam. (Não, eu não te odeio :grin: ) Os criadores de Java preferiram não usar passagem por referência para evitar erros dos programadores. Não erros difíceis de rastrear. Atenção: os arrays e objetos também são passados por valor!!

R

Quanto as Propriedades eu tb discordo, pois apesar de chatos(Getters and Setters) sao necessarios.

B

Imagina como seria a vida de um desenvolvedor sem os V.O’s repletos de setter’s e getter’s ?
ia ser mals !

V

Quer facilidade de escrita? Groovy!!!

Criado 29 de setembro de 2004
Ultima resposta 30 de set. de 2004
Respostas 5
Participantes 5