Thursday, July 18, 2013

[Objective-C] Access Modifiers


 Access Modifiers
Objective-C also provides 3 access modifiers for member variables:
  • @public: no access restrictions
  • @private: accessible within the defining class
  • @protected: accessible within the defining class and by derived classes (default)
  • The default access mode is “protected
  • Access modifiers can be applied only to member variables; methods are always public.
Note that the member variables are located in the “{ }” section.
1
2
3
4
5
6
7
8
9
10
11
12
/* Product.h */
@interface Product : NSObject {
  @private
    int productId;
  @public
    NSString *productName;
    float price;
}
-(void) setProductId: (int) n;
-(int) getProductId;
@end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* Product.m */
#import
#import "Product.h"
@implementation Product
-(void) setProductId: (int) n {
  productId = n;
}
-(void) getProductId {
  return productId;
}
@end

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* MainApp.m */
#import
#import "Product.h"
int Test() {
  Product *p = [Product new];
  [p setProductId:100];
  p->productName = @"Toy";
  p->price = 9.99;
  NSLog(@"Id: %d", [p getProductId]);
  NSLog(@"Name: %@", p->productName);
  NSLog(@"Id: %4.2f", p->price);
}
...

No comments:

Post a Comment