Oi… estou no começo (mesmo) do aprendizado, estou saindo do Java, conheço C, Php, Pascal, enfim, não sei ruby, comecei a escrever uma classe tipo java no ruby para fazer uma lista ligada(só pra treinar)
Daí eu fiquei com umas dúvidas em relação a semelhanças com as linguagens que eu ja mexi.
Tem como eu garantir o tipo de uma variável da minha classe? Para o usuário não poder colocar qualquer coisa nela?
Tem como eu “conferir” no método o tipo do parâmetro que ele recebe?
Tem como fazer sobrecarga?(ou coisa semelhante?)
Accessor funciona como se fosse um “public”?
edit:
Mais uma coisa, como eu comparo instâncias e como eu comparo valores? por exemplo, se eu escrevo
x = "Pedro"
y = "Pedro"
x == y é true ou false? o mesmo vale para qualquer tipo ou classe?
me ajudem por favor porque eu não sei nada mesmo, obrigado desde ja
Acho que o Java seja fortemente tipado. Diferentemente do Basic e do javascript (não confundir alhos com bugalhos), por exemplo.
Você não só pode como deve fazer sobrecarga. Por exemplo, um atributo int da sua classe pode ter um método setAtributo(String atributo) para que a conversão de tipo seja resolvida na própria classe.
Isso é especialmente necessário quando se está programando WEB e todo request.getParameter devolve uma String.
De maneira simples:
[list]o método equals? é empregado para avaliar se duas variáveis estão referenciando o mesmo objeto.[/list]
[list]o operador == é usado para realizar comparações de equivalência lógica.[/list]
Ou seja, em Ruby é o contrário do que programadores Java estão habituados, == para equivalência e equals para verificar se duas referencias apontam para o mesmo objeto.
ps: também é possível usar o método eql? que é um “sinônimo” de equals?
Abraços.