O que esperar do próximo iPhone
A TI deve confiar nos dispositivos móveis?
Plantronics cria comunidade de desenvolvedores
Guia de salários: gerentes de bancos de dados recebem até R$ 8,7 mil
Microsoft: Windows 8 chegará no final deste ano
Ah, Facebook, por que não consigo lhe largar?
4G Americas: saiba o que as operadoras devem fazer para atender demanda por dados
ATUALIZADA - Brasil: veja a lista de dispositivos que serão atualizados para Android 4.0
EMC lança mais de 40 produtos entre hardwares e softwares
Forrester: preparem-se para a segunda onde de aplicativos móveis
ATUALIZADA - Fique por dentro da compra da Motorola Mobility pelo Google
Windows Phone 7: usuários não poderão baixar apps do Marketplace

Pode-se dizer que tudo é objeto no Ruby: cada valor é um objeto ou se comporta como um objeto.
Uma classe define um grupo de métodos ao qual o objeto responde e a cada objeto é uma instância de uma classe. As classes possuem variáveis de instâncias, que armazenam valores específicos de um único objeto e não são acessíveis diretamente fora do objeto.
Dessa forma, cada objeto possui estado e comportamento:
Escrevendo um pouco de código fica mais fácil de entender. Vamos criar uma classe chamada Dog:
Para criar uma instância da classe Dog, usamos o método new:
Por enquanto esse cachorro não tem nenhum comportamento. Vamos fazê-lo latir e dormir (meus cachorros são muito preguiçosos, eles dormem muito):
Através do comando def definidos os métodos bark e sleep. Agora podemos chamar esses métodos no nosso objeto d:
Queremos definir características para cada objeto Dog. Então quando instanciarmos um novo cachorro iremos passar seu nome e sua raça. Fazemos isso através do método initialize:
O método initialize é chamado automaticamente sempre que usamos o método de classe new para criar uma nova instância de uma classe. Todos os parâmetros passados para o método new serão repassados para o método initialize.
Dentro do método initialize, os parâmetros recebidos são atribuídos para as variáveis de instância @name e @breed. O nome das variáveis de instância iniciam sempre com arroba (@), pertencem somente ao objeto que foi instanciado e são não possuem acesso direto fora do objeto.
A partir de agora, para criar uma nova instância da classe Dog é obrigatório o fornecimento de dois parâmetros na chamada do método Dog.new. Se os parâmetros não forem passados, você obterá o seguinte erro:
Podemos definir o método to_s para exibir as características de um cachorro:
Então criamos instâncias distintas da classe Dog:
Note que o método puts chama implicitamente o método to_s de Dog. As duas linhas de código abaixo produzem o mesmo resultado:
É importante ressaltar que as variáveis de instância de um objeto podem ser acessadas somente pelos métodos de instância daquele objeto. Em outros posts irei falar sobre métodos de classes, os quais não conseguem enxergar as variáveis de instância de um objeto.
Vamos incrementar os métodos bark e sleep para usar a variável @name:
Para finalizar, instanciamos nossa última versão da classe Dog e chamamos seus métodos:
No próximo post iremos incrementar a classe Dog com acessores e modificadores de atributos.
Referências:
Desenvolvedor sênior na Locaweb, Fernando Hamasaki de Amorim atua em projetos utilizando Ruby e Rails. Pós-graduado em Tecnologias Web Fiap, trabalha desde 2000 com desenvolvimento web, onde já desenvolveu em várias plataformas e linguagens, como .NET, Java, JavaScript, PHP e ASP. Também foi palestrante do FISL e da RubyConf Brasil. Neste espaço, abordará temas envolvendo o desenvolvimento por meio da linguagem Ruby.
Conscientização e Dicas de Segurança da Informação
Anderson Santana
Artigo: Proteção de Dados
Dirty & Ugly Web
Paulino Michelazzo
Caiu na rede
Internet Upgrade
Victor Maeda
Ataques DDos aos bancos brasileiros.
Inovação, tecnologia e futurismo
Bráulio Medina
SIRI, MAJEL, EVI - Colhemos os frutos da semântica e inteligência artificial
Mundo RIA
Zaedy Sayão
Construindo Mobile Apps com Sencha Touch e Phonegap - Parte 1