click below
click below
Normal Size Small Size show me how
Objective-C
Questões sobre Objective-C
Question | Answer |
---|---|
As estruturas semânticas e sintáticas da linguagem Objective-C são derivadas da linguagem: | Linguagem C e Smalltalk. |
A sintaxe básica para chamar um método em um objeto é: | [object method ]; [object methodWithInput: input]; |
Exemplo de uma forma de retornar valor pelos métodos: | output = [object methodWithOutput ]; output = [object methodWithInputAndOutput: input]; |
Método chamado em um objeto quando ele está sendo removido da memória: | Dealloc. |
Chamado de contagem de referência. Mantem o controle das referências, faz liberação de memória automaticamente em tempo de execução: | Sistema de gerenciamento de memória do Objective-C. |
É o objeto nulo, equivalente ao ponteiro NULL em muitas outras linguagens: | Métodos Nil. |
Sintaxe similar a linguagem C. Exemplo de escrita de um texto na saída padrão: | #import int main (int argc, const char *argv[]) printf ("Primeiro programa em objective-c n"); return 0; } |
Carrega a biblioteca stdio que permite o uso de diversas funções do objective-c: | A directiva #import |
Responsável pelo ponto de partida de um sistema em objective -C. O parâmetro int indica que ela deve retornar um inteiro ao final de sua execução: | Função main. Exemplo: int main (int argc, const char *argv[]) {} |
Exemplo de criação de um novo objeto, do tipo notas. Alocamos na memória e inicializamos o nosso objeto: | Notas *notas = [[Notas alloc]init]; |
Tipos de dados primitivos da linguagem Objective-C: | int float double char BOOL |
Características relevantes da linguagem objective-C: | Objective-C suporta polimorfismo, posing, categorias, e é uma linguagem dinâmica, com typing e binding dinâmicos. |
Características relevantes da linguagem objective-C: | Objective-C realiza chamadas de mensagem dinâmicas rapidamente, mais rapidamente que o tempo de uma chamada de função em C. |
Formas de inserir comentários no código: | Por linhas: // e por blocos: /*,*/ |
Define uma classe que chame um método que imprime na saída padrão uma mensagem. | @interface Saudacao: Object -(void) bemvindo; @end |
Implementa o método descrito no FlashCard anterior: | @implementation Saudacao -(void) bemvindo { printf("Seja bem vindo!\n"); } @end |
A maior parte de sua sintaxe, incluindo pré-processamento, expressões, declaração e chamadas de funções foi herdada da linguagem: | Foi herdada da linguagem C. |
A sintaxe para os aspectos orientados a objetos foi criada para habilitar passagem de mensagens no estilo: | No estilo da linguagem Smalltalk. |
Diferente do modelo de programação estilo Simula usado por C++, O modelo de orientação a objeto do Objective-C é baseado: | Na passagem de mensagens para instâncias de objeto, em que, não simplesmente chama-se um objeto, mas envia-se uma mensagem. |
Enquanto programação orientada a objetos no estilo Simula permite herança múltipla e execução mais rápida, usando associação em tempo de compilação: | No estilo de programação Smalltalk permite que mensagens sejam implementadas com a resolução de métodos em tempo de compilação, as mensagens podem ser enviada à coleção de objetos, em que, espera que alguns respondam, sem gerar erros. |
Definindo uma característica para um objeto: | @interface Imovel: Object { double comprimento; } -(void) miau; -(void) setPeso: (double) p; -(double) getPeso; @end |
Você pode utilizar qualquer editor de texto para escrever seus código. Caso estiver utilizado ambiente Windows, existe um compilador para Objective-C: | MinGW. Pode ser baixado: http://www.mingw.org/ |
No Linux você pode utilizar o gcc para compilar seus programas: | gcc arquivos.m -o nome_do_programa -l objc |
Diretivas de utilização das bibliotecas da linguagem Objective-C, semelhante a linguagem C: | São as diretivas "#import<stdio.h>" e a diretiva "#import<objc/Object.h>". |
Objective C aceita um dos conceitos mais importantes em linguagem orientada a objetos: | Herança. |
Exemplo de Herança 1. Classe Abstrata Roupa - interface: | #import <objc/Object.h> @interface Roupa : Object { int Tam; } -(void) setTam: (int) t; -(double) getTam; @end |
Exemplo de Herança 1. Classe Abstrata Roupa - implementação: | #import "Roupa.h" @implementation Roupa -(void) setTam: (int) p { Tam=t; } -(double) getTam { return t; } @end |
Exemplo de Herança 1. Classe Masculina - interface: | #import "Roupa.h" @interface Jeans: Roupa -(void) lavar; @end |
Exemplo de Herança 1. Classe Masculina - implementação: | #import "Jeans.h" #import <stdio.h> @implementation Masculina -(void) lavar { printf("Lavagem pesada!\n"); } @end |
Entendendo o exemplo de herança 1: | Ocorreu a criação de uma subclasse de Object denominada Roupa, juntamente com a classe Jeans que seria uma subclasse derivada da classe Roupa, classificada como classe abstrata. Veja que instância de Roupa nunca seria criada. |
Exemplo de Herança 1. Programa de Roupa com herança: | int main( int argc, const char *argv[] ) { Jeans *novoJeans = [[Jeans alloc] init]; [novoJeans setTam: 42]; [novoJeans lavar]; printf("novoJeans tamanho: %lf kg\n",[novoJeans getTam]); [novoJeans free]; return 0; } |
Observações finais do exemplo de herança 1: | Vimos que foi criado um novo objeto derivado da classe jeans. Foi setado um novo tamanho com a chamada do método setTam. Foi chamado o método lavar. |
São métodos utilizados para proteger as variáveis contra acesso indevido: | Get e Set. |
Em Objective-C você pode se referir ao próprio objeto que está recebendo a mensagem, usando para isso a palavra ______, para executar um método que precise executar outros métodos. | Self. |
Para a função "Printf" para imprimir uma string qualquer na tela, é necessário importar a biblioteca: | stdio.h |
São tipos de estrutura da linguagem Objective-C | Polimorfismo, Typing dinâmico e Binding dinâmico |
A linguagem Objective-C, como orientada a objetos, aceita uma forma de sobrescrever métodos para facilitar sua utilização e adicionando características ou valores a suas variáveis. Essa forma é dita por: | Overriding. |
Override, para que serve: | Sobrescreve um método que foi originalmente implementado na superclasse (pai, avo, etc). |
Override, como se aplica: | Deve ter o mesmo tipo de retorno, mesmo nome, e parâmetros dos mesmos tipos na mesma ordem. Os nomes dos parâmetros não importam. |
Override, restrições: | Não pode sobrescrever método na mesma classe. Existem outras restrições quanto à visibilidade e exceções que não são contempladas pelo escopo desse artigo. |
Podemos utilizar o método _______, para liberar memória de uma instancia de objeto criado. | método free. |
Polimorfismo | A habilidade que uma linguagem orientada à objetos tem de definir métodos com o mesmo nome para classes diferentes. Cada definição de classe guarda o código necessário para seus métodos. |
Typing dinâmico | É a característica que a linguagem tem de poder postergar a determinação da classe de um objeto até o tempo de execução do programa. |
Biding dinâmico | É a capacidade de postergar a determinação do método que será invocado em um objeto até o tempo de execução. |
Exemplo de construção de arranjo: | NSArray *array = [NSArray arrayWithObject:@"Hi"]; |
Baseado na passagem de mensagens para instâncias de objeto. No Objective-C, não simplesmente se chama um objeto, envia-se uma mensagem. Estamos falando da estrutura: | Modelo de orientação a objeto do Objective-C |
As características da estrutura orientada a objetos em Objective-C são derivadas da linguagem: | Smalltalk. |
A maior parte da presente API Cocoa da Apple está baseada na interface de objetos __________, e este é o mais significativo ambiente __________ sendo usado para desenvolvimento ativo. | OpenStep e Objective-C. |
A principal descrição do Objective-C em sua forma original foi publicada no livro de Cox, Object-Oriented Programming, An Evolutionary Approach, de 1986. O autor teve o cuidado de ressaltar que o problema é mais da __________ do que da linguagem. | Reusabilidade. |
As classes em Objective-C são divididas em duas partes: | Arquivo de cabeçalho e Arquivo de implementação. |
Possuem as variáveis e os métodos da classe: | Arquivo de cabeçalho. |
Possui a implementação dos métodos criados na @interface: | Arquivos de implementação, |