zoukankan      html  css  js  c++  java
  • 点语法

     

    .h--》.m--》.m

    ——————————————————————分割———————————————————————————————

    #import <Foundation/Foundation.h>

     

    @interface Dog : NSObject

    {

        NSString *_name;

        NSInteger _age;

    }

     

    - (id)initWithName:(NSString *)name andAge:(NSInteger)age;

     

    //setter方法

     

    - (void)setName:(NSString *)name;

    - (void)setAge:(NSInteger)age;

     

    //getter方法

     

    - (NSString *)name;

    - (NSInteger)age;

     

    @end

     

    #import "Dog.h"

     

    @implementation Dog

     

    - (id)initWithName:(NSString *)name andAge:(NSInteger)age

    {

        if (self = [super init]) {

            _name = name;

            _age = age;

        }

        return self;

    }

     

    - (void)setName:(NSString *)name

    {

        _name = name;

    }

     

    - (void)setAge:(NSInteger)age

    {

        _age = age;

    }

     

    - (NSString *)name

    {

        return _name;

    }

     

    - (NSInteger)age

    {

        return _age;

    }

     

    @end

     

    #import <Foundation/Foundation.h>

    #import "Dog.h"

    //点语法

    //方便别的程序员转到ios开发行业

    //struct stu

    //{

    //    char name[20];

    //    int age;

    //};

    //struct stu student;

    //student.age;

    //student.name;

     

    //点语法是编译层次的概念

    //程序在编译后, 自动展开成经典调用方式

     

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            Dog *xiaoHei = [[Dog alloc] initWithName:@"小黑" andAge:12];

            //NSLog(@"name = %@ , age = %ld", [xiaoHei name], [xiaoHei age]);

            //xiaoHei.name xiaoHei.age

            //展开成 ==>[xiaoHei name] [xiaoHei age];

            NSLog(@"name = %@ , age = %ld", xiaoHei.name, xiaoHei.age);

            //xiaoHei.name = @"小白"

            //xiaoHei.age = 13;

            //==> [xiaoHei setName:@"小白"];

            //==> [xiaoHei setAge:13];

            

            xiaoHei.name = @"小白";

            xiaoHei.age = 13;

            NSLog(@"name = %@ , age = %ld", xiaoHei.name, xiaoHei.age);

            

        }

        return 0;

    }

     

    .h--》.m--》.m

    ——————————————————————分割———————————————————————————————

    #import <Foundation/Foundation.h>

     

    @interface Person : NSObject

    //{

    //    NSString *_name;

    //    NSInteger _age;

    //}

     

    //- (void)setName:(NSString *)name;

    //- (void)setAge:(NSInteger)age;

    //

    //- (NSString *)name;

    //- (NSInteger)age;

     

    //@property 自动帮我们展开方法的声明

    @property NSString *name;

    @property NSInteger age;

     

    @end

     

    #import "Person.h"

     

    @implementation Person

     

    //- (void)setName:(NSString *)name

    //{

    //    _name = name;

    //}

    //- (void)setAge:(NSInteger)age

    //{

    //    _age = age;

    //}

    //

    //- (NSString *)name

    //{

    //    return _name;

    //}

    //- (NSInteger)age

    //{

    //    return _age;

    //}

    //@synthesize 展开setter 及 getter方法的实现

     

    //@synthesize name=_name;

    //@synthesize age=_age;

     

    @end

     

    #import <Foundation/Foundation.h>

    #import "Person.h"

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            Person *xiaoHong = [[Person alloc] init];

            //调用setter 方法

            xiaoHong.name = @"小红";

            xiaoHong.age = 12;

            //

            //NSLog(@"name = %@ age = %ld", xiaoHong.name, xiaoHong.age);

            NSLog(@"name = %@ age = %ld", [xiaoHong name], [xiaoHong age]);

            

        }

        return 0;

    }

     

    .h--》.m--》.m

    ——————————————————————分割———————————————————————————————

    #import <Foundation/Foundation.h>

     

    //readonly

    //只展开getter方法, 不展开setter方法

    //readwrite(缺省)

    //既展开了getter方法, 又展开了setter方法

     

    //内存管理中讲

    //retain(缺省) //setter方法的实现不同

    //copy

     

    //atomic(缺省) 原子性的

    //nonatomic 非原子性

     

    //setter getter

    //方法名不能以 new copy alloc mulCopy开头

    //setter给setter方法命名

    //getter给getter方法命名

     

    @interface Dog : NSObject

     

    @property (readwrite,copy)NSString *name;

     

    @property (setter=masName:,getter=getName)NSString *masterName;

     

    @property (nonatomic)NSInteger age;

     

    //@property (getter=newPlace)NSString *place;

     

    @end

     

    #import "Dog.h"

     

    @implementation Dog

     

    @end

     

    #import <Foundation/Foundation.h>

    #import "Dog.h"

     

    int main(int argc, const char * argv[]) {

        @autoreleasepool {

            Dog *xiaoHei = [[Dog alloc] init];

            xiaoHei.name = @"小黑";

            xiaoHei.age = 12;

            NSLog(@"name = %@ age = %ld", xiaoHei.name, xiaoHei.age);

            

            [xiaoHei masName:@"小飞"];

            //[xiaoHei setMasterName:@"小飞"];

            xiaoHei.masterName = @"小红";

            

            NSLog(@"masterName = %@", xiaoHei.masterName);

            NSLog(@"masterName = %@", [xiaoHei getName]);

            

        }

        return 0;

    }

     

    让明天,不后悔今天的所作所为
  • 相关阅读:
    Redis学习笔记--Redis数据过期策略详解
    网络带宽和速度测试windows和linux用iperf工具
    如何将rabbitmq集群中的某个节点移除.
    关于linux系统密码策略的设置
    linux 系统ssh超时设置
    linux安全 设置登录失败次数后,拒绝登录
    tomcat隐藏版本号
    第 16 章 模板与泛型编程
    第 15 章 面向对象程序设计
    第 14 章 重载运算与类型转换
  • 原文地址:https://www.cnblogs.com/-yun/p/4320426.html
Copyright © 2011-2022 走看看