方法的命名规范 带参数的类的声明实现

OC基础day02

  • 创建类对象
类声明
@interface Students : NSObject
{
    //成员变量
    int _age;
    float _score;
    NSString *_name;
}
@end

类的实现
@implementation Student

@end
// 创建对象

Student *xiaoMing = [Student new];
// Student new],在内存中做的事情
1. 在堆区在根据类的定义开辟空间
2. 初始化成员变量/属性的值
3. 返回这个空间的首地址
  • 无参数的方法声明实现调用
  • 定义一个学生类

    • 无参数方法声明:
        • (void)doHomework
        • (返回值类型)方法名;
    • 无参数的方法实现
     - (void)doHomework
    {
        NSLog(@"抄作业....~");
     }
        - (返回值类型)方法名 "注意写代码的位置在哪?
     {
        //实现
     }
    • 创建对象调用方法
      • [对象名 方法名];

代码如下

  #import <Foundation/Foundation.h>
    /*
     Student
     属性:名字,年龄,学号,成绩
     方法:做作业,听音乐

     */
    @interface Student : NSObject
    {
        //成员变量
        NSString * _name;
        int _age;
        int _sno;
        float _score;
    }
    //方法的声明
    //- (返回值类型)方法名;
    /**
     *  做作业方法的声明
     */
    - (void)doHomework;

    /**
     *  听音乐方法的声明
     */
    - (void)tingYinYue;

    @end

    @implementation Student

    //方法的实现
    /**
     *  做作业方法的实现
     */
    - (void)doHomework
    {
        //实现
        NSLog(@"抄作业....");
    }
    /**
     *  听音乐方法的实现
     */
    - (void)tingYinYue
    {
        NSLog(@"听音乐 啊啊啊啊啊~~");
    }

    @end

    int main(int argc, const char * argv[]) {
        //    1.定义一个学生类(有方法)
        //
        //    2.创建对象调用方法
        //类中的方法 不能直接调用
        Student * zhangsanfeng = [Student new];//1.2.3

        //格式 [对象名 方法名];

        [zhangsanfeng tingYinYue];
        [zhangsanfeng doHomework];
        return 0;
    }
  • 带一个参数的方法的声明实现调用
    • 有参数的方法声明
        • (返回值类型)方法名:(参数类型)参数名;
        • (void)eat:(NSString *)foodName;
    • 有参数的方法声明
    • 调用带一个参数的方法:
      • 方法 不能直接调用
      • [对象名 方法名:实际参数];
      • [wangCai dat:@”水”];
  • 代码如下
#import <Foundation/Foundation.h>

    @interface Dog : NSObject
    {
        //成员变量
        int _age;
        NSString * _color;
        NSString * _kind;
    }
    //吃东西的声明
    - (void)eat:(NSString *)foodName;
    //喝东西的声明
    - (void)drink:(NSString *)drinkName;
    @end
    @implementation Dog
    //吃东西实现
    - (void)eat:(NSString *)foodName
    {
        //吃东西的实现
        NSLog(@"主人 %@真好吃",foodName);
    }
    //喝东西的实现
    - (void)drink:(NSString *)drinkName
    {
        NSLog(@"主人 %@真好喝",drinkName);
    }
    @end
    int main(int argc, const char * argv[]) {
        //方法不能直接调用,要有对象
        Dog * wangcai = [Dog new];
        //调用方法
        [wangcai eat:@"shi"];
        [wangcai drink:@"水"];
        return 0;
    }
  • **带多个参数的方法的声明和实现
    • 定义狗类 要求有两个参数的额方法
      • (返回值类型)方法名字:(参数类型)参数名1 :(参数类型)参数名2 :()….;
    • 方法调用
      • [对象名 方法名:实参1 :实参2];
  • 代码如下
/*

     1.定义狗类,要求有两个参数的方法,又吃又喝,旺财会算术(只会算2个数的加法)



     2.方法的调用

     */
    #import <Foundation/Foundation.h>
    //
    @interface Dog : NSObject
    {
        //成员变量
        int _age;
        NSString * _color;
        NSString * _kind;
    }

    //又吃又喝 方法的声明
    - (void)eatAndDrink:(NSString *)foodName :(NSString *)drinkName;

    //求两个数的和的方法
    - (int)sum:(int)num1 :(int)num2;

    @end
    @implementation Dog
    //又吃又喝 方法的实现
    - (void)eatAndDrink:(NSString *)foodName :(NSString *)drinkName
    {
        NSLog(@"旺财 一边吃着%@,一边喝着%@,还吧唧着嘴",foodName,drinkName);
    }
    - (int)sum:(int)num1 :(int)num2
    {
        int sum = num1 + num2;
        return sum;
    }

    @end

    int main(int argc, const char * argv[]) {
        Dog * wangcai = [Dog new];

        //调用2个参数的方法
        [wangcai eatAndDrink:@"shi" :@"niao"];
        int rel = [wangcai sum:10 :20];

        NSLog(@"rel = %d",rel);
        return 0;
    }
  • 方法的命名规范
  • 建议格式:

      • (返回值类型)xxxWithxxx:(参数类型)xxx :andXxx(参数类型)参数名;
      • (void)readingWithBookName:(NSString )bookName andMusicName:(NSString )musicName;
    • [xiaohong readingWithBookName:@”金瓶梅” andMusicName:@”葫芦娃”];
    • 注意命名规范最主要的是能看懂就好 最好是一句话
  • 同一个类的多个对象之间毫无关系

    • 同一个类可有 无数个对象 对象之间是毫无关系的
    • 每一个对象 都有一份自己的成员变量 不收娶她对象的影响
    • 类 就像一张纸,对象通过图纸制造出来的东西

在方法的实现中直接访问属性
* 以_开头的方法叫做 对象方法
* 顾名思义 只有对象可以调用的方法
* 在”_”方法内部, 可以直接访问 属性, 那么访问的就是调用这个方法的对象的属性

“`

#import <Foundation/Foundation.h>

@interface Pig : NSObject
{
    @public
    NSString * _name;
    int _IQ;//智商
    float _weight;//体重
}

//叫:在这个方法中 喊出自己的名字 智商 和体重
- (void)bark;

@end

@implementation Pig

- (void)bark
{
    //在对象方法 的实现中可以直接访问属性
    //谁调用 那么_name 就是谁的name
    NSLog(@"我叫 %@,我的体重高达 %.2lf,我的智商低至%d",
          _name,
          _weight,
          _IQ
          );
}

@end

int main(int argc, const char * argv[]) {
    //创建一个 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值