美文网首页八天学会OC
第02天OC语言(03):练习1

第02天OC语言(03):练习1

作者: liyuhong | 来源:发表于2017-07-20 14:53 被阅读22次

    pragma mark 03-练习2

    pragma mark 概念

    pragma mark 代码

    import <Foundation/Foundation.h>

    pragma mark 类

    pragma mark main函数

    @interface Person : NSObject
    {
    @public
    int age;
    double height;
    }

    • (void)printf;
      @end

    void text1(int newAge, double newHeight);
    void text2(Person *newP);
    void text3(Person *newP);
    void text4(Person *newP);

    int main()
    {
    Person *p = [Person new];
    p->age = 10;
    p->height = 1.5f;

    text1(p->age, p->height); // 10 1.5f
    [p printf]; // 10 1.5f
    
    text2(p);   // 指针,地址
    [p printf]; // 20, 1.71
    

    warning 主要text3复杂一点 因为内部 开辟了一块新的存储空间 需要看清楚指向谁

    text3(p);   // 指针,地址
    [p printf]; // 20 1.71
    
    text4(p);   // 指针,地址
    [p printf]; // 33, 1.99
    

    }

    @implementation Person

    • (void)printf
      {
      NSLog(@"年龄 = %i,身高 = %f",age,height);
      }

    @end

    void text1(int newAge, double newHeight)
    {
    newAge = 30;
    newHeight = 1.6f;
    }
    // Person *newP = p
    void text2(Person *newP)
    {
    newP->age = 20;
    newP->height = 1.71f;
    }
    void text3(Person *newP)
    {
    Person *p2 = [Person new];
    p2-> age = 40;
    p2-> height = 1.8f;
    newP = p2;
    newP->age = 30;
    }
    void text4(Person *newP)
    {
    Person *p2 = newP;
    p2 -> age = 50;
    p2 -> height = 1.99f;
    newP -> age = 33;
    }

    image.png
    一、概念
    二、代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    
    #pragma 1.查找错误1
    /*
    @interface Person : NSObject
    {
    // 1.缺少了 @public
        @public
        int age;
        double height;
    //    double height = 1.55; // 2.成员变量不能在定义的时候 进行初始化
    //    - (void)study;
    }
    - (void)study;        // 3.方法只能写在{}外面
    // 4.缺少@end
    @end
    
    @implementation Person
    - (void)study
    {
        NSLog(@"年龄为%d的人在学习",age);
    }
    
    
    @end
    
    int main()
    {
        // 地址只能用指针保存
        Person *p = [Person new];
        p->age = 10;
        p->height = 1.77f;
        [p study];
        return 0;
    }
     */
    
    #pragma 2.查找错误2
    /*
    @interface Test : NSObject
    //- (int)addNum1(int)num1 andNum2(int)num2; // 1.缺少:
    - (int)addNum1:(int)num1 andNum2:(int)num2;
    //- (double)p1:; // 2.多了: 有参数才需要:
    - (double)p1;
    //- (void)text(); // 3.OC方法中 ()就一个作用, 用来扩住数据类型
    - (void)text;
    @end
    
    @implementation Test
    
    - (int)addNum1:(int)num1 andNum2:(int)num2
    {
        return num1 + num2;
    }
    - (double)p1
    {
        return 3.14;
    }
    - (void)text
    {
        
    }
    @end
    
    int main()
    {
        return 0;
    }
    */
    
    #pragma 3.查找错误3
    
    @interface Car : NSObject
    {
        @public
        int wheels;
    }
    - (void)run;
    - (void)text;
    @end
    
    // 1.方法的声明 必须写在类的声明中
    //- (void)run;
    //- (void)text;
    
    @implementation Car
    
    - (void)text
    {
        NSLog(@"%i轮子的车跑起来了",wheels);
    
    }
    
    // 2. 方法不能是使用函数, 方法是方法,函数是函数
    // 方法是属于一个类, 函数是属于一个文件
    //- (void)run()
    - (void)run
    {
        NSLog(@"测试一下 车子 %i",wheels); // 3.不能在函数里面访问类的成员属性
    }
    
    // 4.方法的实现 只能写在@implementation
    - (void)haha
    {
        NSLog(@"haha");
    }
    
    @end
    
    
    
    int main()
    {
        Car *c = [Car new];
        [c run];
    //    text(); // 方法不能当做函数来调用
        [c text];
    //    haha();
        [c haha];
        
    }
    

    相关文章

      网友评论

        本文标题:第02天OC语言(03):练习1

        本文链接:https://www.haomeiwen.com/subject/picphxtx.html