赞
踩
Objective-C,具有面向对象特性的C。
但其实,它的面向对象和其他高级语言相比,还是有很大的差异【OC的面向对象是来自于另一种较为古早的编程语言smalltalk的消息传递】。
每次点到一些iOS项目里都能看到那些奇怪的我不懂的语法,所以如果自己真心实意想开发iOS程序,Objective- C的面向对象部分的语法还是要仔细过一下。
以下代码包含:
@interface部分和@implementation部分

// // main.m // 类和对象的基本使用 // // Created by wuyujin1997 on 2023/2/23. // #import <Foundation/Foundation.h> // 类型定义(包含成员属性、方法定义的接口) @interface Person : NSObject { @public NSString* name; int age; } - (void) sayHi; // 无参数、无返回值的方法声明。 - (NSString*) toString; // 无参数、有返回值的方法声明。 - (int) sumWithNumA:(int)a numB:(int)b; // 有返回值、且有多个参数(推荐写法)。 - (int) sumFourNum:(int)a :(int)b :(int)c numD:(int)d; // 多个参数的情况下,可以省略部分参数的名称(不推荐)。 // 减号-开头表示是成员方法,由对象调用。 // 加号+开头表示是类方法,可以直接由类名调用。 + (Person*) createPersonWithName:(NSString*)name age:(int)age; @end // 类的实现(包含方法的具体实现) @implementation Person - (void) sayHi { NSLog(@"hello wuyujin1997"); } - (NSString*) toString { // 将多个参数拼接、格式化为一个字符串对象 NSString* resultStr = [NSString stringWithFormat:@"Name:%@ Age:%d", name, age]; return resultStr; } - (int) sumWithNumA: (int)a numB: (int)b { return a + b; } - (int) sumFourNum:(int)a :(int)b :(int)c numD:(int)d { return a + b + c + d; } + (Person*) createPersonWithName:(NSString*)name age:(int)age { Person* person = [Person new]; person->name = name; person->age = age; return person; } @end int main(int argc, const char * argv[]) { // 实例化一个对象并赋值 // Person* person = [[Person alloc] init]; Person* person = [Person new]; // 对象调用方法,准确的说:【向对象传递消息】。 [person sayHi]; // 对象指针如何调用成员?使用【箭头符号】。 person->name = @"wuyujin1997"; // 如何写一个成员属性? NSLog(@"name: %@", person->name); // 如何读一个成员属性? person->age = 26; // 调用一个有返回值的成员方法 NSString* personInfo = [person toString]; NSLog(personInfo); // 调用一个有返回值、且有多个参数的方法。 int resultValue = [person sumWithNumA:10 numB:22]; NSLog(@"sum result: %d", resultValue); // 调用某个含多个参数的函数(该只有部分参数有参数名、部分参数没有参数名) int sumResult = [person sumFourNum:2 :4 :6 numD:8]; NSLog(@"sum result: %d", sumResult); // 类方法调用测试 Person* p = [Person createPersonWithName:@"张三" age:22]; NSLog([p toString]); return 0; }
2023-02-23 22:38:17.083168+0800 类和对象的基本使用[9370:284964] hello wuyujin1997
2023-02-23 22:38:17.083366+0800 类和对象的基本使用[9370:284964] name: wuyujin1997
2023-02-23 22:38:17.083407+0800 类和对象的基本使用[9370:284964] Name:wuyujin1997 Age:26
2023-02-23 22:38:17.083422+0800 类和对象的基本使用[9370:284964] sum result: 32
2023-02-23 22:38:17.083433+0800 类和对象的基本使用[9370:284964] sum result: 20
2023-02-23 22:38:17.083452+0800 类和对象的基本使用[9370:284964] Name:张三 Age:22
Program ended with exit code: 0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。