zoukankan      html  css  js  c++  java
  • 进击的Objective-C--------------Objective-C(二)

    1实例变量的可见度:
    @public
        // @public 关键字 表明实例变量是公有的 类外 可以访问 类内 也可以访问
        // 类外:指的就是该类的.h和.m 之外
        // @public 关键字是使用的最少的 因为它破坏了封装的特性
        NSString *_name;
    @protected
        // @protected 关键字 表明实例变量是受保护的,类外不可以访问,类内可以访问
        // 子类是可以继承@protected修饰的实例变量
        // 默认的 以后开发用的最多
        NSString *_gender;
    @private
        // @private 关键字 表明实例变量是私有的,类外不可以访问,类内可以访问
        // 子类是不可以可以继承@private修饰的实例变量
        NSInteger _age;
    }
    2方法:
    ⽅方法是OC的核心,采用消息机制:[receiver message]
    “-”message由对象来调⽤
    “+”message由类来调⽤
    //  无参无返回值
    //  1 实例方法 :对象调用 - 方法
    -(void)makeMoney;
    -(void)payMoney;
    -(void)warmBed;
    // 2 类方法 :类的调用(直接用类名调用) + 方法
    +(void)makeGrilFriend;
    // 无参有返回值
    -(NSString *)backName;
    // OC 中 给实例变量赋值的方法 叫做setter方法(设置器)
    // OC 中 读取实例变量的方法叫做getter方法(访问器)
    // 有参无返回值
    // OC方法中的参数是由冒号的个数来区分的 冒号后面放的是参数的类型由括号括起来 一般第二个参数往后,相当于参数的一个说明,它算在方法名内
    //  -号是方法的类型 void是返回值类型 方法名setName:age:  参数是(NSString*)name和(NSInteger)age;
    -(void)setName:(NSString *)name age:(NSInteger)age;
    // 有参有返回值
    -(NSInteger)getAge:(NSInteger)age;
    3重点掌握
    getter方法
    OC 中 读取实例变量的方法叫做getter方法(访问器)
    -(NSString *)brand;
    setter方法
    OC 中 给实例变量赋值的方法 叫做setter方法(设置器)
    -(void)setBrand:(NSString *)brand;
    自定义初始化
    -(instancetype)initWithName:(NSString *)name
                                       gender:(NSString *)gender
                                             age:(NSInteger)age{
        _name =name;
        _gender = gender;
        _age = age;
        return self;}
    4类的组合
    Boy *b1 = [[Boy alloc]initWithName:@"赵成浩"];
    Grill *g1 = [[Grill alloc]initWithName:@"宋慧乔"];
    Family *f1 = [[Family alloc]initWithBoy:b1 gril: g1];
    NSLog(@"%@",[[f1 boy]name]);
    NSLog(@"%@",[[f1 gril]name]);
    NSLog(@"%@ %@",[[f1 boy]name],[[f1 gril]name]);
    5循环导入:
    #include  C语言中使用包含头文件引入的是C语言中标准输入输出的函数库
    #import    OC中引入头文件的意思
    @class      适用于两个类之间互相引用 只是声明两个类,很好的防止了#import产生的循环引用问题
     +类 alloc
     -对象 -(void)setName:(NSString *)name age:(NSIntage)age;
    6 语法糖 
    语法糖 (.语法)(指针数组放指针,字符串)
    *[p + i] = p[i]
    NSLog(@"%@",p1.name);
     
     
    代码:
    #import <Foundation/Foundation.h>

    @interface person : NSObject{
        NSString *_name;
        NSString *_gender;
        NSInteger _age;
    }
    -(NSString *)name;
    -(void)setName:(NSString *)name;
    -(NSString *)gender;
    -(void)setGender:(NSString *)gender;
    -(NSInteger)age;
    -(void)setAge:(NSInteger)age;
    -(instancetype)initWithName:(NSString *)name
                         gender:(NSString *)gender age:(NSInteger)age;
    @end
    #import "person.h"

    @implementation person
    -(NSString *)name{
        return _name;
    }
    -(void)setName:(NSString *)name{
        _name = name;
    }
    -(NSString *)gender{
        return _gender;
    }
    -(void)setGender:(NSString *)gender{
        _gender = gender;
    }
    -(NSInteger)age{
        return _age;
    }
    -(void)setAge:(NSInteger)age{
        _age = age;
    }
    -(instancetype)initWithName:(NSString *)name gender:(NSString *)gender age:(NSInteger)age{
        _name =name;
        _gender = gender;
        _age = age;
        return self;
    }
    @end
    #import <Foundation/Foundation.h>
    #import "person.h"
    int main(int argc, const char * argv[]) {
    person *p1 = [[person alloc]initWithName:@"宋慧乔" gender:@"女" age:17];
        [p1 setName:@"范冰冰"];
        NSLog(@"%@",[p1 name]);
  • 相关阅读:
    缓存---缓存位置
    缓存---LRU算法实现
    缓存---缓存特征
    Redis---分片
    Redis---复制
    Redis---事件
    Redis---事务
    Redis---持久化
    javaSript 处理电脑和浏览器pc端缩放对页面的影响
    css设置不可复制
  • 原文地址:https://www.cnblogs.com/sharkHZ/p/4984036.html
Copyright © 2011-2022 走看看