由两个部分组成:.h和.m文件组成。 *.m文件中 @implementation部分是类的实现部分,内部包含类中的各种信息,包括各种实例方法或类方法。

实例变量(instance variable):由类定义的实例话的变量(不包括基本数据类型,如int,double,float)。

成员变量(Member variable):代码中的变量,包含实例变量和基本变量类型,无需与外界接触。 成员变量默认是protected,一般情况下,非子类对象无法访问.

属性(property):编译器自动将变量的set和get方法的合成,可用点语法读取,可作为变量使用,可与外界接触。

实例变量+基本数据类型变量=成员变量

拥有相同属性和行为的对象都可以抽象为一个,类的设计只关注三个东西:类名属性方法 对象方法都以-号开头,类方法都以+号开头 对象是类的一个实例,是一个具体的事物。

1)类的声明:

这里声明了一个Person类,这个类拥有一个@public修饰的属性(成员变量),以及一个对象方法put。

#import <Foundation/Foundation.h>
@interface Person : NSObject
{
	@public
	int _age;
}
-(void)input;
@end

2)类的实现:类的实现可以理解为类中的方法的实现

#import "Person.h"
@implementation Person
-(void)input{
NSLog(@"这是第一个程序!");
}
@end

3)类的调用:在主函数首先创建了一个Person类型的对象(先调用alloc分配存储空间,后调用init方法初始化为0),并定义了一个Person类型的指针指向创建的这个对象,之后初始化对象成员变量_age的值为20,然后调用了对象的put方法,打印输出。

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, char * argv[]) {
    Person *C = [[Person alloc]init];
    C -> _age = 20;
    [C put];
    NSLog(@"运行了");
    return 0;
}

实例对象就是通过类调用alloc来产生的instance,每一次调用的alloc都是产生新的实例对象,内存地址都是不一样的,占据着不同的内存

一个类的类对象只有唯一的一个,Class Classobjc1 = [objc1 class];