Objective C manages to create a fully object oriented language just by adding a couple of things to to C. It' s very simple. The more important adition is the [] operator: everything you put in there is of the form [OBJECT MESSAGE]. Like this:
id p;
p=[Person alloc];
[p init];
The classes are defined this way:
@implementation Person : Object
{
	char *nombre;
}

-sayHello
{
	puts("Hello!");
}

@end

The thing is that this language is fully dynamic. You can even ask the user which method of an object you should call. Method names are not checked at compile time, and object can catch all messages/methods they don' t undertand and so you can easily make object proxies. The object model is similar to Smalltalk and Java.

Some more notes: The dash at the begining of the method declaration indicates an instance method, a plus sign would indicate a class method (like c++ and Java static methods). Note that you create an instance of an object by calling a class method of the class, which is in turn an object!

Now you know Objective C, go and code something.