Quaddro + MacMagazine: programando em Objective-C — métodos

Declarando métodos

Continuando os estudos iniciados no artigo passado, agora nós vamos unir aos conceitos de classe e propriedades no uso de métodos. Sem sombra de dúvidas, um dos elementos mais importantes e utilizados durante a criação de aplicativos.

Publicidade

Pré-requisitos

Save My Soul, da banda Blues Saraceno

Conceitos

Já vimos no texto passado que uma classe é um modelo de dados para objetos que serão criados a partir dela. Esse modelo descreve estados e ações. Os estados são definidos por propriedades, que de maneira simplista podem ser descritas como variáveis. Já as ações podem ser exemplificadas como funções. Desse modo, o objetivo e a base assemelham-se muito ao que vimos no artigo de funções. O ponto agora é trazer esse conceito para o trabalho com classes e objetos.

As propriedades nos fornecem um meio direto tanto para resgatar quanto para alterar seus valores. Porém, esse trabalho direto nem sempre é a abordagem mais indicada. Em algumas situações existem controles e validações a serem realizadas antes de desempenhar certas tarefas. Um exemplo seria uma conta bancária: para fazer certas alterações de saldo, nós precisamos primeiro checar algumas coisas.

Publicidade

Imagine que, sem o devido controle, você pudesse programar um sistema para liberar qualquer quantidade de saque ou então de transferência. A lógica básica, nesse caso, é que primeiro seja feita uma detecção se há saldo suficiente para a transação, para só então prosseguir com a retirada ou transferência do dinheiro.

De uma forma geral, esse cenário caminha para o uso de métodos, pois em vez de eu acessar a propriedade diretamente, a ideia é executar um método que rodará toda uma rotina para validar ou não a operação.

Essa abordagem de chamar um método para executar uma tarefa é muito importante em orientação a objetos, pois além desses controles e validações prévios, também podem ser disparadas rotinas paralelas como o gerenciamento de memória, por exemplo.

Publicidade

Passada essa visão geral de aplicação — e sabendo que a ideia é similar a das funções de C —, vamos adicionar ao mesmo projeto do artigo passado alguns métodos. Para isso, abram o último projeto (Trabalho_Classe).

Lembram que quando estudamos funções em C eu falei sobre a declaração do protótipo antes da implementação da função em si? Pois bem, aquilo foi uma preparação para esse momento. Quando vamos declarar um método em uma classe em Objective-C, devemos definir sua estrutura (protótipo) no arquivo de declarações, a chamada interface programática (o arquivo .h). É nesse arquivo que declaro um novo método à nossa classe.

Declarando métodos

Publicidade

A primeira coisa a se destacar, aqui, é a sintaxe completamente diferente de tudo que é conhecido e normal no planeta Terra. Eu já perdi a conta de quantos alunos torcem o nariz para a sintaxe de declaração e execução de métodos em Objective-C. Mas aqui, gafanhoto, não há conversa: é assim e ponto (ou sem ele, para quem me entender).

Eu declarei três métodos: dois sem parâmetros e um com. Isso nos permitirá ver diversas formas de uso e execução de métodos, mas lembrem-se que aqui no arquivo .h nós apenas declaramos nomes, tipos e parâmetros. Para definir o que esses métodos farão, eu vou agora ao arquivo Funcionario.m e vocês notarão uma placa amarela de alerta assim que o arquivo for carregado. Clicando nela, recebemos a mensagem de que a implementação está incompleta. A questão aqui é que o Xcode encontrou métodos definidos no arquivo .h que ainda não foram implementados no arquivo .m. Então, essa será uma mensagem comum até você implementar todos (isso é um bom indício quando entrarmos em protocolos e delegates).

Definam as seguintes implementações de métodos:

Implementando métodos

Cada método mostra uma implementação com níveis diferentes de recursos. A primeira é simples e direta em exibir uma mensagem; já o método retornarNome mostra um pouco da abordagem de usar um método para resgatar um valor em que existe certa validação antes do retorno. No caso, o nome do objeto só é retornado se ele não for nulo. O terceiro método exibe uma mensagem que usa tanto um valor de propriedade do objeto quanto um valor recebido via parâmetros.

Para vê-los em prática vamos ao arquivo main.m definir suas execuções após a última linha que já tínhamos no código. Para focar as mensagens do Console, eu vou comentar os NSLogs que o código já tinha. Com as novas inclusões, o arquivo deve ficar assim:

Executando métodos

Procurei mostrar diversas formas de uso de métodos. Primeiramente vale lembrar que a execução de métodos não usa sintaxe de pontos, mas sim de colchetes.

Notem como o método falarOi tem sua execução bem simplificada, já que não tem retorno nem parâmetros. O método retornarNome, por sua vez, como retorna um valor, pode alimentar uma variável que é usada em outra operação. E por fim, o método falarNumero, que pede um parâmetro para ser executado. Percebam a sintaxe de passagem de valor no parâmetro usando dois pontos.

Com base nesses exemplos, vocês podem fazer diversos testes com parâmetros, retornos e validações internas em novos métodos. Usem e abusem de métodos para se prepararem para os próximos artigos. Mexeremos *muito* com métodos, tanto de sistema quanto de classes nossas personalizadas. E para os programadores de outras linguagens que não gostaram da sintaxe de colchetes e de dois pontos para parâmetros, aqui vai uma dica: acostumem-se… 😛

Código-fonte, dúvidas e debates, como sempre, no tópico oficial no fórum da Quaddro. Um abraço e até a próxima.

Posts relacionados