//
// main.m
// 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
/*
1. 类的本质其实是一个类对象
*/
/*
2. 获取Person类的类对象
*/
Person *p = [Person new]; // 其实创建这个对象是分为两步,如下:
Class cs = [Person class]; // 第一步,创建了一个类对象
Person *p1 = [cs new]; // 第二步,通过类对象创建一个对象
Person *p2 = [cs new]; // 通过类对象又创建了一个对象
// 注意:通过同一个类对象无论创建多少对象,这些对象都指向同一个类对象
/*
3. SEL指针:类对象中有一个SEL指针指向代码区
*/
/*
4. isa指针:通过类对象创建的对象中有个isa指针,指向创建它的类对象
> 这里isa指针放在对象的第一段存储空间中
*/
return 0;
}
//
// Person.h
// // 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;
}
- (void)eat;
@end
//
// Person.m
// // 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)eat
{
NSLog(@"人都要吃饭!");
}

@end
// main.m
// 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
/*
1. 类的本质其实是一个类对象
*/
/*
2. 获取Person类的类对象
*/
Person *p = [Person new]; // 其实创建这个对象是分为两步,如下:
Class cs = [Person class]; // 第一步,创建了一个类对象
Person *p1 = [cs new]; // 第二步,通过类对象创建一个对象
Person *p2 = [cs new]; // 通过类对象又创建了一个对象
// 注意:通过同一个类对象无论创建多少对象,这些对象都指向同一个类对象
/*
3. SEL指针:类对象中有一个SEL指针指向代码区
*/
/*
4. isa指针:通过类对象创建的对象中有个isa指针,指向创建它的类对象
> 这里isa指针放在对象的第一段存储空间中
*/
return 0;
}
//
// Person.h
// // 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
int _age;
}
- (void)eat;
@end
//
// Person.m
// // 类的本质
//
// Created by admin on 15/7/27.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Person.h"
@implementation Person
- (void)eat
{
NSLog(@"人都要吃饭!");
}
@end