zoukankan      html  css  js  c++  java
  • OC5_构造方法与self指针

    //
    //  Dog.h
    //  OC5_构造方法与self指针
    //
    //  Created by zhangxueming on 15/6/9.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface Dog : NSObject
    {
        NSString *_name;
        NSInteger _age;
    }
    //必须以 initWithXXX开头
    //在一个类里面可以有多个构造方法, 但是一个对象只可以调用一次构造方法
    
    //无参数
    - (id)init;//返回对象的地址
    
    //带一个参数
    - (id)initWithName:(NSString *)name;
    - (id)initWithAge:(NSInteger)age;
    
    //带两个参数
    - (id)initWithName:(NSString *)name andAge:(NSInteger)age;
    
    //getter方法
    - (NSString *)name;
    
    - (NSInteger)age;
    
    //setter方法
    - (void)setName:(NSString *)name andAge:(NSInteger)age;
    
    //类方法
    + (void)testDog;
    
    @end
    //
    //  Dog.m
    //  OC5_构造方法与self指针
    //
    //  Created by zhangxueming on 15/6/9.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Dog.h"
    
    @implementation Dog
    
    - (instancetype)init
    {
        if (self = [super init]) {//引用父类方法的编译器符号
        }
        return self;
    }
    
    - (id)initWithName:(NSString *)name
    {
        if (self = [super init]) {
            _name = name;
        }
        return self;
    }
    
    - (id)initWithAge:(NSInteger)age
    {
        if (self = [super init]) {
            _age = age;
        }
        return self;
    }
    
    - (id)initWithName:(NSString *)name andAge:(NSInteger)age
    {
        if(self = [super init])
        {
            _name = name;
            _age = age;
        }
        return self;
    }
    
    - (NSString *)name
    {
        return _name;
    }
    
    - (NSInteger)age
    {
        return _age;
    }
    
    - (void)setName:(NSString *)name andAge:(NSInteger)age
    {
        _name = name;
        _age = age;
    }
    
    +(void)testDog
    {
        Dog *xiaoHei = [[self alloc] initWithName:@"小黑" andAge:12 ];
        NSLog(@"name = %@ age = %li", [xiaoHei name], [xiaoHei age]);
    }
    
    @end
    //
    //  main.m
    //  OC5_构造方法与self指针
    //
    //  Created by zhangxueming on 15/6/9.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Dog.h" 
    //1.#ifndef "Dog.h" #define "Dog.h"  #endif,防止头文件被重定义
    //2.@class 打断循环链 防止循环包含
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            [Dog testDog];
            
            Dog *xiaoBai = [[Dog alloc] init];
            [xiaoBai setName:@"小白" andAge:15];
            NSLog(@"name = %@ age = %li", [xiaoBai name], [xiaoBai age] );
            
             
        }
        return 0;
    }
  • 相关阅读:
    将多个字典添加到数组输出
    获取字典中的数组
    数组内的元素排序
    1字符串中的world替换为i bookan wisdom2.字符串的相加字符串输出,长度3比较字符串大小4截取字符串5字符串内所有a都替换成A6判断字符串是否以http开头7将字符串内admin和123截取出来8字符添加
    判断是否有前缀后缀
    截取字符串
    大小写
    数据存字典,block排序,删除
    block排序
    描述器 排序(根据属性)
  • 原文地址:https://www.cnblogs.com/0515offer/p/4564278.html
Copyright © 2011-2022 走看看