OC学习_2_关于类的定义

=====文档变更状态====
2015-12-14:发布

=================
day02-[2015-12-11]
一、类的简单定义
1.直接使用@implementation指令
2.将成员变量定义在一对{}中
3.在{}后定义方法/行为
4.最后加上@end指令
5.类名使用PASCAL命名规范,一般在类名前加前缀
6.创建对象:
类名* 指针名=[类名 new];
7.访问成员变量:
指针名->成员变量名
8.访问方法:
[指针名 方法名];
// 定义一个简单类

#import <Foundation/Foundation.h>

@implementation Person : NSObject // 定义一个简单类用@implementatopn的方式
{
@public    // 不写默认是私有的下面的main函数不能用箭头访问此处的三个变量
    NSString* name;
    int age;
    char gender;
}

-(void)say{
    NSLog(@"I am %@,age is %d,gender is %c.",name,age,gender);
}

-(void)eat:(NSString*)food{
}

-(int)doWork{
    return 0;
}
@end

int main1() {
    Person* tang=[Person new];  // 具体化、实例化对象用new的方式
    tang->age=50;              // 给成员变量age赋值,”结构体”用箭头访问
    tang->name=@"Sanzang";   // 给成员变量name赋值
    tang->gender='M';          // 给成员变量gender赋值
    [tang say];                  //方法调用

    return 0;
}

二、类的规范语法
1.分成声明和实现二部分
2.声明(也称为:接口):使用@interface
成员变量(属性)的定义、方法的声明(没有方法体),以头文件.h形式给出
3.实现:使用@implementation
方法的实现,以.m文件给出
4.可以使用Xcode的模板创建
5.创建对象的另一种方式:
类名* 指针名=[[类名 alloc]init];

三、方法
1.定义在类中的是方法method,类外的是函数function
2.方法分为对象方法(-)和类方法(+);对象方法必须由对象实例来调用,类方法必须由类名来调用;对象方法可以访问成员变量,而类方法不可以
3.方法参数:使用“:”与方法名分割,多个参数使用空格分隔,且每个参数都应有一个“:”,最好给每个参数一个形参标签
4.只在接口中声明,没有实现的可以调用并通过编译,但运行会出错;没有声明只有实现的方法(暂时)无法调用,可以当做私有方法
5.同一类中不允许出现同名的类方法或同名的对象方法,方法名包括“:”和形参标签;可以有与对象方法同名的类方法

备注:下面两段代码比较简单,不在写注释和注意点
// YYPerson—规范定义一个类-1

// YYPerson.h
@interface YYPerson : NSObject
{
@public
    NSString* name;
    int age;
    char gender;
}
-(void)say;
-(void)eat:(NSString*)food;
-(int)doWork;
+(void)test;
-(void)doSomething:(NSString*)job withTool:(NSString*)tool;
-(void)method1:(int)a :(int)b :(int)c;

-(void) method2:(int)n other:(int)m;
-(void)test;
@end

//  YYPerson.m
#import "YYPerson.h"

@implementation YYPerson
-(void)say{
    NSLog(@"I am %@,age is %d,gender is %c.",name,age,gender);
}

-(void)eat:(NSString *)food{
}

-(int)doWork{
    return 0;
}
+(void)test{
//    NSLog(@"this is test method%@.",name);
}

-(void)doSomething:(NSString *)job withTool:(NSString *)tool{
    NSLog(@"%@ is doing %@ using %@",name,job,tool);
}

-(void)method1:(int)a :(int)b :(int)c{
    NSLog(@"a=%d,b=%d,c=%d",a,b,c);
}

-(void)ttt{
    NSLog(@"ttt method");
}
@end


// test1.m


#import "YYPerson.h"
int main2(){
    YYPerson* person=[[YYPerson alloc]init];//new
//    NSLog(@"age:%d",person->age);
    person->name=@"mike";
    [person say];

    [YYPerson test];

    NSLog(@"============");
    [person doSomething:@"code" withTool:@"xcode"];
    [person method1:1 :2 :3];
//    [person ttt];
    [person method2:10 other:4];

    return 0;
}

// YYBook—规范定义一个类-2

//  YYBook.h
#import <Foundation/Foundation.h>

@interface YYBook : NSObject
{
@public
    NSString* title;
    NSString* author;
    int amount;
    float price;
}

-(void)sell:(int)qty;
-(void)buy:(int)qty;

+(void)intro;
@end
//  YYBook.m
#import "YYBook.h"

@implementation YYBook
-(void)sell:(int)qty{
    if(qty<=amount){
        amount-=qty;
        NSLog(@"卖出%d本《%@》,库存%d本。",qty,title,amount);
    }
    else{
        NSLog(@"《%@》库存%d本,不够销售。",title,amount);
    }
}

-(void)buy:(int)qty{
    amount+=qty;
    NSLog(@"买入%d本《%@》,库存%d本。",qty,title,amount);
}
+(void)intro{
//    NSLog(@"this book is %@.",title);
}
@end
//  testBook.m
#import "YYBook.h"
int main(){
    YYBook* bk=[YYBook new];
    bk->title=@"iOS入门";
    bk->author=@"Jobs";
    bk->price=39.99;
    bk->amount=10;
    [bk buy:4];
    [bk sell:45];
    NSLog(@"《%@》的库存是%d本。",bk->title,bk->amount);

    YYBook* bk2=[YYBook new];
    bk2->title=@"OC入门";
    bk2->author=@"Will";
    bk2->price=99.99;
    bk2->amount=3;
    [bk2 buy:2];
    [YYBook intro];
    return 0;
}

———————–EOF——————-

内容概要:本文介绍了多种开发者工具及其对开发效率的提升作用。首先,介绍了两款集成开发环境(IDE):IntelliJ IDEA 以其智能代码补全、强大的调试工具和项目管理功能适用于Java开发者;VS Code 则凭借轻量级和多种编程语言的插件支持成为前端开发者的常用工具。其次,提到了基于 GPT-4 的智能代码生成工具 Cursor,它通过对话式编程显著提高了开发效率。接着,阐述了版本控制系统 Git 的重要性,包括记录代码修改、分支管理和协作功能。然后,介绍了 Postman 作为 API 全生命周期管理工具,可创建、测试和文档化 API,缩短前后端联调时间。再者,提到 SonarQube 这款代码质量管理工具,能自动扫描代码并检测潜在的质量问题。还介绍了 Docker 容器化工具,通过定义应用的运行环境和依赖,确保环境一致性。最后,提及了线上诊断工具 Arthas 和性能调优工具 JProfiler,分别用于生产环境排障和性能优化。 适合人群:所有希望提高开发效率的程序员,尤其是有一定开发经验的软件工程师和技术团队。 使用场景及目标:①选择合适的 IDE 提升编码速度和代码质量;②利用 AI 编程助手加快开发进程;③通过 Git 实现高效的版本控制和团队协作;④使用 Postman 管理 API 的全生命周期;⑤借助 SonarQube 提高代码质量;⑥采用 Docker 实现环境一致性;⑦运用 Arthas 和 JProfiler 进行线上诊断和性能调优。 阅读建议:根据个人或团队的需求选择适合的工具,深入理解每种工具的功能特点,并在实际开发中不断实践和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值