Suporte ao desenvolvimento de jogos!


    Programação orientada a objetos - Aula 2

    Compartilhe
    avatar
    RD12
    Lenda
    Lenda

    Medalhas :
    Mensagens : 1967
    Créditos : 743

    Programação orientada a objetos - Aula 2

    Mensagem por RD12 em Qua Dez 12, 2012 12:05 pm

    Ver a parte 1

    Programação Orientada a Objetos

    Na aula anterior mostrei o básico do básico, foi mais para vocês terem noção do que é POO.
    Nessa aula, irei abordar sobre: Argumentos, Heranças e Accessors.

    Argumentos
    Os argumentos são usados nos métodos(def) para enviarmos informações para eles realizarem alguma função. Por exemplo, você fez um método, que soma 2 números. Você pode usar 2 argumentos para executar o método com os números que você escolheu. Veja o exemplo:

    Código:
    def somar(numero1, numero2)
      return numero1+numero2
    end

    O método acima precisa de 2 argumentos para ser executado, se você por menos ou mais, vai dar erro de sintaxe.
    O Nome da variável numero1 e numero2 é opcional, você poe qualquer nome, e o valor que você inseriu será atribuído a essa variável.

    Para executarmos o método com esses argumentos, apenas chamamos ele assim:

    print( somar(5, 10) )
    #Eu botei print para mostrar na tela o valor, o método retorna um valor, assim podemos exibi-lo.

    Chamando o método acima, ele irá retornar 15, pois somará os dois argumentos, 5+10.

    Leia os scripts do Rpg Maker, para você ter noção com o que pode se fazer com argumentos.

    Heranças

    As heranças são uma relação entre duas classes. Com ela, podemos herdar os métodos de outra classe, para nossa nova classe. Um exemplo de um script que recebe uma herança, são as Windows, que tem métodos herdados do script Window_Base. Elas também são chamadas de Classe Pai.

    No Rm, para uma classe nossa receber herança de outra, basta colocarmos o termo < CLASSE2.
    Exemplo:

    class
    My_Window < Window_Base

    My_Window é o nome da nossa classe nova, e Window_Base é uma classe que já existe, estamos usando seus métodos, como por exemplo: draw_actor_graphic. Se não usarmos a herança dessa Window_Base, teríamos que refazer esse método nas nossas windows toda hora.

    Se você ainda não intendeu, imagine, os Animais. Dentre eles temos por exemplo, humanos, cachorros, gatos...
    Os humanos, herdam algumas características dos animais, mas tem as suas próprias características também. Assim os humanos, cachorros, gatos, herdam essas características(exemplo: respiração '-').

    Vamos para a prática, irei usar o exemplo da class Humano, na aula anterior.

    Mas antes vamos criar a classe Animal.

    Código:
    class Animal

      def respirar
        print("respirou")
      end

    end

    Agora a classe Humano, herdando o método respirar, da classe Animal.

    Código:
    class Humano < Animal

      def falar
        print("falou")
      end

    end


    agora você pode usar o método respirar na classe Humano, mesmo não tendo ele dentro nela, pois ela herdou. Para testar isso, faça assim:
    $Humano = Humanos.new
    $Humano.respirar

    #Isso depois de colar os dois scripts acima, e o código citado cole no final deles.

    Espero que tenham entendido sobre heranças.

    Accessors

    Accessors são formas para você compartilhar uma variável da sua classe com as outras.

    Temos 3 tipos de Accessors:
    attr_accessor #Você pode ler e alterar a variável
    attr_reader #Você pode apenas ler a variável
    attr_writer #Você pode apenas alterar a variável

    parar usarmos eles, devemos coloca-los dentro da nossa classe, mas fora dos métodos, desse jeito:

    Código:
    class Humano
      attr_reader :nome
     
      def initialize
        @nome = "RD12"
      end

    end

    Com isso podemos pegar o valor da variável @nome da classe.
    $Humano = Humano.new
    print($Humano.nome)
    Se tentarmos modificar essa variável, irá dar um erro, então se você por attr_writtr no lugar de attr_reader, poderá modificá-la assim:

    $Humano.nome = "Lucas"

    Vocês podem perceber, o accessor é como um método na nossa classe, então podemos usar attr_reader, ou então, um método:

    Código:
    def nome
      return @nome
    end

    Irá da na mesma, só que um assessor é mais limpo para nosso código.
    Uma observação, a variável chama @nome, nas no attr, não incluímos o '@', apenas :nome.


    Espero que tenham entendido o que eu ensinei, se gostarem da aulam oi tiverem dúvidas, comentem, assim poderei criar mais para vocês.

    by RD12
    avatar
    gladistony
    Membro Ativo
    Membro Ativo

    Mensagens : 336
    Créditos : 217

    Re: Programação orientada a objetos - Aula 2

    Mensagem por gladistony em Seg Dez 17, 2012 1:28 pm

    ficou bem legal RD12


    _________________


    avatar
    Komuro Takashi
    Moderador Local
    Moderador Local

    Mensagens : 1049
    Créditos : 131

    Re: Programação orientada a objetos - Aula 2

    Mensagem por Komuro Takashi em Ter Fev 12, 2013 3:03 pm

    Ótima aula faltou falar só do Sub pra ficar bem legal.


    _________________
    avatar
    Nanzin
    Membro de Honra
    Membro de Honra

    Mensagens : 1559
    Créditos : 252

    Re: Programação orientada a objetos - Aula 2

    Mensagem por Nanzin em Qui Fev 28, 2013 8:31 am

    bem legal cara, só que voce deveria informar um pouco mais de coisa. afinal a maioria dos iniciantes são muito curiosos e querem saber alguns "motivos" (pelo menos aconteceu comigo quando começava a uns 5 anos atras).

    por exemplo, por que não podemos utilizar assim

    $humanoresp = Humano.new.resp

    temos sempre que instanciar a classe em um container para depois utilizar algum método.
    esse tipo de coisa no inicio pelo menos me incomodou um pouco no começo Razz (olhar crítico é foda )

    fora isso a aula ficou muito legal Very Happy


    _________________


    Para Aqueles que gostam de Min e de meu Trabalho;
    Upem Meu Pet nao custa nda!!


    Pet:
    avatar
    CleanWater
    Iniciante
    Iniciante

    Mensagens : 35
    Créditos : 3

    Ficha do personagem
    Nível: 1
    Vida:
    30/30  (30/30)
    Energia:
    0/0  (0/0)

    Re: Programação orientada a objetos - Aula 2

    Mensagem por CleanWater em Sab Fev 10, 2018 6:31 pm

    Desculpe pela necromancia aqui, mas tem parte 3, 4, 5, dessas aulas? Onde acho?


    _________________
    http://cleanwatersoft.com
    avatar
    LeonM²
    Moderador Local
    Moderador Local

    Mensagens : 1973
    Créditos : 135

    Re: Programação orientada a objetos - Aula 2

    Mensagem por LeonM² em Sab Fev 10, 2018 8:03 pm

    @CleanWater escreveu:Desculpe pela necromancia aqui, mas tem parte 3, 4, 5, dessas aulas? Onde acho?
    Não se preocupe, para duvidas é permitido reviver.
    Não há, esta foi a ultima aula postada.


    _________________
    Caso precise de suporte para algum dos meus scripts, me adicione no Discord: LeonM²#9597

    Conteúdo patrocinado

    Re: Programação orientada a objetos - Aula 2

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui Maio 24, 2018 5:10 am