Programação orientada a objetos - Aula 2 Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

Programação orientada a objetos - Aula 2

+2
gladistony
RD12
6 participantes

Ir para baixo

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
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

Ir para o topo Ir para baixo

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
gladistony
gladistony
Membro Ativo
Membro Ativo

Mensagens : 336
Créditos : 217

http://gladistony.blogspot.com

Ir para o topo Ir para baixo

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
Komuro Takashi
Komuro Takashi
Colaborador
Colaborador

Mensagens : 1047
Créditos : 130

Ir para o topo Ir para baixo

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:
Nanzin
Nanzin
Membro de Honra
Membro de Honra

Mensagens : 1550
Créditos : 252

Ir para o topo Ir para baixo

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 🇧🇷
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)

http://cleanwatersoft.itch.io

Ir para o topo Ir para baixo

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.
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

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

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos