Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


+2
gladistony
RD12
6 participantes

    Programação orientada a objetos - Aula 2

    RD12
    RD12
    Lenda
    Lenda


    Medalhas : Programação orientada a objetos - Aula 2 48080450Programação orientada a objetos - Aula 2 Trophy11Programação orientada a objetos - Aula 2 GIueZProgramação orientada a objetos - Aula 2 ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Programação orientada a objetos - Aula 2 Empty Programação orientada a objetos - Aula 2

    Mensagem por RD12 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
    gladistony
    gladistony
    Membro Ativo
    Membro Ativo


    Mensagens : 336
    Créditos : 217

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

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

    ficou bem legal RD12


    _________________
    Programação orientada a objetos - Aula 2 252057
    Komuro Takashi
    Komuro Takashi
    Colaborador
    Colaborador


    Mensagens : 1047
    Créditos : 130

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

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

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


    _________________
    Programação orientada a objetos - Aula 2 Takashi_komuro_by_minato8-d51g9o4

    Paga um café? Patreon
    Nanzin
    Nanzin
    Membro de Honra
    Membro de Honra


    Mensagens : 1550
    Créditos : 252

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

    Mensagem por Nanzin 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


    _________________
    Programação orientada a objetos - Aula 2 Npvo

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


    Pet:
    CleanWater
    CleanWater
    Semi-Experiente
    Semi-Experiente


    Mensagens : 81
    Créditos : 7

    Ficha do personagem
    Nível: 1
    Experiência:
    Programação orientada a objetos - Aula 2 Left_bar_bleue0/0Programação orientada a objetos - Aula 2 Empty_bar_bleue  (0/0)
    Vida:
    Programação orientada a objetos - Aula 2 Left_bar_bleue30/30Programação orientada a objetos - Aula 2 Empty_bar_bleue  (30/30)

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

    Mensagem por CleanWater Sáb Fev 10, 2018 6:31 pm

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


    _________________
    Apoie a CleanWaterSoft no Apoia.se!
    🇧🇷 Desenvolvendo jogos acessíveis ao brasileiro 🇧🇷
    LeonM²
    LeonM²
    Lenda
    Lenda


    Mensagens : 1802
    Créditos : 153

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

    Mensagem por LeonM² Sáb 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.

    Conteúdo patrocinado


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

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qua maio 08, 2024 8:24 am