makaed
makaed

Reputation: 419

Objective-C and Data Encapsulation

I don't understand what does the 'return' do in Data Encapsulation. For example, while defining the new methods:

// Program to access instance variables
#import <Foundation/Foundation.h>

@interface Fraction: NSObject
{
  int numerator;
  int denominator;
}

-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;

@end

@implementation Fraction
-(void) print
{
NSLog (@"%i/%i", numerator, denominator);
}

-(void) setNumerator: (int) n
{
numerator = n;
}

-(void) setDenominator: (int) d
{
denominator = d;
}

-(int) numerator
{
return numerator;
}

-(int) denominator
{
return denominator;
}

@end

int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Fraction *myFraction = [[Fraction alloc] init];

// Set fraction to 1/3

[myFraction setNumerator: 1];
[myFraction setDenominator: 3];

// Display the fraction

NSLog (@"The value of myFraction is: %i/%i", [myFraction numerator], [myFraction denominator]);

[myFraction release];
[pool drain];

return 0;
}

Thanks in advance

Upvotes: 0

Views: 421

Answers (1)

user559142
user559142

Reputation: 12517

if you have a class Fraction:

@interface Fraction{
  int _numerator;
  int _denominator;
}

-(int) numerator;
-(int) denominator;

@end


@implementation Fraction

–(int) numerator
{
return _numerator;
}

–(int) denominator
{
return _denominator;
}

//setters

@end

Then we can use this class in other classes to get the numerator / denominator of a fraction object:

//some other class
Fraction* fraction = [[Fraction alloc]init];
//set numerator / denominator
int fractionNumerator = [fraction numerator];

What we have done above is created a Fraction object and then called it's getNumerator method which returns an int. We capture this return value by assigning it to fractionNumerator.

I hope this is what you were after..

Upvotes: 1

Related Questions