类和方法
下图中是一段的类声明的语法展示,声明了一个叫做 MyClass 的类,它继承于根类:NSObject。(根类可以被所有的其他类直接或间接继承。)
下图是一个方法的语法展示,方法的声明由以下几个部分构成:方法类型标识符,返回类型,一个或多个方法签名关键字,以及参数类型和名称。
类的实体变量的访问权限
创建类
在.h头文件里添加类成员变量和方法
#import <Foundation/Foundation.h>
@interface Student : NSObject {
NSString *stuName;
NSInteger stuAge;
}
//声明构造函数
-(Student*) initWithNameAndAge:(NSString*) name set:(NSInteger) age;
- (void) printInfo;
- (void) setName:(NSString *) name;
- (void) setAge: (NSInteger) age;
//多参数的方法
- (void) setNameAndAge: (NSString* ) name set : (NSInteger) age;
- (NSString *) getName;
- (NSInteger) getAge;
@end
@interface 类的开始的标识符号 ,好比Java 或 C 语言中的Class
@end 类的结束符号
继承类的方式:Class:Parent,如上代码Student:NSObject
成员变量在@interface Class: Parent { .... }之间
成员变量默认的访问权限是protected。
类成员方法在成员变量后面,格式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
scope指得是类方法或实例化方法。类方法用+号开始,实例化方法用 -号开始。
在.m文件中实现类中的方法
#import "Student.h"
@implementation Student
//实现构造函数
-(Student*) initWithNameAndAge:(NSString*) name set:(NSInteger) age {
self = [super init];
if (self) {
[self setNameAndAge:name set:age];
}
return self;
}
- (void) printInfo {
NSLog(@"姓名: %@, 年龄: %d岁",stuName,(int)stuAge);
}
- (void) setName:(NSString *) name {
stuName = name;
}
- (void) setAge: (NSInteger) age {
stuAge = age;
}
//多参数的方法实现
- (void) setNameAndAge: (NSString* ) name set : (NSInteger) age {
stuName = name;
stuAge = age;
}
- (NSString *) getName {
return stuName;
}
- (NSInteger) getAge {
return stuAge;
}
@end
类的实例
Student *stu = [[Student alloc] init];
[stu setName:@"刘国权"];
[stu setAge:27];
[stu printInfo];
Student *stu1 = [[Student alloc] init];
//调用多参数的方法
[stu1 setNameAndAge:@"liuguoquan" set:27];
[stu1 printInfo];
//使用自定义构造函数
Student *stu2 = [[Student alloc] initWithNameAndAge:@"liuguoquan" set:29];
[stu2 printInfo];
Sutdent *student = [[Sutdent alloc] init]; 这行代码含有几个重要含义
[Student alloc]调用Student的类方法,这类似于分配内存,
[object init]是构成函数调用,初始类对象的成员变量。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。