访问方法类型
+ 类型方法 [类名 类型方法]
- 实例方法 [对象 实例方法]
比如说,存在一个Person类,
//
// main.m
// LearnOC
//
// Created by 1 on 2022/2/10.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject {
NSInteger _age;
NSString* _name;
}
- (NSString*)name;
- (void)testFunc;
@end
//类的实现
@implementation Person
//方法实现
- (void)testFunc {
//在类的内部可以直接访问成员变量
_age = 19;
NSLog(@"age = %ld",_age);
}
- (NSString*)name{
_name = @"Dancer";
return _name;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.类调用类型方法
Person* p1 = [Person new];
//2.对象调用实例方法
[p1 testFunc];
NSString* name = [p1 name];
NSLog(@"name is %@", name);
}
return 0;
}
1.类调用类型方法 +
2.对象调用实例方法 -
SET和GET方法
get方法不是以get开头、直接写成员变量的小写名称
使用方法获取p1的name的getter方法:NSString* name = [p1 name];
使用set方法对成员变量写入操作
#import <Foundation/Foundation.h>
@interface Person : NSObject {
NSInteger _age;
NSString* _name;
}
- (NSString*)name;
- (NSInteger)age;
//声明setter方法
- (void)setName:(NSString*)name;
- (void)testFunc;
@end
//类的实现
@implementation Person
//方法实现
- (void)testFunc {
//在类的内部可以直接访问成员变量
_age = 19;
NSLog(@"age = %ld",_age);
}
- (NSString*)name{
return _name;
}
- (NSInteger)age{
_age = 28;
return _age;
}
//setter方法实现
- (void)setName:(NSString *)name{
_name = name;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//1.类调用类型方法
Person* p1 = [Person new];
//2.对象调用实例方法
[p1 testFunc];
NSString* name = [p1 name];
NSLog(@"name is %@", name);
[p1 setName:@"小强"];
name = [p1 name];
NSLog(@"name is %@",name);
}
return 0;
}