E qual a verdadeira diferença disso pros setters/getters ??
[quote=Diogenes]E qual a verdadeira diferença disso pros setters/getters ??
[/quote]
Otimizações á parte, getters e setters são mais lentos, mas oferecem um modo para você mudar a implementação. Do jeito que get/set são usados, nenhuma, só a lentidão desnecessária.
Numa linguagem OO “nata”, você nunca deveria ter como saber se o que você está acessando numa classe é um método ou simplesmente um atributo, e em algumas linguagens você pode até mesmo sobrescrever um método por um atributo (mas não o contrário, por sobrecarga de operadores). Veja Meyer, recomendado.
Mas isso é bem mais elegante do que getters e setters. Outra coisa interessante são as propriedades indexadas.
ex:
class Funcionario
{
private int _salarios[];
public int salario[int mes]
{
get
{
return _salarios[mes];
}
}
}
int salarioAtual = funcionario.salario[Meses.JANEIRO];
Pra mim tanto faria, exceto pelo fato que não gostaria de mais palavras reservadas e conceitos na linguagem para uma cosia tão…secundária.
Uma coisa é como uma linguagem implementa uma funcionalidade e outra é possuir algo que realmente faça a diferença arquiteturalmente…
Não estou puxando o saco do C#.
O java é bem melhor. Mas tem algumas coisas que são bem interessantes outras desnecessárias.
Por sinal, tuh nao tem um desses aih pra dispôr não Phillip? Pagar quase 400 pilas nele tah brabo…
Cara…vale. O livro tem 1000 páginas e fala de todos os tópicos, até de como ensinar oo. Fora que vem com um ambiente Eiffel.
Posso estar errado porque faz tempo que não dou uma olhada no C#, mas que eu lembre não era possível definir visibilidades diferentes para o get e o set da propriedade, o que é simplesmente ridículo. Quer dizer que se eu quero que qualquer acesse a propriedade, ele também tem que ser capaz de atribuir-lhe um valor? Coisas de Microsoft…
Não. pode se ter propriedades read-only.
isso é possível
public bool Adult
{
get
{
if (this.age<18)
return false;
else
return true;
}
}
Interessante essa discussão sobre os set/get, é ou não bom, certo ou errao.
Mas acho que saiu do foco da minha pergunta(pra variar).
O Java realmente é OO ou é uma GOO, na opinião de vocês?
[quote=jprogrammer]Não. pode se ter propriedades read-only.
[/quote]
Não, não foi isso que eu quis dizer. Quer ter um getter public e um setter protected. Que eu lembre, isso não dá e é ridículo.
Java é OO. Daí a falar como as pessoas usam…
Java é OO. Daí a falar como as pessoas usam… :-)[/quote]
Hehehe
Porque insistimos em usar ele como GOO, porqueeeeeeeee? hehe :twisted:
PS: já quase voltando a ser vendedor de picolé, lá pelo menso só precisava saber os preços e os sabores
As pessoas fazem isso porque não absorveram o paradigma, por falta de instrução, por diversas razões. Da mesma forma que os usuários utilizam os softwares da pior forma possível. Se você criar um consulta com diversos parâmetros de filtro que permitam a alguém restringir a seleção a um intervalo realmente pequeno mas houver a opção de simplesmente listar tudo e sair caçando visualmente, pode acreditar que o usuário mediano vai usar mais a opção 2…
[quote=mister__m]
Java é OO. Daí a falar como as pessoas usam… :-)[/quote]
Grande base e cultura OO, mas ainda linguagem híbrida.
Rafael e serviço social:
híbrido
{verbete}
Datação
1836 cf. SC
Acepções
■ adjetivo e substantivo masculino
1 Rubrica: genética.
diz-se de ou animal ger. estéril, formado pelo cruzamento de progenitores de espécies diferentes; bastardo [Os exemplos mais conhecidos são o burro e a mula.]
2 Rubrica: genética.
que ou o que é fruto de qualquer cruzamento em que os progenitores possuem genótipos diferentes (diz-se de indivíduo)
3 (1873)Rubrica: lingüística.
diz-se de ou palavra formada por elementos tomados de línguas diferentes, como bicicleta: bi (latim), cicle (grego), eta (dim.f., do italiano etta)
4 Derivação: sentido figurado.
que ou o que é composto de elementos diferentes, heteróclitos, disparatados
Ex.: <um personagem curioso, um h. de homem de negócios e músico> <um estilo h.>
(Fonte: Houaiss)
[quote=pcalcado][quote=mister__m]
Java é OO. Daí a falar como as pessoas usam… :-)[/quote]
Grande base e cultura OO, mas ainda linguagem híbrida.[/quote]
Shoes to muito interessado naquela idéia de programar puramente OO que trocams em outro post outro dia, até para ver mesmo como é OO pura, Java puro : )
Seu projeto ja inicio no RIOJUG? Se não gostarai de participar
[quote=pcalcado][quote=mister__m]
Java é OO. Daí a falar como as pessoas usam… :-)[/quote]
Grande base e cultura OO, mas ainda linguagem híbrida.[/quote]
Sim, concordo. Mas o mal uso não vem exatamente disso, com certeza