- 浏览: 794116 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (417)
- ASP.NET MVC (18)
- WEB基础 (24)
- 数据库 (69)
- iPhone (20)
- JQuery (3)
- Android (21)
- UML (8)
- C# (32)
- 移动技术 (19)
- 条码/RFID (6)
- MAC (8)
- VSS/SVN (6)
- 开卷有益 (4)
- 应用软件 (1)
- 软件工程 (1)
- java/Eclipse/tomcat (61)
- 英语学习 (2)
- 综合 (16)
- SharePoint (7)
- linux (42)
- Solaris/Unix (38)
- weblogic (12)
- c/c++ (42)
- 云 (1)
- sqlite (1)
- FTp (2)
- 项目管理 (2)
- webservice (1)
- apache (4)
- javascript (3)
- Spring/Struts/Mybatis/Hibernate (4)
- 航空业务 (1)
- 测试 (6)
- BPM (1)
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
转自:http://www.cnblogs.com/chenjunbiao/archive/2011/05/03/2034998.html 在Objective-C中是没有静态类变量一说的,不过我们可以模拟出来,但如果类对象之间还有继承关系,这样就一点复杂的了。我们这里假设一个Coupon类对象需要保存当前还剩多少有优惠券,还有一个继承于Coupon类对象的NewCoupon类对象,但它也保存有自已可用的优惠券的数量,我们如何保证他们的静态类变量相互独立,请看下面的例子。 Coupon.h Coupon.m NewCoupon.h NewCoupon.m main.m 返回结果: 模拟静态变量及静态类继承
@interface Coupon : NSObject {
}
+(int) numberCouponsLeft;
+(void) resetCoupon;
@end
#define INITIAL_COUPON_ALLOCATION 100
//设置静态变量
static int availableCoupons = INITIAL_COUPON_ALLOCATION;
//在实现类中定义私有静态访问器
@interface Coupon()
+(int) availableCoupons;
+(void) setAvailableCoupons:(int) inAvailableCoupons;
@end
@implementation Coupon
+(int) availableCoupons
{
return availableCoupons;
}
+(void)setAvailableCoupons:(int)inAvailableCoupons
{
availableCoupons = inAvailableCoupons;
}
//为了支持静态类的继承,重点看init
-(id) init
{
if((self = [super init]))
{
//[self class] 表示用作接收者的那个对象,如果是继承类,指的是该继承类对象。
if([[self class] availableCoupons] == 0)
{
//如果有效的Coupon为0,则消毁该类对象
[self release];
return nil;
}
//当前有效的Coupon减1
[[self class] setAvailableCoupons: [[self class] availableCoupons]-1];
}
return self;
}
+(int) numberCouponsLeft
{
return [self availableCoupons];
}
+(void) resetCoupon
{
[self setAvailableCoupons:INITIAL_COUPON_ALLOCATION];
}
@end
#import "Coupon.h"
@interface NewCoupon : Coupon {
}
@end
#define INITIAL_New_COUPON_ALLOCATION 200
//在继承类中设置新的静态变量
static int availableCoupons = INITIAL_New_COUPON_ALLOCATION;
@interface NewCoupon()
+(int)availableCoupons;
+(void) setAvailableCoupons: (int)inAvailableCoupons;
@end
@implementation NewCoupon
+(int)availableCoupons
{
return availableCoupons;
}
+(void) setAvailableCoupons:(int)inAvailableCoupons
{
availableCoupons = inAvailableCoupons;
}
+(void) resetCoupon
{
[self setAvailableCoupons:INITIAL_New_COUPON_ALLOCATION];
}
@end
#import "Coupon.h"
#import "NewCoupon.h"
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// insert code here...
//NSLog(@"Hello, World!");
[[Coupon alloc] init];
NSLog(@"%d", [Coupon numberCouponsLeft]);
[Coupon resetCoupon];
NSLog(@"%d", [Coupon numberCouponsLeft]);
[[NewCoupon alloc] init];
NSLog(@"%d", [NewCoupon numberCouponsLeft]);
[NewCoupon resetCoupon];
NSLog(@"%d", [NewCoupon numberCouponsLeft]);
[pool drain];
return 0;
}
2011-05-03 10:15:08.505 demo04[3200:903] 99
2011-05-03 10:15:08.508 demo04[3200:903] 100
2011-05-03 10:15:08.508 demo04[3200:903] 199
2011-05-03 10:15:08.509 demo04[3200:903] 200
发表评论
-
ios随笔4
2012-06-13 09:44 0<!-- [if gte mso 9]><x ... -
donghua
2012-03-15 13:11 1177iPhone开发中动画效果实现分类代码是本文要介绍的内容,但是 ... -
UIView
2012-02-22 11:54 906iPhone开发应用之UIView开 ... -
iso随笔3
2012-02-13 15:11 087修改UIAlertView背景 UIAlertVie ... -
ios随笔2
2011-12-31 15:35 045 判断是否是 26 个英文 zimu ... -
Lvalue required as left operand of assignment error
2011-12-31 09:25 3427Hello I get the "Lvalue re ... -
NSString常用方法(转)
2011-12-28 09:16 963http://www.cnblogs.com/phonlin/ ... -
ios随笔2
2011-12-27 14:21 045判断是否是26个英文zimu NSString* ... -
ios随笔2
2011-12-27 14:21 045判断是否是26个英文zimu NSString* ... -
tmp
2011-12-16 10:06 1320http://cache.baidu.com/c?m=9d78 ... -
todo
2011-12-12 13:30 0http://bbs.51cto.com/thread-845 ... -
iphone客户端解压gzip
2011-12-11 09:04 1711-(NSData *)uncompressZippedD ... -
HLS
2011-12-11 09:04 4425OS设备上要用原生的浏览器或者播放器来跑直播流媒体,确实是有点 ... -
Flash Media Server 4.5带来Flash末日?
2011-11-01 15:09 1498原文链接:Flash Media Se ... -
IOS开发之──应用之间调用(转)
2011-10-31 14:41 1850转自:http://blog.csdn.net/pjk1129 ... -
iPhone实战:操作SQLite(转)
2011-12-11 09:05 1964SQLite是一款轻量级的数据库,是遵守ACID的关联式数据库 ... -
内存管理
2011-12-11 09:05 897内存管理可以说是 iPhone 开发中最重要也最令人头疼的关键 ... -
连接 iPhone 的sqlite数据库的一段代码例子(转)
2011-10-26 10:39 1295原帖地址 http://www.cocoachina.com/ ... -
site
2011-10-21 17:52 994常用开发代码:http://www.cnblogs.com/K ... -
ios与android解析(转)
2011-10-17 10:45 958http://bbs.xiaomi.com/thread-34 ...
相关推荐
2. **多重继承**:虽然C#不支持类的多重继承,但它允许一个类实现多个接口,这里可能会展示如何利用接口模拟多重继承的效果。 3. **接口实现**:展示了如何定义接口并由类实现这些接口,以及如何在代码中调用接口...
静态变量被所有类的对象共享,而静态方法可以直接通过类名调用,无需创建对象。 - **final**:`final`关键字用于声明不可变的变量或方法。一旦变量被声明为`final`,其值就不能更改。对于方法,如果声明为`final`,...
例如,可以有一个`SpecialOffer`类继承自`Transaction`,以处理特别的促销活动。多态则使得不同类型的对象可以对同一种消息做出不同的响应,例如,所有类型的交易都可以被打印或计算总价。 5. **容器与迭代器**: ...
本文将深入探讨JavaScript中的继承实现方式以及公有、私有和静态方法的概念。 首先,我们要理解JavaScript中的对象和原型。JavaScript使用原型(prototype)机制来实现继承,这意味着一个对象可以访问其原型对象的...
- **线程**是程序中的执行单元,每个线程都有自己的程序计数器、系统栈、局部变量等资源,它们共享同一块内存区域,即堆内存和静态变量。多线程可以使得程序在同一时刻执行多个任务,提高系统的并发性。 - **Java...
- 抽象类的静态变量可以有任意访问修饰符,接口的静态变量只能是`public static final`。 7. **数据类型表示价格**:在Java中,对于价格这种需要精确计算的场景,通常推荐使用`BigDecimal`类,因为它可以避免...
静态变量属于类,只有一个副本,由类的所有对象共享。 - **生命周期**:实例变量随对象创建而存在,随对象消失而消失。静态变量随类加载而存在,随类卸载而消失。 - **内存位置**:实例变量存储在堆内存中,静态变量...
静态类是PHP中的一种特殊类,它们的成员变量和方法可以通过类名直接调用,而不需要创建类的实例。在PHP中,通常使用关键字`static`来声明静态属性和方法。使用静态类的场景包括但不限于创建工具类,这类工具类常用于...
4. **模拟静态成员和静态函数**:C++的静态成员是属于类的,而非类的实例。在C中,我们可以使用全局变量或外部函数来实现相同的功能: ```c int globalCount = 0; void incrementCount() { globalCount++; } ``` ...
1. **无法访问实例变量**:静态方法不能访问或修改类的实例变量,因为它们不与特定的对象实例关联。 2. **不利于封装**:由于静态方法与类关联,而非对象,它们可能会导致过度耦合,违反面向对象的封装原则。 3. *...
由于Java不支持多继承,但每个内部类都可以独立地继承一个类或实现一个接口,这使得我们可以同时模拟多个父类的功能。内部类的这一特性与接口结合使用,可以提供一种类似于C++中的多重继承机制。 在创建和使用内部...
9. **静态变量与静态块**:`bankName`和`allNum`是静态变量,意味着它们属于类而不是对象,所有用户共享同一份数据。`static`块在类加载时执行,用于打印欢迎信息。 这个ATM模拟系统展示了Java语言在构建面向对象...
1. 静态变量:静态变量是类级别的变量,它被所有类的实例共享。这意味着无论创建了多少个类的实例,它们都将共用同一份静态变量的副本。选项B正确描述了这一点,表示静态变量在方法中创建后,会在多次调用之间保留其...
接口中不能有实例变量,但可以有静态变量。 3. **访问修饰符**:接口的方法默认是公开的(`public`),而抽象类中的方法可以有不同的访问级别。 4. **构造函数**:抽象类可以有构造函数,而接口不能。 5. **实现...
本资源摘要信息涵盖了C++面向对象程序设计的多个方面,包括虚函数、继承、多态性、类模板、运算符重载、静态成员变量、 Copy构造函数等重要概念。 1. 虚函数(Virtual Function):虚函数是C++中的一种特殊函数,...
4. 集成测试:Junit可以与其他工具(如Mockito、PowerMock)结合,进行模拟对象和静态方法的测试,以及数据库和网络连接的集成测试。 5. 测试监听器:`TestWatcher`等监听器可以自定义测试执行过程中的行为,如记录...
此外,静态类的使用可以避免全局变量的污染,因为所有的静态成员都封装在一个闭包内。这有助于提升代码的可维护性和安全性,尤其是在大型项目中。 总结来说,JavaScript中的静态类是通过闭包和对象引用实现的,提供...
这篇C++模拟试题主要涵盖了C++语言的基础概念和核心特性,包括类、对象、构造函数、析构函数、成员函数、静态成员、友元函数、继承、多态、运算符重载、函数模板等关键知识点。以下是这些知识点的详细解释: 1. **...
在本文中,我们将深入探讨JavaScript中的一些关键面向对象的概念,包括`Object类`、`静态属性`、`闭包`、`私有属性`以及`call`和`apply`方法的使用,同时还会介绍三种实现继承的方法。 首先,`Object类`是...