Orientação a objetos - instância e construtor

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

assinaturaAssine nossa Comunidade

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
      
    

Orientação a objetos - instância e construtor

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

Próximas Aulas:
assinaturaAssine nossa Comunidade

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