1. 类的定义
>用关键字@interface进行声名 @end 结束
>所有的类有一个基类NSobject
>类名 也是标示符 第一个字母大写 如果多个字母组成 每个单词的首字母大写
>类名 冒号":"后 是父类(继承父类)
>成员变量 (属性) 用大括号{ }包含起来
>方法的声明用两种 +号表示类方法(类名调用) -表示实例方法9(对象调用)
以下是Person类的声明:
#import <Foundation/Foundation.h>
@interface Person:NSObject{
//成员变量
//默认是受保护的 封装特性 不允许外面的变量进行访问
int grade;
@public
int age;
int numberId;
}
//1.方法必须 -号 或者 +号 开头
//2. -号 后面是函数的返回值
//3.方法名称
//4.变量
-(void)printPerson;
-(void)passedAge:(int)newAge;
//带两个参数的方法声明 理解:(void) 函数的返回值
//passedAge 对第一个参数的描述
//AndNumberId 对第二个参数的描述
-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId;
-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade;
+(void)test;
@end
2.类的实现
>类的实现 采用关键字@implemention 以@end结束
以下为Person类的实现文件
#import "Person.h"
@implementation Person
-(void)printPerson{
NSLog(@"===实例方法===person info %d__%d",age,numberId);
}
-(void)passedAge:(int)newAge{
age = newAge;
NSLog(@"===实例方法===赋值===%d",age);
}
-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId{
age = newAge;
numberId = newNumberId;
NSLog(@"===实例方法===赋值===%d__%d",age,numberId);
}
-(void)passedAge:(int)newAge AndNuberId:(int)newNumberId AndGrade:(int)newGrade{
age = newAge;
numberId = newNumberId;
grade = newGrade;
NSLog(@"===实例方法===赋值===%d__%d__%d",age,numberId,grade);
}
//类方法 (加号方法)
+(void)test{
NSLog(@"===用类名调用类方法===");
}
@end
3.调用Person类
>Person 发送一个new消息(调用new方法) 在系统里分配存储空间(堆空间) 并将存储空间的首地址返回 (创建对象)
在main函数里面调用 以下代码为Person类的调用
//创建person对象
Person *person = [Person new];
NSLog(@"===地址===地址===%p",person);
person->age = 10;
NSLog(@"===间指===%d",(*person).age);
NSLog(@"===间指===%d",person->age);
//通过对象去调用 printPerson方法 (实例方法)
[person printPerson];
//通过类名去调用 test方法 (对象方法)e
[Person test];
//对参数赋值 调用带参数的方法
[person passedAge:10];
[person passedAge:20 AndNuberId:30];
[person passedAge:40 AndNuberId:50 AndGrade:60];
//new == alloc init 创建两个对象 person1 person2
Person *person1 = [[Person alloc] init] ;
NSLog(@"===地址===地址===%p",person1);
Person *person2 = [Person new];
NSLog(@"===地址===地址===%p",person2);