quarta-feira, 2 de março de 2011

Magik Tutorial – Parte 1 – Declarando Classe


Magik Tutorial – Parte 1
Declarando Classe
by WSouza
Sobre a linguagem

	Magik é uma linguagem de programação orientada à objetos que suporta multipla herança, polimorfismo e é de tipagem dinâmica. Linguagens de tipagem dinâmica não exigem declaração do tipo de dados da variável, ela pode ser alterada durante a compilação ou execução do programa de acordo com os valores associados.
	Alguns comandos básicos:
	
		Atribuição: <<
		Comentário: #
		Variável local: _local nome_da_variavel
		Variável global: _global nome_da_variavel
		Loop: _loop acao _endloop
		If: _if condicao _then acao _endif
		Operadores: *,/,-,+
		Imprimir: write("conteudo a ser impresso")
		
_parte1
	
	Declarando uma classe
		
		Para declarar uma nova classe magik, utilizamos a estrutura básica abaixo:
		
		##----------------------------------------------------------------------------- 
		## FILE        : $Workfile: minha_primeira_classe.magik $
		## 
		## DESCRIPTION : Class to help rookies to learn magik
		## 
		## 
		## Copyright (c) 2010, WSchool. Proprietary and Confidential 
		## 
		## HISTORY    : $History: minha_primeira_classe.magik $
		##             
		##             *****************  Version 1  *****************
		##             User: WSouza     Date: 02/03/2011   Time: 17:16 
		##-----------------------------------------------------------------------------
		
		#Comando para reconstruir a classe
		remex(:minha_primeira_classe)
		$
		#comando para definir um slot
		def_slotted_exemplar (:minha_primeira_classe,{{:meu_primeiro_slot,_unset, :readable}})
		$
		#metodo que instancia a classe
		_pragma(classify_level=basic, topic={tutorial}, usage={external})
		_method minha_primeira_classe.new()
			
			## Return a new menu.
			##
			
			>> _clone.init()
			
		_endmethod
		$
		#metodo que inicia a classe
		_pragma(classify_level=basic, topic={tutorial}, usage={external})
		_private _method minha_primeira_classe.init()
			
			## Initialise slots.
			##

			.meu_primeiro_slot 	<< hash_table.new()	
						
			>> _self
			
		_endmethod
		$
 		#meu primeiro metodo funcional
		_pragma(classify_level=basic, topic={tutorial}, usage={external})
		_method minha_primeira_classe.meu_primeiro_metodo()
		
			write("hello smallworld")
		
		_endmethod
		$
		
		Esse conteúdo deve ser salvo como um arquivo, com o nome da classe e extensão magik >> minha_primeira_classe.magik.
		Após ter esse arquivo, que contém o código fonte da sua primeira classe, você deve carregar sua classe no SmallWorld utilizando o comando load_file("z:\minha_primeira_classe.magik"). Esse comando "load_file" é utilizado para carregar arquivos magik no SmallWorld. Uma vez carregada no SmallWorld a nova classe, vamos agora instanciar e chamar o nosso primeiro metodo utilizando os seguintes comandos:
		#estou atribuindo uma nova instancia da classe minha_primeira_classe na variavel x
		x << minha_primeira_classe.new()
		#estou chamando o meu_primeiro_metodo
		x.meu_primeiro_metodo()
		
		Após executar esses comandos, o resultado esperado no terminal é hello smallworld
		Com isso terminamos a primeira parte do tutorial Magik!

_endpart1
$

Baixar minha_primeira_classe.magik
image

3 comentários :

Related Posts Plugin for WordPress, Blogger...