黑马程序员--构造方法重写和desception方法重写
2015-01-23 18:17
281 查看
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
构造方法的作用及用法
我们新建一个学生类,但是学生的学号是自动生成的,所以声明icast这个成员变量中我们加了一个readonly,不允许外部设置他的属性
内容包含了构造方法的重写和description的重写,重写的方法的方式和目的
// 学生的声明文件
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property (nonatomic,strong) NSString *name;
@property (nonatomic,strong,readonly) NSString *icast; // 只读
@property (nonatomic,assign) int age;
@end
// 学生的实现文件
#import "Student.h"
@implementation Student
- (Student *)init
{
if(self =[super init])
{
static unsigned long icast = 1101080600;
icast++; // 自动给学号加1
// 初始化同时分配学号
_icast = [NSString stringWithFormat:@"%lu",icast];
}
/*
若把这两句写在if外,会出现有的学号没有对应的学生
static unsigned long icast = 1101080600;
icast++;
*/
return self;
}
// 重写description
- (NSString *)description
{
return [NSString stringWithFormat:@"name : %@, age : %i , icast : %@",_name, _age, _icast];
}
@end
// test文件
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Student *stu = [[Student alloc] init];
stu.name = @"Jack";
stu.age = 20;
NSLog(@"%@",stu);
Student *stu1 = [[Student alloc] init];
NSLog(@"%@",stu1);
}
return 0;
}
构造方法:用来初始化对象的方法,是个对象方法,-开头
1.重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
2.重写构造方法的注意点
1>.先调用父类的构造方法([super init])
2>.再进行子类内部成员变量的初始化
3.完整地创建一个可用的对象
1>.分配存储空间 +alloc
调用+alloc分配存储空间
Student *stu1 = [Student alloc];
2>.初始化 -init
调用-init进行初始化
Student *st2 = [Student init];
这种写法会导致死循环
- (NSString *)description
{
return [NSString stringWithFormat:@“%@“,self];
}
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
构造方法的作用及用法
我们新建一个学生类,但是学生的学号是自动生成的,所以声明icast这个成员变量中我们加了一个readonly,不允许外部设置他的属性
内容包含了构造方法的重写和description的重写,重写的方法的方式和目的
// 学生的声明文件
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property (nonatomic,strong) NSString *name;
@property (nonatomic,strong,readonly) NSString *icast; // 只读
@property (nonatomic,assign) int age;
@end
// 学生的实现文件
#import "Student.h"
@implementation Student
- (Student *)init
{
if(self =[super init])
{
static unsigned long icast = 1101080600;
icast++; // 自动给学号加1
// 初始化同时分配学号
_icast = [NSString stringWithFormat:@"%lu",icast];
}
/*
若把这两句写在if外,会出现有的学号没有对应的学生
static unsigned long icast = 1101080600;
icast++;
*/
return self;
}
// 重写description
- (NSString *)description
{
return [NSString stringWithFormat:@"name : %@, age : %i , icast : %@",_name, _age, _icast];
}
@end
// test文件
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Student *stu = [[Student alloc] init];
stu.name = @"Jack";
stu.age = 20;
NSLog(@"%@",stu);
Student *stu1 = [[Student alloc] init];
NSLog(@"%@",stu1);
}
return 0;
}
构造方法:用来初始化对象的方法,是个对象方法,-开头
1.重写构造方法的目的:为了让对象创建出来,成员变量就会有一些固定的值
2.重写构造方法的注意点
1>.先调用父类的构造方法([super init])
2>.再进行子类内部成员变量的初始化
3.完整地创建一个可用的对象
1>.分配存储空间 +alloc
调用+alloc分配存储空间
Student *stu1 = [Student alloc];
2>.初始化 -init
调用-init进行初始化
Student *st2 = [Student init];
这种写法会导致死循环
- (NSString *)description
{
return [NSString stringWithFormat:@“%@“,self];
}
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
相关文章推荐
- 黑马程序员——自学笔记4(方法的重写和重载以及修饰符权限)
- 黑马程序员 集合里的对象所属类要按需求重写equals方法
- 黑马程序员_BufferdReader 的原理及重写这个方法的主要功能包括带行号的输出
- 【黑马程序员】-我的OC学习笔记(3)-存取器方法和构造方法重写
- ——黑马程序员——OC中构造和重写构造方法
- 黑马程序员 Class(类),Override(重写),Virtual(虚方法)
- java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- 【黑马程序员】重写构造方法实现两种功能
- 黑马程序员 - OC语言 - 重写构造方法
- 黑马程序员--03.面向对象--03.子类父类方法重写和覆盖的理解【个人总结】
- 黑马程序员——Java中的方法重写与方法重载的区别
- [黑马程序员]集合_ArrayList练习时为何要重写equals方法
- 黑马程序员——OC语言基础---description方法介绍及重写
- 黑马程序员-OC-自定义构造方法和description方法
- 黑马程序员之C#学习笔记: c#中重写(覆盖)和隐藏类的方法
- 子类中方法与父类中形成重写关系,可以在构造方法中用super来调用父类中的该方法
- 黑马程序员——构造方法之init的重写和自定义构造方法
- (七)黑马程序员——oc基础之继承与重写构造方法
- 黑马程序员--OC--重写构造方法