自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (2)
  • 收藏
  • 关注

原创 代理模式

对扩展开放,对修改封闭代理delegation是一种定义对象之间关系的设计模式,如果一个对象的行为由另一个对象定义或者协助完成,那后者就是前者的代理被代理者将操作委托给其代理代理模式解耦了被代理类和代理类代理模式的实现 //Window.h@protocol WindowDrawDelegate<NSObject>-(void)draw;@end//Window.h@interfa

2017-03-05 16:48:49 186

原创 协议 protocol

协议: 一系列不属于任何类的方法列表,在其中声明的方法可以被任何类实现(类似于c++的抽象类,即接口)可以完成抽象类的功能,完成不同类的信息交换协议声明和实现协议的名字必须唯一,协议只需声明,并在遵守协议的类中进行实现@protocol 协议名@optional//可以实现也可以不实现的方法@required//默认//必须实现的方法@endl---------------------

2017-03-05 12:53:47 274

原创 分类Category

如何修个一个无法得到源码的类的方法? 如何把类的方法分组? 如何把类的实现分散到多个源文件?分类的定义#import"原类名.h"@interface 原类名(分类名)//声明方法(不能有实例变量)@end#import"原类名+分类名.h"@implementation 原类名(分类名)//声明方法(不能有实例变量)@end分类和继承的对比:分类只能有属性和方法,不能增加实例变量

2017-03-05 12:02:10 189

原创 动态多态

多态:相同接口,不同实现 相同接口:方法的签名、参数、返回值相同 不同实现:具体实现的内容不同动态多态包括:动态类型识别动态绑定动态加载动态类型识别@interface A:NSObject-(void)draw;@end@interface B:A-(void)draw;@end@interface C:B-(void)draw;@end@interface D:NSO

2017-03-04 12:08:21 446

原创 内存管理

三种内存管理机制:引用计数、ARC(自动引用技术)、垃圾回收(在iphong和ipad中不能用)每个对象有一个或多个所有者,所有权表示对其指向的对象的引用计数>=1当使用alloc new copy mutableCopy 创建对象时,拥有对象所有权 计数+1retain +1 retain count 为引用计数当使用完之后需要放弃所有权 release,语句中一定要包括

2017-03-01 21:37:30 137

原创 self super

self相当于this,它的值可改变, 当一个方法调用同类中的另一个方法时,self不可省略super和self指向相同的receiver,但super是要到父类方法列表找对应方法, 只是编译器指示符,不能赋值,而self可以赋值(例如对象的初始化)//复数相加complex.h-(Complex*)add:(Complex*)a{ Complex* c = [[Complex al

2017-03-01 21:29:50 158

原创 存取器方法、属性声明

setter getter 方法-(void)setWidth:(double)aWidth;-(double) width;-(void)setHeight:(double)aHeight;-(double) height;//[rectangle setWidth:10];//NSLog(@“%g”,[rectangle width];rectangle.width = 10;N

2017-03-01 21:25:39 422

原创 oc中类的声明、定义

类的声明和定义#import<Foundation/Foundation.h>XYZPerson.h@interface Person:NSObject//数据成员NSString *name;//属性声明@property NSString *firstName;@property (readonly)NSString *lastName;@property NSNumber *ye

2017-03-01 21:14:03 255

原创 oc语言的特点以及对象初始化

oc语言特点没有命名空间namespace不支持多重继承(可以使用协议实现多继承)不支持运算符重载、不支持内联函数、没有const和static同一个类里方法不能同名,但类方法和实例方法名字可以一样对象不掉用方法,而是相互传递信息(message passing)[receiver message](recever一定是对象(对象指针)message就是方法的名字和方法所需实参)oc都是

2017-03-01 21:01:59 327

原创 类的继承

继承在OC中没有多继承,只有多重继承;只有public继承(不同于c++)所有类型都有公共基类NSObject通过继承可以:继承父类增加本类实例变量和方法(子类不能和父类同名)覆盖父类的方法方法的覆盖与c++的不同点在于:在使用覆盖时,不需要在头文件声明,只需要直接实现oc都在堆区分配内存,而执行操作目标都是指针指向的对象,而不是指针本身覆盖NSObject基类NSObject

2017-03-01 15:55:43 209

原创 继承派生,多态

继承与派生   Software reusability1.能通过对象直接访问的只有public成员2.私有成员只能为自己所用(必须通过父类的公有函数间接调用)                                                 (保护成员可以通过子类函数调用)      public                   protected    

2017-02-28 15:28:16 236

原创 运算符重载,数据与对象如何转换

运算符重载 operator成员重载第一个参数this指针,友元重载第一个参数不是this指针3运算符重载函数中必须有一个类对象参数,所以一般单目的重载为友元,双目的为成员数据间的转换 (int)89.5------------------------------------------------------------------------------

2017-02-28 15:03:21 215

原创 静态成员,友元,模板

静态成员同类的多个成员实现数据共享(全局变量破坏封装性,但静态成员要注意作用域)●静态数据成员1.只能在类体外初始化,通过类名引用(而不是对象)2.在类外可以用对象引用公共静态数据成员,也可用类名引用静态数据成员3.私有静态数据成员必须通过公共成员函数引用(公共成员函数可以引用静态和非静态数据成员)●静态成员函数1.可被对象或者类调用(一般用类Box::)2.静态成

2017-02-19 12:07:42 357

原创 指针与对象指针

指针指针变量:存放地址的变量。一般变量存放的是数据本身,而指针变量存放的是数据的地址。结构体指针:类似于对象指针(结构体与类的区别:若不指定public和private,结构体默认为公共,类默认为私有)对象指针:对象存储空间的起始地址1.指向对象的指针:定义一个指针变量,用来存放对象的地址。class Time{…}Time *p;//定义p为指向Time类对象

2017-02-14 11:33:25 982

原创 构造函数

无参构造函数对类的对象进行初始化(对数据成员赋初始值)是一个好的习惯,用构造函数来实现。使具体对象有确定内容。Time{public:Time()//声明无参构造函数Time:Time(){a=0; b=0; c=0;}// 定义构造函数       Time t1;t1.settime()1.实例化类对象时自动调用构造函数,建立一个对象,就执行且执行一次;2.

2017-02-14 11:25:04 270

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除