直接查找系统库 导入 Function/Function.h Function 是框架, Function.h 是主头文件 导入了可以用这个框架的所有文件有文件 */ #import // 类的定义 NSObject 是父类 @interface Person : NSObject{ // 属性 double _hight; double _weight; } /* interface 和 end 之间定义行为 */ // - 开头的方法,对象可以调用的 // + 开头的方法,类可以调用的 // 声明一个 唱歌方法,可以被对象调用 // 直接在这个定义后面 `{函数实现}` 这样会报错 - (void) sinTheSong; @end // 是先对象函数 @implementation Person - (void)sinTheSong{ printf("人在唱歌!\n"); } @end int main(int argc, const char * argv[]) { /* 自动释放池,帮我们动态分配对象 工厂方法创建的 */ @autoreleasepool { // 实力化一个对象 利用 [Person new]; [[Person alloc] init]; // 动态初始化对象的内存 Person* Xiaoming = [Person new]; /* [对象 实力方法] [类型 类型方法] */ [Xiaoming sinTheSong]; // insert code here... // @"" oc 的字符串类型,对象类型 NSLog(@"Hello, World!"); } return 0; }"> 直接查找系统库 导入 Function/Function.h Function 是框架, Function.h 是主头文件 导入了可以用这个框架的所有文件有文件 */ #import // 类的定义 NSObject 是父类 @interface Person : NSObject{ // 属性 double _hight; double _weight; } /* interface 和 end 之间定义行为 */ // - 开头的方法,对象可以调用的 // + 开头的方法,类可以调用的 // 声明一个 唱歌方法,可以被对象调用 // 直接在这个定义后面 `{函数实现}` 这样会报错 - (void) sinTheSong; @end // 是先对象函数 @implementation Person - (void)sinTheSong{ printf("人在唱歌!\n"); } @end int main(int argc, const char * argv[]) { /* 自动释放池,帮我们动态分配对象 工厂方法创建的 */ @autoreleasepool { // 实力化一个对象 利用 [Person new]; [[Person alloc] init]; // 动态初始化对象的内存 Person* Xiaoming = [Person new]; /* [对象 实力方法] [类型 类型方法] */ [Xiaoming sinTheSong]; // insert code here... // @"" oc 的字符串类型,对象类型 NSLog(@"Hello, World!"); } return 0; }"> 直接查找系统库 导入 Function/Function.h Function 是框架, Function.h 是主头文件 导入了可以用这个框架的所有文件有文件 */ #import // 类的定义 NSObject 是父类 @interface Person : NSObject{ // 属性 double _hight; double _weight; } /* interface 和 end 之间定义行为 */ // - 开头的方法,对象可以调用的 // + 开头的方法,类可以调用的 // 声明一个 唱歌方法,可以被对象调用 // 直接在这个定义后面 `{函数实现}` 这样会报错 - (void) sinTheSong; @end // 是先对象函数 @implementation Person - (void)sinTheSong{ printf("人在唱歌!\n"); } @end int main(int argc, const char * argv[]) { /* 自动释放池,帮我们动态分配对象 工厂方法创建的 */ @autoreleasepool { // 实力化一个对象 利用 [Person new]; [[Person alloc] init]; // 动态初始化对象的内存 Person* Xiaoming = [Person new]; /* [对象 实力方法] [类型 类型方法] */ [Xiaoming sinTheSong]; // insert code here... // @"" oc 的字符串类型,对象类型 NSLog(@"Hello, World!"); } return 0; }">
/*
#import 导入系统库文件 自动检查文件是否被重复导入
#import "用户自定义文件"  先用户目录,后系统文件
#import <系统库文件> 直接查找系统库

导入 Function/Function.h  Function 是框架,
Function.h 是主头文件 导入了可以用这个框架的所有文件有文件
*/
#import <Foundation/Foundation.h>

// 类的定义 NSObject 是父类
@interface Person : NSObject{
    // 属性
    double _hight;
    double _weight;
}
/*
 interface 和 end 之间定义行为
 */
// - 开头的方法,对象可以调用的
// + 开头的方法,类可以调用的

// 声明一个 唱歌方法,可以被对象调用
// 直接在这个定义后面 `{函数实现}` 这样会报错
- (void) sinTheSong;

@end

// 是先对象函数
@implementation Person

- (void)sinTheSong{
    printf("人在唱歌!\\n");
}

@end

int main(int argc, const char * argv[]) {
/*
	自动释放池,帮我们动态分配对象 工厂方法创建的
*/
    @autoreleasepool {
        
        // 实力化一个对象   利用 [Person new]; [[Person alloc] init];
        // 动态初始化对象的内存
        Person* Xiaoming = [Person new];
        /*
         [对象 实力方法]
         [类型 类型方法]
         */
        [Xiaoming sinTheSong];
        // insert code here...
				// @"" oc 的字符串类型,对象类型
        NSLog(@"Hello, World!");
    }
    return 0;
}

类的函数调用 和类的初始化类似

// message 类
+ (void)setMess1:(NSString*)mess1 setMess2:(NSString*)mess2{
	NSLog(@"1111");
}

// main.m 调用
[message setMess1:@"hahaha" setMess2:@"hehehe"];

OC 不支持多继承