Nesta aula iremos aprender o como criar uma classe, uma instância e a utilização de construtores em Ruby.

Instância e Construtor

Em orientação a objetos trabalhamos com classes, resumidamente são "moldes" ou "formas" para criação de objetos, elas reúnem características e comportamentos que definem o conjunto de objetos que compõem essa classe.

Definição básica de classe

      
        class Pessoa
          def nome 
            @nome
          end
          def nome(value) 
            @nome = value
          end
        end
        Pessoa.nome = "Danilo"
      
    

Observações:

Em Ruby o self é usado para referenciar a própia classe, como seria o this em várias linguagens.

Se você não utilizar a palavra return, a última instrução será retornada.

Um método de classe é definido por

      
        def nome 
          @nome
        end
      
    

Um método de classe também pode receber valores padrão

      
        def nome(nome)
          @nome = nome
        end
      
    

Definição de classe com inicializador

      
        class Pessoa
          def initialize(nome) 
            @nome = nome
          end
        end
        Pessoa.new("Danilo")
      
    

Aula Prática

Como de praxe copie o arquivo padrão das aulas anteriores para seguir conforme o padrão.


Definição de classe de linha única

       class Carro;end
    

Definição de classe com métodos e definição de objeto

      
        require 'byebug'
        class Carro
          def nome(value)
            @nome = value
          end

          def nome
            @nome
          end

          def mostrar
            puts @nome
          end
        end
        debugger
        carro = Carro.new
        carro.nome = "Palio"
        carro.mostrar
      
    

Definição de classe com métodos e definição de objeto

      
        require 'byebug'
        class Carro
          def nome(value)
            @nome = value
          end

          def nome
            @nome
          end

          def mostrar(marca)
            puts "Marca: #{marca} - Modelo: #{self.nome}"
          end
        end
        debugger
        carro = Carro.new
        carro.nome = "Palio"
        carro.mostrar("Fiat")
      
    

Definição de classe com inicializador

      
        require 'byebug'
        class Carro
          def initialize(nome)
            @nome = nome
          end

          def nome(value)
            @nome = value
          end

          def nome
            @nome
          end

          def mostrar(marca="Marca Padrão")
            puts "Marca: #{marca} - Modelo: #{self.nome}"
          end
        end
        debugger
        carro = Carro.new("Fiesta")
        carro.mostrar("Ford")
      
    

Definição de classe com parâmetros padrão para o inicializador

      
        require 'byebug'
        class Carro
          def initialize(nome = "Modelo Padrão")
            @nome = nome
          end

          def nome(value)
            @nome = value
          end

          def nome
            @nome
          end

          def mostrar(marca = "Marca Padrão")
            puts "Marca: #{marca} - Modelo: #{self.nome}"
          end
        end
        debugger
        carro = Carro.new
        carro.mostrar
      
    



Próximas Aulas


Orientação a Objetos - Accessors

Nesta aula iremos aprender como criar propriedades em uma classe ruby, iremos criar propriedades de ...

Orientação a Objetos - Herança

Nesta aula iremos aprender sobre herança, mais uma aula de orientação a objetos em Ruby, com a heran...

Orientação a Objetos - public, private, protected

Nesta aula iremos aprender as marcações public, private, protected e veremos as diferenças entre ela...

Orientação a objetos - Polimorfismo e Overload

Nesta aula iremos aprender como fazer polimorfismo no Ruby, também iremos ver como funciona o overlo...

Orientação a Objetos - Interface, Abstração, Singleton

Nesta aula iremos aprender como implementar Interface, Abstração e classe Singleton, de uma forma mu...

Metaprogramming - RunTime

Nesta aula iremos aprender o inicio da metaprogramação, veremos como o Ruby injeta métodos em objeto...

Metaprogramming - Modulo

Nesta aula iremos aprender como programar orientado a objetos por comportamento, iremos ver os estad...

Metaprogramming - Dinâmicos

Nesta aula iremos aprender como criar métodos de forma dinâmica, iremos ver os comandos, lambda, Pro...



Danilo

Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.

ELEVE SEUS GANHOS E POTENCIALIZE SUA PERFORMANCE

Receba nossa Ebook de LÓGICA DE PROGRAMAÇÃO

© Didox Business & Technology - CNPJ: 12.127.195/0001-14