• oc17--点语法


    //
    //  Person.h
    //  day13
    
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    {
    //    @public
        int _age;
        NSString *_name;
        double _height;
    }
    
    - (void)setAge:(int)age;
    - (void)setName:(NSString *)name;
    - (void)setHeight:(double)height;
    
    - (int)age;
    - (double)height;
    - (NSString *)name;
    
    - (void)test;
    
    @end
    //
    //  Person.m
    //  day13
    #import "Person.h"
    
    @implementation Person
    - (void)setAge:(int)age
    {
        _age = age;
    }
    - (void)setHeight:(double)height
    {
        _height = height;
    }
    - (void)setName:(NSString *)name
    {
        _name = name;
    }
    - (int)age
    {
        return _age;
    }
    - (double)height
    {
        return _height;
    }
    - (NSString *)name
    {
        return _name;
    }
    - (void)test
    {
        NSLog(@"test");
    }
    @end
    //
    //  main.m
    //  点语法
    
    #import <Foundation/Foundation.h>
    #import "Person.h"
    
    int main(int argc, const char * argv[]) {
        
        Person *p = [Person new];
        
    //    p->_age = 30;
    //    p->_name = @"lnj";
    //    p->_height = 1.75;
    //    
    //    NSLog(@"age = %i, name = %@, height = %f", p->_age, p->_name, p->_height);
    //
        
        
        [p setName:@"lnj"];
        [p setAge:30];
        [p setHeight:1.75];
        NSLog(@"age = %i, name = %@, height = %f", [p age], [p name], [p height]);
        
        
        // 如果给属性提供了getter和setter方法, 那么访问属性就又多了一种访问方式 , 点语法
        // 点语法其实它的本质是调用了我们的setter和getter方法 ,(打断点会进去)
        // 点语法是一个编译器的特性, 会在程序翻译成二进制的时候将.语法自动转换为setter和getter方法
        // 如果点语法在=号的左边, 那么编译器会自动转换为setter方法
        // 如果点语法在=号的右边, 或者没有等号, 那么编译器就会自动转换为getter方法
        p.name = @"lnj";
        [p setName:@"lnjjjj"];
        p.age = 30;
        p.height = 1.75;//p->height = 1.75; 之前用的是->现在用.访问。
        NSLog(@"age = %i, name = %@, height = %f", p.age, p.name, p.height);
        [p age];
        
        /*
         点语法的注意点:
         点语法一般用于给成员变量赋值, 如果不是给成员变量赋值一般情况下不建议使用, 但是也可以使用
         
         */
        p.test; // [p test];
        return 0;
    }
  • 相关阅读:
    Thinkphp3.2.3如何加载自定义函数库
    mysql 字段引号那个像单引号的撇号用法
    php cli模式学习(PHP命令行模式)
    Django model 表与表的关系
    Django model 字段详解
    Django model 中的字段解释
    python系列-1 字符串操作
    nginx-匹配规则
    ansible系列3-pyYAML
    ansible系列2-常用命令
  • 原文地址:https://www.cnblogs.com/yaowen/p/7412593.html
Copyright © 2020-2023  润新知