Google: alcance se puder
Pesquisa aponta analista de dados como profissão promissora
Boundary rastreia desempenho de aplicativo, mesmo em AWS
7 habilidades decisivas para ser contratado em TI
Google diz que consumidores com smartphones gastam mais
O futuro chegou (de novo)
Ataques cibernéticos têm poder de bombas nucleares, afirma general chinês
Cuidado com os mitos de segurança dos aplicativos web
Hackers LulzSec recebem sentença em Londres
Surface Pro, da Microsoft, vence iPad em teste
Internet das coisas: um chamado para as empresas
Google Now se mistura ao iOS

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.
Blog Teste
Eric Ouchi
Teste
Diário de um Campuseiro
Rafael de Souza Mota
Diário de um campuseiro: abertura oficial da #CPBR13
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.