Objective – C (again) 2

Agora que começo a ter mais tempo, voltei a pegar no Objective – C, mas desde o zero, zerinho – já não me lembrava de muita coisa básica – volto a dizer que é uma linguagem esquisita. Pegaram no C e tornaram-no assim uma coisa diferente, mas não para melhor. Ao mesmo tempo que fui aprendendo Objective – C  comparei-o com o VB.net, linguagem com que tenho trabalhado ultimamente.

Vou partir do principio que quem lê isto sabe um pouco de C e de VB.net, uma vez que certas coisas do VB.net vão estar resumidas só para se perceber a ideia. A linguagem utilizada não vai ser a mais apropriada.

Instanciar uma Classe

VB

novo_carro = new Carro()

OBJ-C

Carro *carro_do_marco = [[Carro alloc] init]

Declaração de métodos

VB

sub abrevidros(arg1 as string, arg2 as string)

OBJ-C

no nome_da_classe.h (ficheiro onde declaramos as variáveis, os métodos, as propriedades)

-(void) abre_vidros: (int) arg1 over: (int) arg2;

no nome_da_classe.m (ficheiro onde se programam os métodos, é onde acontece a acção)

-(void) abre_vidros: (int) arg1 over: (int) arg2{
....
....
}

Chamar os métodos (eu avisei da linguagem)

VB
carro_do_marco.andar()
carro_do_marco.acelerar(5) ou = 5 no caso dos set e get
carro_do_marco.abre_vidro(1, 2)

OBJC-C
[carro_do_marco andar]
[carro_do_marco acelerar: 5]
carro_do_marco.acelerar=5 (convenção apenas para get e set)
[carro_do_marco abre_vidros: 1 over: 2]

VB
this.um_qualquer_metodo_do_objecto()

objc
[self um_qualquer_metodo_do_objecto]

2 thoughts on “Objective – C (again)

  1. Paulo Laureano Jun 14, 2010 5:54 am

    Viva Marco.

    Boa exploração do objective-c, que é ao fim do dia a mesma xaropada que todas as outras linguagens (baseadas de forma mais ou menos distante na syntax e lógica do c).

    No primeiro exemplo podes usar também:

    Carro *carro_do_marco = [Carro new]

    … se quiseres tornar mais parecido o paralelo com o VB (o metodo “new” chama o “alloc” e o “init” em sequência) e está presente (herdado de) em todas as classes baseadas no NSObject.

    Mais importante que dominar a syntax é perceberes o que está “por trás” dela… voltando ao exemplo de instanciar uma classe, no VB o compilador tem de determinar que “novo_carro” é uma variável de tipo “carro”, no objective-c ela tem que ser explicitamente declarada, e estás na tua linha a juntar os dois passos:

    Carro *carro_do_marco;
    carro_do_marco= [Carro new]

    A segunda linha já fica bem mais parecida com o

    novo_carro = new Carro()

    :-)

    Diverte-te com o objective-c, que depois de “assimilado” é só um meio de comunicares com o hardware, como qualquer outra linguagem.

    PLS

  2. Marco Batista Jun 14, 2010 6:08 am

    Obrigado Paulo Laureano.

Comments are closed.