2.始化方法

继承:把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可。

Student类继承了Person类,将Person类中的所有实例变量和方法都继承过来了 @interface Student : Person 只要写自己独有的实例变量 @end
继承的特点:
1、没有父类的类称作根类,OC中的根类是NSObject 2、继承是单向的,不能互相继承
3、子类继承父类所有的实例变量和方法(父类中私有的实例变量也被继承,但不能被子类访问)
4、继承具有传递性
5、一个类只有一个父类,但可以有多个子类
继承的重写:(先找自己,逐级向上查找,找到即执?。) 1、如果子类不满足父类的实现可将继承父类的方法重写。
2、声明父类继承的方法,是告诉外界,该方法是重写父类的方法
3、如果本类没有重写父类过来的study方法,则执行父类的study方法,反之,执行子类重写父类的study方法
4、方法的执行,优先从本类找方法的实现
继承方法的实现:
super:是编译器指令,并非对象
作用:给super发送消息,可以执行父类该方法的实现
[super init]


初始化方法:
1、初始化方法是对象方法即 - 方法,并且以init开头
2、初始化方法的作用是为某些实例变量进行赋值
3、一个类的初始化方法可以有多个,但是一个对象的生命周期中,初始化方法只有一次
4、id或者instancetype类型的返回值
5、可以带0或多个参数
初始化步骤:
1、向super发送初始化方法,执行父类中的初始化方法,将父类继承过来的实例变量进行初始化
2、初始化之后再将本类独有的实例变量进行初始化
3、全部实例变量初始化之后,将对象传出去
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender{
    self = [super init]; // 将父类继承过来的isa初始化
    if (self) {// 父类初始化成功之后,在执行自身的实例变量的初始化
        [self setName:name]; //        _name = name;
        [self setAge:age]; //        _age = age;
        [self setGender:gender]; //        _gender = gender;
    }
    return self;// 全部实例变量初始化之后,将对象传出去
}
初始化的原则:一般选参数最多的初始化方法作为指定初始化方法
self:系统关键字,self在方法中指代当前方法的调用者(外界执行此方法的对象),在类方法中指代类名。


便利构造器:封装了对象创建过程
内部实现:封装了alloc和初始化操作,创建对象更加方便快捷
便利构造器是+方法
返回本类型的实例
方法名以类名开头
可以有0或多个参数
声明: + (Person *)personWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender;
实现: + (Person *)personWithName:(NSString *)name age:(NSInteger)age gender:(NSString *)gender {
    /*
    // 1、创建对象
    Person *p = [[Person alloc] initWithName:name age:age gender:gender];
    // 2、返回对象
    return p;
     */
    return [[Person alloc]initWithName:name age:age gender:gender];
}

时间: 2024-10-12 15:37:19

2.始化方法的相关文章

TJI读书笔记07-初始化

body, td { font-family: 微软雅黑; font-size: 10pt; } TJI读书笔记07-初始化 成员初始化 构造方法初始化 初始化块 初始化的顺序 成员初始化 java尽量去保证每个变量在使用前都会得到初始化. 对于方法局部变量,java不会自动初始化他们,如果没有显式的初始化,编译器会报错. 对于类的数据成员,java会自动初始化成一个"空""的值.简单来说,这个空的值对于基本数据类型就是,0,false,和空格. 对于引用类型就是null.

TIJ读书笔记03-初始化和构造器

body, td { font-family: 微软雅黑; font-size: 10pt; } TIJ读书笔记03-初始化和构造器 初始化和清理是涉及安全的两个问题,如果对象不能正确的初始化会引起很多错误,比如空指针异常等,如果不能恰当及时的清理,会占用过多资源. 构造器在创建一个类的实例的时候,由编译器去调用,构造器可以保证每个对象在可被用户操作前都正确的被初始化. 关于构造器有个问题,就是构造器应该叫什么名字. 所有方法名都有可能和用户自定义函数名相冲突 调用构造器是编译器的责任,那么必须

Java-初始化过程

Java-初始化过程 一 对象的初始化过程 1,JVM将class加载内存 2,静态代码块会执行(没有就跳过),给该类初始化 3,开辟堆内存空间,分配内存地址 4,私有成员变量先默认初始化, 5,对对象进行显示初始化 6,然后构造代码块初始化(没有就跳过) 7,构造函数初始化 8,将内存地址赋值给栈内存中的p(对象)变量 二 对象调用成员 1,对象在堆内存 2,类变量在栈内存 3,方法和静态数据在数据区 过程: 类变量调用数据区的方法时,将堆内存地址赋给类变量,即this指针. 版权声明:欢迎交

DevExpress的Web控件汉化方法

原文:DevExpress的Web控件汉化方法 项目中用到devexpress的web控件,机器没有安装devexpress控件,直接在项目中引用的dev的dll,项目运行时发现都是英文界面,所以解决汉化问题. 项目中用的是v10.2版本,以此版本为例,其他版本方法应该类似. 步骤如下:   1.从官网下载对应的汉化包,地址:http://www.devexpresscn.com/news/DevExpress-news-94.html,找到对应的版本下载. 2.在下载的汉化文件里找到\Web\

MyEclipse的破解和汉化方法

一.安装和破解 我的MyEclipse是从官网下的正版软件,在其他地方下载的版本同理. 官方下载地址(需翻墙): http://www.myeclipseide.com/module-htmlpages-display-pid-4.html 来自河源下载站的下载地址: http://www.cngr.cn/dir/217/360/2012061984872.html 首先,下载一个MyEclipse,如果是在官网下载的话,在三个版本里面挑一个就行.我用的是第一个.    a.标准版/专业版本:S

Axure7.0汉化方法

下载汉化包 AxureRP7CN_汉化包.rar 首先退出正在运行中的 Axure (如果您正在使用). 将 汉化包.rar 文件解压, 得到 lang 文件夹,  然后将其复制到 Axure 安装目录.然后重新打开Axure,就OK Axure7.0汉化方法,布布扣,bubuko.com

[转]''\\=DevExpress 中 汉化包 汉化方法

[DevExpress]DevExpress 中 汉化包 汉化方法 2016-02-17 21:13 1781人阅读 评论(0) 收藏 举报  分类: DevExpress(24)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一步: 在Debug 下添加 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中添加以下代码 : System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Glob

三、面向对象——9-初始化块

9-初始化块 1.初始化块的使用 2.初始化块和构造器 3.静态初始化块

二值化方法:Minimum Error Thresholding

Kittler二值化方法,是一种经典的基于直方图的二值化方法.由Kittler在1986年在论文“Minimum Error Thresholding”提出. 参考了ImageShop提供的C#版本(http://www.cnblogs.com/Imageshop/p/3307308.html),做了简单修改得到了C++版本的,代码如下: /*灰度图像的二值化方法*/ class CxThreshold { public: static int CalcKittlerMinError(int*