1. 方法(method)
就是類中的函數,寫法和函數不同
-(返回值類型)方法名; //無參數
-(返回值類型)方法名:(參數類型)參數名; //一個參數
-(返回值類型)方法名:(參數類型)參數1 :(參數類型)參數2 ...; //多個參數
-(返回值類型)部分方法名:(參數類型)參數1 部分方法名:(參數類型)參數2 ...
":"是方法名的一部分。
//在TREmployee.h中:
#import <Foundation/Foundation.h>
@interface TREmployee : NSObject
@property NSString *name;
@property int age;
@property BOOL gender;
@property double salary;
- (void) show; //無參方法
- (void)raiseSalary: (double) money; //一個參數
- (double) getSlary;
- (NSString*)genderToString; //返回的是一個對象需用*,返回地址,引用(指針)
- (void) changeName: (NSString*) newName; //OC對象傳遞需用指針,對象不能隨便拷貝
- (void)set: (NSString*) newName :(int)newAge; //兩個參數
- (void)set: (NSString*) newName :(int)newAge :(BOOL)newGender : (double)newSalary ; //四個參數
//方法名由若干部分組成
- (void)setName: (NSString*)newName andAge: (int)newAge; //部分方法名
- (void)setName: (NSString*)newName
age: (int)newAge
gender:(BOOL)newGender
salary:(double)newSalary;
@end
//在TREmployee.m中:
#import "TREmployee.h"
@implementation TREmployee
- (void) show //無參方法
{
NSLog(@"%@, %@, %d, %g", self.name, [self genderToString], self.age, self.salary);
}
- (void)raiseSalary: (double) money //一個參數
{
self.salary += money;
}
- (double) getSlary
{
return self.salary += money;
}
- (NSString*)genderToString //返回的是一個對象需用*,返回地址,引用(指針)
{
return self.gender?@"男":@"女";
}
- (void) changeName: (NSString*) newName //OC對象傳遞需用指針,對象不能隨便拷貝
{
self.name = newName;
}
- (void)set: (NSString*) newName :(int)newAge //兩個參數
{
self.name = newName;
self.Age = newAge;
}
- (void)set: (NSString*) newName :(int)newAge :(BOOL)newGender : (double)newSalary
{
self.Name = newName;
self.Age = newAge;
self.Gender = newGender;
self.salary = newSalary;
}
- (void)setName: (NSString*)newName andAge: (int)newAge //部分方法名
{
self.name = newName;
self.Age = newAge;
}
- (void)setName: (NSString*)newName
age: (int)newAge
gender:(BOOL)newGender
salary:(double)newSalary
{
self.name = newName;
self.age = newAge;
self.gender = newGender;
self.salary = newSalary
}
@end
//在main.m中:
#import "TREmployee.h"
void test1()
{
TREmployee *e = [TREmployee alloc];
[e show];
e.name = @"Daniel";
[e set:@"Daniel" :30];
[e show];
[e raiseSalary:10000];
[e show];
[e set: @"Daniel" :30 :YES :1234567.78];
[e show];
[e changeName: @"Guodh"];
[e show];
[e set:@"Guodenghong" :31 :YES :123456.78];
[e setName:@"Daniel" andAge: 32];
NSLog(@"你的工資是多少:%g", [e getSalary]);
[e setName:@"Daniel" age:30 gender:YES salary:12345]; //部分方法名,最實用
}
int main(int argc, const char *argv[])
{
@autoreleasepool {
test1();
}
return 0;
}