zoukankan      html  css  js  c++  java
  • OC 构造方法

    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject {
        int _age;
        int _no;
    }
    
    - (void)setAge:(int)age;
    - (int)age;
    
    - (void)setNo:(int)no;
    - (int)no;
    
    // 自己写一个构造方法
    - (id)initWithAge:(int)age andNo:(int)no;
    
    @end
    #import "Student.h"
    
    @implementation Student
    
    - (void)setAge:(int)age {
        _age = age;
    }
    
    - (void)setNo:(int)no {
        _no = no;
    }
    
    - (int)age {
        return _age;
    }
    
    - (int)no {
        return _no;
    }
    // 实现构造方法
    - (id)initWithAge:(int)age andNo:(int)no {
        // 首先要调用super的构造方法
        // self = [super init];
        
        // 如果self不为nil
        if (self = [super init]) {
            // _age = age;
            // _no = no;
            self.age = age;
            self.no = no;
        }
        
        return self;
    }
    
    // 重写父类的description方法
    // 当使用%@带打印一个对象的时候,会调用这个方法
    - (NSString *)description {
        NSString *str = [NSString stringWithFormat:@"age is %i and no is %i", self.age, self.no];
        return str;
    }
    
    // 如果直接把方法写在.m文件中,没有在.h文件中进行声明,那么这就是私有方法
    
    // 谁调用方法,self就指向谁
    - (void)test {
        int age = self.age;
    }
    
    + (void)test2 {
        [Student alloc];
        
        [self alloc];
        
        // 上面两句代码是等效的
    }
    @end
  • 相关阅读:
    jQuery插件主要有两种扩展方式
    系统负载测试工具-LoadRunner
    安全扫描工具-AppScan
    newinstance()和new有什么区别?(转)
    类的加载、连接和初始化 (转)
    tar 基础
    了解【重放攻击】
    DDLDMLDCLDQL
    web.xml的配置问题
    组合与聚合
  • 原文地址:https://www.cnblogs.com/liuwj/p/6899601.html
Copyright © 2011-2022 走看看