Object Oriented Programming in Objective C

Object-Oriented Programming (OOP) is a programming paradigm centered around objects and classes. Objective-C, like Swift, is an object-oriented language that supports the four fundamental principles of OOP: encapsulation, inheritance, polymorphism, and abstraction.

article

This article provides an introduction to Object-Oriented Programming (OOP) in Objective-C, aimed at Swift developers. We will cover the basics of classes, objects, inheritance, and other key OOP concepts in Objective-C.


Understanding OOP in Objective-C


Object-Oriented Programming (OOP) is a programming paradigm centered around objects and classes. Objective-C, like Swift, is an object-oriented language that supports the four fundamental principles of OOP: encapsulation, inheritance, polymorphism, and abstraction.


Classes and Objects


In Objective-C, classes are the blueprint for creating objects. A class defines the properties and methods that its objects will have. Here’s an example of how to define a simple class in Objective-C:


    
@interface Person : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
- (void)greet;
@end

@implementation Person
- (void)greet {
    NSLog(@"Hello, my name is %@.", self.name);
}
@end
    

In this example, the Person class has two properties, name and age, and one method, greet. The @interface section declares the class interface, while the @implementation section provides the actual implementation of the class.


Creating and Using Objects


Once you have a class, you can create objects (instances of the class) and use them in your code. Here’s how you can create and use a Person object:


    
Person *person = [[Person alloc] init];
person.name = @"John";
person.age = 30;
[person greet];
    

In the example above, we allocate and initialize a new Person object, set its properties, and call its greet method. The output will be "Hello, my name is John."


Inheritance


Inheritance is a fundamental concept in OOP that allows a class to inherit properties and methods from another class. In Objective-C, you use the : syntax to specify that a class inherits from another class. Here’s an example:


    
@interface Student : Person
@property (nonatomic, strong) NSString *school;
- (void)study;
@end

@implementation Student
- (void)study {
    NSLog(@"%@ is studying at %@.", self.name, self.school);
}
@end
    

The Student class inherits from the Person class and adds a new property, school, and a new method, study. This means that Student objects have all the properties and methods of Person, plus their own additional features.


Polymorphism and Method Overriding


Polymorphism allows objects to be treated as instances of their parent class rather than their actual class. Method overriding allows a subclass to provide a specific implementation of a method that is already defined in its superclass. Here’s an example:


    
@implementation Student
- (void)greet {
    NSLog(@"Hello, I am %@, a student at %@.", self.name, self.school);
}
@end
    

In this example, the Student class overrides the greet method of the Person class to provide a more specific greeting. When you call greet on a Student object, the overridden method is executed.


Summary


Object-Oriented Programming in Objective-C involves the use of classes and objects to create modular, reusable, and maintainable code. By understanding the principles of encapsulation, inheritance, polymorphism, and abstraction, you can effectively utilize Objective-C to build robust applications. This article covered the basics of defining classes, creating objects, inheritance, and method overriding in Objective-C.


  • Classes and Objects: How to declare functions outside class definitions.
  • Creating and Using Objects: How to instantiate and interact with objects.
  • Inheritance: Allowing classes to inherit properties and methods from other classes.
  • Polymorphism and Method Overriding: Treating objects as instances of their parent class and providing specific implementations.
instructor

Exodai INSTRUCTOR!

Johan t'Sas

Owner and Swift developer!