当前位置:文档之家› 如何判断一个类是否支持某属性和方法以及如何判断IOS的版本

如何判断一个类是否支持某属性和方法以及如何判断IOS的版本

如何判断一个类是否支持某属性和方法以及如何判断IOS的版本
如何判断一个类是否支持某属性和方法以及如何判断IOS的版本

如何判断一个类是否支持某属性和方法以及如何判断IOS

的版本

对象在运行时获取其类型的能力称为内省。内省可以有多种方法实现。

判断对象类型

-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例

-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例

我们试试这两个方法的使用。

1、新建Person类继承NSObject,新建Teacher类继承Person

1.1、新建Person类

#import <Foundation/Foundation.h> @interface Person : NSObject { NSString *name; }

-(void)setName:(NSString*)n; @end #import "Person.h" @implementation Person

-(void)setName:(NSString *)n { name = n; }

@end 1.2新建Teacher类

#import "Person.h" @interface Teacher : Person

-(void)teach; @end #import "Teacher.h"

@implementation Teacher -(void)teach

{ NSLog(@"我教数学"); } @end 1.3 我们先实验下isMemberOfClass方法。

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *person = [[Person alloc] init];

Teacher *teacher = [[Teacher alloc] init]; //YES if ([teacher isMemberOfClass:[Teacher class]])

{ NSLog(@"teacher Teacher类的成员"); } //NO if ([teacher isMemberOfClass:[Person class]]) { NSLog(@"teacher Person类的成员"); }

//NO if ([teacher isMemberOfClass:[NSObject class]]) { NSLog(@"teacher NSObject类的成员"); } [person release]; [teacher release]; [pool release]; 打印结果:

2012-07-04 14:23:07.965 ObjectiveCTest[2460:f803] teacher Teacher类的成员

只有第一个判断打印出来,isMemberOfClass判断是否是属于这类的实例,是否跟父类有关系他不管。

1.4 isMemberOfClass方法

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *person = [[Person alloc] init]; Teacher

*teacher = [[Teacher alloc] init]; //YES if ([teacher isKindOfClass:[Teacher class]]) { NSLog(@"teacher 是Teacher类或Teacher的子类"); } //YES if ([teacher isKindOfClass:[Person class]])

{ NSLog(@"teacher 是Person类或Person的子类"); } //YES if ([teacher isKindOfClass:[NSObject

class]]) { NSLog(@"teacher 是NSObject类或NSObject的子类"); } [person release]; [teacher release]; [pool release]; 2012-07-04 14:34:17.315 ObjectiveCTest[2595:f803] teacher 是Teacher类或Teacher的子类

2012-07-04 14:34:17.316 ObjectiveCTest[2595:f803] teacher 是Person类或Person的子类

2012-07-04 14:34:17.316 ObjectiveCTest[2595:f803] teacher 是NSObject类或NSObject的子类

三个结果都打印出来了。

2、

-(BOOL) respondsToSelector: selector

判读实例是否有这样方法

+(BOOL) instancesRespondToSelector: 判断类是否有这个方法。此方法是类方法,不能用在类的对象

2.1 respondsToSelector的使用

这里不写对象的创建和释放了,参考上面的代码

// YES if ( [teacher respondsToSelector:

@selector( setName: )] == YES )

{ NSLog(@"teacher responds to setSize: method" ); } // NO if ( [teacher respondsToSelector: @selector( abcde )] == YES ) { NSLog(@"teacher responds to nonExistant method" ); } // YES if

( [Teacher respondsToSelector: @selector( alloc )] == YES ) { NSLog(@"teacher class responds to alloc method\n" ); }

打印结果:2012-07-04 14:39:49.853

ObjectiveCTest[2723:f803] teacher responds to setSize: method

2012-07-04 14:39:49.854 ObjectiveCTest[2723:f803] teacher class responds to alloc method

中间的那个判断我随便写了个selector,当然没有了。respondsToSelector 检查类方法alloc返回YES

2.2 instancesRespondToSelector

// NO if ( [Person instancesRespondToSelector:

@selector(teach)] == YES ) { NSLog(@"Person instance responds to teach method" ); }

// YES if ( [Teacher instancesRespondToSelector: @selector(teach)] == YES )

{ NSLog(@"Teacher instance responds to teach method"); } // YES if ( [Teacher instancesRespondToSelector: @selector(setName:)] == YES ) { NSLog(@"Teacher instance responds to setName: method" ); }

打印结果:

2012-07-04 14:52:29.378 ObjectiveCTest[2961:f803] Teacher instance responds to teach method 2012-07-04 14:52:29.379 ObjectiveCTest[2961:f803] Teacher instance responds to setName: method 3、Objective-C的id类型

C++ 使用的是强类型:对象必须符合其类型,否则不能通过编译。在Objective-C 中,id类型类似于(void*) ,可以指向任何类的实例。而不需要强制转换。下面看看使用,

先把Teacher类中的teach方法修改一下,改成-(void)teach

{

NSLog(@"%@ 教数学" ,name);

}

然后实现并调用

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Person *person = [[Person alloc] init]; Teacher

*teacher = [[Teacher alloc] init]; id p = person; id t = teacher; [t setName:@"张三老师"]; [t teach];

[person release]; [teacher release]; [pool release];

打印结果:

2012-07-04 14:57:55.905 ObjectiveCTest[3085:f803] 张三老师教数学

原文地址:

https://www.doczj.com/doc/e614004426.html,/Linux/2012-07/64453.htm

iOS SVProgressHUD组件的使用

1、首先是导入SVProgressHUD组件 使用cocoapods导入:在控制台输入cd空格—-->然后把工程拖进—>按回车键—>pod init —>pod search SVProgressHUD—>把要使用的版本粘贴到工程中的podfile中的(#号行的下边就可以# platform :ios, '9.0'之下,直接用也可以pod 'SVProgressHUD', '~> 2.0.3') —>pod install --verbose --no-repo-update 2、具体在工程中的使用 (1)简单的等待提示 开始:[SVProgressHUD show]; 结束:[SVProgressHUD dismiss]; 提示内容:[SVProgressHUDshowWithStatus:@"登录中"]; (2)其他多样的应用 显示 HUD 您可以使用下面的方法中的任意一个来显示HUD,以及指示任务的状态: + (void)show; + (void)showWithStatus:(NSString*)string;

如果您想在HUD指示任务的进度,请使用下列操作之一: + (void)showProgress:(CGFloat)progress; + (void)showProgress:(CGFloat)progress status:(NSString*)status; 隐藏 HUD HUD可以用以下方法隐藏: + (void)dismiss; + (void)dismissWithDelay:(NSTimeInterval)delay; 如果你想显示多个HUD,可以使用使用一下方法: + (void)popActivity; 该HUD将自动消失, popActivity将与显示的次数匹配。 显示一个提示消息 也可以用于显示一个提示信息。所述显示时间取决于给定的字符串的长度( 0.5至5秒)。+ (void)showInfoWithStatus:(NSString *)string; + (void)showSuccessWithStatus:(NSString*)string;

datastage常用组件使用方法:

常用组件使用方法: 1. Sequential file 功能特点:适用于一般顺序文件(定长或不定长),可识别文本文件或IBM大机ebcdic文件。 使用要点: 按照命名规范命名 点住文件,双击鼠标,在general说明此文件内容,格式,存储目录等。 2. Annotation 功能特点: 一般用于注释,可利用其背景颜色在job中分颜色区别不同功能块 3. Change Capture Stage 功能特点: Change Capture Stage有两个输入,分别标记为before link 及after link。输出的数据表示before link 和after link的区别,我们称作change set。Change Capture Stage可以和Change Apply Stage配合使用来计算after set。 使用要点: key及value的说明:key值是比较的关键值,value是当key值相同是作进一步比较用的。 change mode选项说明: All keys,Explicit Values 需要指定value,其余字段为key Explicit Keys&Values key及value都需要指定

Explicit Keys,All Values 需要指定key,其余的字段为value 输出策略说明: Drop Output For Copy False:保留before及afte link中key值相同的行 True:删除before及afte link中key值相同的行 Drop Output For Delete False:保留before link中有但是after link中没有的key值所在的行 True:删除before link中有但是afte link中没有的key值所在的行 Drop Output For Edit False:保留key值相同,value不同的行 True:删除key值相同,value不同的行 Drop Output For Insert False:保留before link中没有但afte link中有的key值所在的行 True:删除before link中没有但afte link中有的key值所在的行 4. Copy Stage 功能说明: Copy Stage可以有一个输入,多个输出。他可以在输出时改变字段的顺序,但是不能改变字段类型。 注意: 当只有一个输入及一个输出时最好将Force设置为True,这样可以在Designer里看到运行结束,否

根属性的正确概念和攻击方法

根属性的正确概念和攻击方法 (本文节选自《论证与辩论》第十三章-C,校译:吴家麟) 反方通常使用两类根属性论证:1. 现状下没有内在的障碍(inherent barrier)阻止优势的获取;2. 现状下没有内在的缺口(inherent gap)阻碍了优势的获取。记住,一旦正方的根属性非常强,那他们的解决力就有可能很弱,因为没有计划可以克服根属性。强制认可权(Fiat)可以假定立法通过(implementation),但无法保证政策可行(workability)。此外,正方使用用强制认可权来克服民众态度上的偏见,或打乱既有的政治结构,可能会导致潜在的劣势点。最后,如果正方没有很清晰地指出为什么计划没有实施,或问题产生的根源,那么他们很可能错过使得需求的弊害继续存在的真正原因。 1. 现状障碍的根属 反方试图证明,没有正当理由采纳辩题的政策,因为正方声称的优势无需通过其计划就能取得。在辩论「限制能源供应和消费」时,有些正方提出的计划是,政府强制所有发电厂使用煤炭作为唯一发电的燃料,并通过MDH方法(流体动力学过程)来发电。他们论证说,这种使用廉价而又充足的煤炭来发电的方法比现状下的发电方法要高效得多。他们宣称现状下石油作为主要燃料来发电,而石油作为一种重要资源经常面临短缺;在实行了他们的计划之后,石油就可以用到不可用煤炭来替代的其他工业上,因此这是他们政策的一个优

势。有些反方针对这类辩案就会指出,既然MDH这么好,正方并未论证为什么现状之下电力行业还没有出于自身的利益考量采用MDH方法来发电。在使用了条件式论证(conditional argument)时,反方主张由于煤炭即充足又便宜,因此倘若MDH确实更高效,那么显然用这种方法发电的企业就会获得更高的利润,大家马上都会采用这种方法,因此正方的政策计划也就失去了立法的正当性(justification)。 正方面对这种论证很难回应,除非他们找到证据证明MHD方法的启动成本高昂,因为MHD的设备非常昂贵,这是现状下为什么发电企业没有采用这一方法发电的根属障碍(inherent barrier)。成本太高导致企业要花费数年才能从这项变革中获得利润。因此,他们论证说,要获得MHD方法的好处就必须采纳辩题所提出的政策,由联邦政府强制要求发电企业采取这一方法。 2. 现状缺口的根属 在辩论「大众媒体规制」时,有些正方主张电视暴力有害并指出现状下法律存在的缺口允许了许多暴力节目的出现在电视上。反方针对这一论证指出,法律缺口与弊害缺乏关联性,因为有其他现状可以控制暴力。他们论证说电视网和电视台会对公众压力负责,并且提出了许多「由于公众反对而被电视台停播的节目」的案例来证明这一点。假设正方的需求是正当的,反方主张公众压力足以使得电视网和电视台自行调整其节目。许多反方进一步通过小幅修正现状的

实验1-3:CLI的使用与IOS基本命令

实验 1:CLI 的使用与 IOS 基本命令 ------以路由器为例 1. 实验目的 通过本实验可以掌握如下技能: (1)熟悉路由器 CLI 的各种模式 (2)熟悉路由器 CLI 各种编辑命令 (3)掌握路由器的 IOS 基本命令 (4)查看路由器的有关信息 2. 实验拓扑 图 2-5 实验 1 拓扑图 3. 实验步骤 (1)步骤 1:用户模式和特权模式的切换 Router> Router>enable Router# Router#disable Router> //“Router”是路由器的名字,而“>”代表是在用户模式。“enable”命令可以使路由器从 用户模式进入到特权模式,“disable”命令则相反,在特权模式下的提示符为“#”。(2)步骤2:“?”和【Tab】键的使用,以配置路由器时钟为例 Router>enable Router#clok Translating "clok"...domain server (255.255.255.255)

(255.255.255.255) Translating "clok"...domain server (255.255.255.255) % Unknown command or computer name, or unable to find computer address //以上表明输入了错误的命令 Router#cl? clear clock //路由器列出了当前模式下可以使用的以“cl”开头的所有命令 Router#clock % Incomplete command. //路由器提示命令输入不完整, Router#clock ? set Set the time and date //要注意的是“?”和“clock”之间要有空格,否则得到将不同的结果,如果不加空格路由 器以为你是想列出以“clock”字母开头的命令,而不是想列出“clock”命令的子命令或参 数。 Router#clock set ? hh:mm:ss Current Time Router#clock set 11:36:00 % Incomplete command. Router#clock set 11:36:00 ? <1-31> Day of the month MONTH Month of the year Router#clock set 11:36:00 12 ? MONTH Month of the year //以上多次使用“?”帮助命令,获得了“clock”命令的格式 Router#clock set 11:36:00 12 08 ^ % Invalid input detected at '^' marker.

ios各组件的使用方法

iOS各组件的使用方法 1. //设置黑体的label _name = [UILabel labelWithFrame: CGRectMake(0, _badge.bottom + 28, self.width, 19) boldFontSize: 18 fontColor: [UIColor whiteColor] text: nil]; _name.textAlignment = NSTextAlignmentCenter; [self addSubview: _name]; 2.//设置系统字体的label _requirem = [UILabel labelWithFrame: CGRectMake(0, _name.bottom + 35, viewWidth(), 35) fontSize: 12 fontColor: RGBCOLOR_HEX(color_black_99) text: nil]; [self addSubview: _requirement]; 3.//设置其他字体的label _titleLabel = [UILabel labelWithFrame:CGRectMake(25, 0, 80, 25) fontSize:14 fontColor:RGBCOLOR_HEX(color_black_1E) fontName:FONT_NORMAL text:@""]; _titleLabel.textAlignment = NSTextAlignmentCenter; [self addSubview:_titleLabel]; 4.// 一段文字有的字体大有的字体小 _courseLabel =[[NIAttributedLabel alloc] initWithFrame:CGRectMake(12,15,viewWidth()-24, 50)]; _courseLabel.font = [UIFont systemFontOfSize:15.0]; _courseLabel.textColor = RGBCOLOR_HEX(0x333333); _courseLabel.numberOfLines = 2; [self addSubview:_courseLabel]; 5.//实例化UIVIew、 UIView *whiteBg = [UIView viewWithFrame:CGRectMake(SNLeftEdge(self.width, 235), 10, 235, 44) andBkColor:[UIColor whiteColor]]; https://www.doczj.com/doc/e614004426.html,yer.cornerRadius = whiteBg.height / 2.0; https://www.doczj.com/doc/e614004426.html,yer.masksToBounds = YES; [self addSubview: whiteBg];

练习05Java类属性方法定义练习题

第4讲Java类,属性和方法定义[] 选择题 1. 问:下列哪些是合法的类定义语句 A.private class A {} B.public class A () C.class A extends Exception, IOException {} D.public class 1A extends Object {} E:public class String {} F:以上都不是 答: 2. 问:下列哪些不是合法的类定义 A:protected class Object {} B:public class Object extends Object {} C:public class Object extends https://www.doczj.com/doc/e614004426.html,ng.Object {} D:class $$$$$$ {} E:class Final {} F:以上都是合法的类定义 G:以上都不是合法的类定义 答: 3.下列定义哪个合法: A:public class UserString implements String {} B:public class final UserDao extends Object {} C:public class UserBusiness { private abstract void addUser(String userId, int age); } D:public class abstract EmployeeInfo implements Object {} E:package com.neusoft.oa.dao; public class Object {} F:以上定义都不是。 答: 4.类的访问控制符有: A:public B:friend C:private D:protected E:以上都不是 答:

ios入门(一般)

《iOS(一般)》试卷 得分 一、单选题(每题2分,共计30分) 1.缩放图片经常使用的手势是()() A、UITapGestureRecognizer,点按手势 B、UIPinchGestureRecognizer,捏合手势 C、UIRotationGestureRecognizer,旋转手势 D、UISwipeGestureRecognizer,轻扫手势 2.如果要进入编辑模式,需要调用()方法实现。() A、setEditing:animated B、tableView:editingStyleForRowAtIndexPath: C、tableView:commmitEditingStyle:forRowAtIndexPath: D、tableView:canMoveRowAtIndexPath: 3.下列选项中,不能够接收并处理事件的是()() A、UIApplication B、UIViewController C、UIView D、NSObject 4.下列选项中,用于设置当前显示的是哪一页的是() A、currentPage B、pageIndicatorTintColor C、numberOfPages D、currentPageIndicatorTintColor 5.下列选项中,用于表示文本字符串的字段类型是()() A、REAL B、INTEGER C、BLOB D、TEXT 6.下列方法中,用于为表视图添加索引的是()() A、tableView:editingStyleForRowAtIndexPath: B、sectionIndexTitlesForTableView C、tableView:commmitEditingStyle:forRowAtIndexPath: D、tableView:moveRowAtIndexPath:toIndexPath: 7.下列选项中,哪个属性可以设置视图的位置和尺寸()() A、bounds B、center C、transform D、tag 8.如果数据库不再使用,可通过()函数来关闭。() 总分题号一二三四五题分 得分

java定义类、属性、方法和构造器

java定义类、属性、方法和构造器 Java是面向对象的程序设计语言,Java语言提供了定义类、定义属性、方法等最基本的功能。类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象,对象由类负责创建。类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在,Java程序使用类的构造器来创建该类的对象。 Java也支持面向对象的三大特征:封装、继承和多态,Java提供了private、protected和public三个访问控制修饰符来实现良好的封装,提供了extends关键字来让子类继承父类,子类继承父类将可以继承到父类的属性和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。继承是实现类复用的重要手段,除此之外,也可通过组合关系来实现这种复用,从某种程度上来看,继承和组合具有相同的功能。使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性,编程更加灵活,而利用组合关系来实现复用的时候,则不具备这种灵活性。 构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。除此之外,Java还提供了一种静态初始化块,静态初始化块用于初始化类,在类初始化阶段被执行。如果继承树里的某一个类需要被初始化时,系统将会同时初始化这棵继承树里的所有类。 类和对象 Java是面向对象的程序设计语言,类是面向对象的重要内容,我们可以把类当成一种自定义数据类型,可以使用类来定义变量,这种类型的变量统称为引用型变量。也就是说,所有类是引用数据类型。 定义类 面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体,从这个意义上来看,我们日常所说的人,其实应该是人的对象,而不是人类。 Java语言是面向对象的程序设计语言,类和对象是面向对象的核心。Java语言提供了对创建类和创建对象简单的语法支持。 Java语言里定义类的简单语法如下: [修饰符]class类名 { 零个到多个构造器定义.. 零个到多个属性… 零个到多个方法… }

类、属性、方法的格式

案例: 定义一个“富婆类”,属性name 、money。行为一(无参数无返回):跑步喝水;行为二(无参数有返回值):收快递;行为三(有参数有返回):买烟smoke;行为四(有参数无返回):施舍money 施舍apple。 定义富婆类: Public class 富婆类{ //定义属性 String name; int money; /*方法类型一:无参数无返回。 格式: public void 方法名(){ //方法体 }*/ Public void 跑步(){ System.out.println(name+”在跑步”); } /*方法类型二:无参数有返回。 格式: Public 返回值类型方法名(){ //方法体 return 值;//return值类型必须和返回值类型相同 } public String 收快递(){ String str=”德玛西亚皮肤”; return str; //打印对象的信息:方法名和返回值不能改 /*每一类都有一个打印对象的信息的方法返回值类型一定是String ,方法名一定是toString,不能修改。*/ public String toString(){ return “自我介绍”+name+money; } /*方法类型三:有参数有返回。 格式: public 返回值类型方法名(参数1,参数2,参数3,……){//参数可以有多个,中间用,隔开。 //方法体 return值 }

public String 买烟(int money){ String smoke; if(money>=25){ smoke = "芙蓉王"; }else{ smoke = "相思鸟"; } return smoke; } /*方法类型四:有参数无返回。 格式: public 返回值类型方法名(参数1,参数2,参数3,……){ //方法体} } public String 施舍(Sring apple,int mone){ System.out.println(name+”施舍给别人”+apple+”和”+money+”元钱”); } } 测试类: public class Test1{ public static void main(String[] args){ 富婆类fp=new 富婆类(); https://www.doczj.com/doc/e614004426.html,=”芙蓉姐姐”; fp.money=100*100*100; //输出类的所有属性的属性值:自我介绍 //方法一: //System.out.println("自我介绍"+https://www.doczj.com/doc/e614004426.html,+"\t"+fb.money); //方法二:toString方法(必须配合使用自定义类中的public String toString()System.out.println(fb.toString());【也可以这样写:System.out.println(fp );//词句话会自动调用toString()方法】。 //(方法类型一的调用)调用无参数无返回值的方法 fp.喝水(); //(方法类型二的调用)调用无参数有返回值的方法☆必须接受返回值才能输出返回的东西 /*String s = fb.收快递(); System.out.println(s); 输出数据等价于下面一句话:*/ System.out.println(fp.收快递());//配合自定义类中的return使用

NGUI基本控件的使用教程与实例

NGUI基本控件的使用教程与实例 NGUI教程:步骤1-Scene 1.创建一个新的场景(New Scene)。 2.选择并删除场景里的MainCamera。 3.在NGUI菜单下选择Create a New UI,会打开UI创建向导。 4.在创建向导中你能更改UI的基本参数。现在我们选Default layer,点击Create Your UI 按钮。 5.就这样,你的UI便创建好了。

注意:如果在一个已存在NGUI的项目中你要跳过第二步,并且你要选择一个不同的UI层,你还要确保非GUI相机不渲染UI层。 在做具体UI控件之前,我们看看UI向导为我们做了什么。 1.在UI Root (2D)对象上有个UIRoot脚本。这个脚本会重新调整游戏对象符合你的屏幕高度,有自动和手动选择高度。让你制定小部件在像素中的坐标,并且和游戏世界中的剩余对象相比依旧相对来说较小。 2.Camera对象包含Camera和UICamera脚本。UICamera脚本包含NGUI的事件系统(event system)。 3.Anchor包含UIAnchor脚本。虽然这个脚本可以附加给控件,但在这里可以避免Windows机器上半个像素偏移的问题。 4.Panel对象有UIPanel脚本,UIPanel是一个容器,它将包含所有UI 小部件,并负责将所包含的部件组合优化,以减少绘制命令的调用。

同时,你可能还注意Panel(仪表板)GameObject现在已经被选中了。也就是说下面添加的所有部件都将在作为它的子对象。 对应的场景在插件中的Tutorial 1 - Scene中有: NGUI教程:步骤2-Spirit 现在让我们添加一些控件,在NGUI菜单中选择NGUI menu -> Create a Widget。

类、对象、方法、变量、属性定义

类、对象、变量、方法及属性 (2007-05-22 00:15:34) 转载▼ 类:类是组成java程序的基本要素。类封装了一类对象的属性和方法。类是用来定义产生对象的模板。类的实现包括两部分:类声明和类体。 类体分为两部分:成员变量和局部变量。 1、成员变量和局部变更的类型可以是java中的任何一种数据类型.变量定义部分所定义的变更被称为类的成员变量,在方法体中定义的变量和方法的参数被称为局部变量。 2、成员变量在整个类内都有效,局部变量只在定义它的方法内有效。 3、成员变量又分为实例成员变量(实例变量)和类变量(静态变量)。、 4、如果局部变量的名字和成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。 5、如果局部变量的名字和成员变量的名字相同,则成员变量被隐藏。这时如果想在该方法内使用成员变量,必须使用关键字this. 方法:一个类的类体由两部分组成:变量的定义和方法的定义。方法定义包括两部分:方法声明和方法体。例如:一个汽车的加速、减速、转弯、制动这些都是 该对象的方法。 方法重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者参数个数不同,或者参数的类型不同。 构造方法:是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也可以重载。 类方法和实例方法 成员变量可分实例变量和类变量。类中的方法也分为实例方法和类方法。 1、对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部变量进行操作。 2、实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作。 3、一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类中的类方法只能调用该类的方法,不能调用实例方法。 对象:类是创建对象的模板。当使用一个类创建了一个对象时,也就是说给出了这个类的一个实例。“对象”其实我们并不陌生,天天都在和我们打交道,我们写字用的笔,骑的“宝马”等,太多了,世界万物,一切皆时对象! 属性:就是一个对象自用拥有的特性。例如:一辆汽车的颜色、重量、轮子数目、运行速度等这些都是该对象自身的属性。 好了,了解了概念还不行。还得自己再动手多写写代码。要学习java编程就必须学会怎样去编写类,怎么用java的语法去描述一类事物共有的属性和功能。属性通过变量来刻画,功能通过方法来体现,即方法操纵属性形成一定的算法来实现一个具体的功能。类把数据和对数据操作封装成一个整体。

类、字段、方法、属性之间的定义及部分区别

类、字段、方法、属性之间的定义及部分区别 1、在c#中。类是主要的类型。类声明定义新的引用类型。一个类可以从另一个类继承。并且可以实现接口。类成员可以包括常数、字段、方法、属性、事件、索引器、运算符、实例构造函数、析构函数、静态构造函数和嵌套类型声明。每个成员都有关联的可访问性。它控制能够访问该成员的程序文本区域。有五种可能的可访问形式。 (1)public。不限制访问。 (2)protected。尽在同一个类内。或该类的派生类中访问。 (3)Internal。仅从同一个项目内访问。 (4)protected internal。访问限于同一个项目或派生类。 (5)Private。访问限于本类。 2、字段。是表示与对象或类关联的变量的成员。例子如下—— class Color { internal ushort redPart; internal ushort bluePart; internal ushort greenPart; public Color(ushort red,ushort blue,ushort green) { redPart=red; bluePart=blue; greenPart=green; } .... } 此例显示了一个Color类,该类具有名为redPart、bluePart、greenPart的内部实例字段。 3、方法。方法是实现可以由对象或类执行的计算或操作的成员。方法有一个形参表(可能为空)、一个返回值(若返回值类型为void则没有)。并且方法可以是静态的或是非静态的。通过类访问静态方法。通过类的实例访问实例方法。 下面代码定义了一个Stack类。该类具有若干静态方法(Clone和Flip)和若干实例方法(Push、Pop和ToString)。 public class Stack { public static Stack Clone(Stack s) {...} public static Stack Flip(Stack s) {...} public object Pop() {...} public void Push(object o) {..} public override string ToString() {...} ... } class Test

Array 类的重要属性及常用方法

Array 类的重要属性及常用方法 属性名含义 length: uint 指定数组中元素数量的非负整数。 方法名功能 Array(numElements:int = 0) 允许创建指定元素数量的数组。 Array(... values) 允许创建包含指定元素的数组。 push(... args):uint 将一个或多个元素添加到数组的结尾,并 返回该数组的新长度。改变原数组。unshift(... args):uint 将一个或多个元素添加到数组的开头,并 返回该数组的新长度。改变原数组。indexOf(查找元素,起始位置):int 在数组中从起始位置查找指定元素,返回 该元素的的索引位置。 sortOn(依据字段,排序方式):Array 根据数组中的一个或多个字段对数组中 的元素进行排序。改变原数组。 slice(起始位置,结束位置+1):Array 返回由原始数组中某一范围的元素构成 的新数组,而不改变原始数组。 splice(起始位置,删除元素个数, 给数组添加元素以及从数组中删除元素,所添加的新元素列表):Array 得到新的数组。原数组也发生改变。reverse():Array 逆转数组。改变原数组。 concat(... args):Array 将参数中指定的多个元素或数组与本数 组连接,创建新的数组。不改变原数组排序方式常量意义

CASEINSENSITIVE : uint = 1 指定Array 类排序方法为不区分大小写 的排序。 DESCENDING : uint = 2 指定Array 类排序方法为降序排序。NUMERIC : uint = 16 指定Array 类排序方法为数值(而不是 字符串)排序。RETURNINDEXEDARRAY 8 指定排序返回的数组包含数组索引UNIQUESORT 4 指定Array 类排序方法的唯一排序要 求。

Tapestry各组件使用

Tapestry各组件的使用 说明:只是说明一些需要注意的东西,更多的学习参考Tapestry官方文档 1、For source:是对应的java类里的List 对象或者是个数组需要抽象或者提供set get方法value:是循环这个source对象代表当前的一个,需要在page文件中设置问一个属性,可以不在对应的java类里有这个属性 index:是循环的索引值同value一样在page文件中设置一个属性即可 在循环的时候会自动为vlaue和index赋当前的值 2、Foreach 和For一样使用 3、Hidden组件总是多余S的处理 4、Insert 组件 e.g. 页面表现时,将会到页面类中寻找getUser().getName()方法获取初值并输出 相当于在页面上显示数据. 5、TextField 组件 e.g. 页面表现时,将会到页面类中寻找getUsername()方法获取初值 *如果是修改信息页面,通常初始值要在页面表现之前由setUsername()手动设置从数据库中读取出来的值 表单提交时,通过setUsername()写入新值(即用户输入值),在类中通过getUsername()获取新值 相当于在修改个人信息时,首先读出用户名赋予文本框(用户名)初值,用户修改时填入新值,后台获取之 *Hidden属性区分是普通文本输入框(默认false)和密码输入框(hidden="ognl:true") readonly属性设置只读readonly="t rue"为只读(后台可读取) *disabled属性设置是否可写diabled="true"为不可写(后台也不可读取) 6、TextArea 组件 e.g. 页面表现时,将会到页面类中寻找getContent()方法获取初值 工作原理同TextField 7、RadioGroup/Radio 组件 e.g.

SerialPort类的常用属性及方法

一、SerialPort类的常用属性 名称说明 BaseStream 获取SerialPort 对象的基础Stream 对象BaudRate 获取或设置串行波特率 BreakState 获取或设置中断信号状态 BytesToRead 获取接收缓冲区中数据的字节数 BytesToWrite 获取发送缓冲区中数据的字节数 CDHolding 获取端口的载波检测行的状态 CtsHolding 获取“可以发送”行的状态 DataBits 获取或设置每个字节的标准数据位长度 DiscardNull 获取或设置一个值,该值指示Null 字节在端口和接收缓冲区之间传输时是否被忽略 DsrHolding 获取数据设置就绪(DSR) 信号的状态 DtrEnable 获取或设置一个值,该值在串行通信过程中启用数据终端就绪(DTR) 信号 Encoding 获取或设置传输前后文本转换的字节编码

Handshake 获取或设置串行端口数据传输的握手协议 IsOpen 获取一个值,该值指示SerialPort 对象的打开或关闭状态NewLine 获取或设置用于解释ReadLine( )和WriteLine( )方法调用结束的值Parity 获取或设置奇偶校验检查协议 名称说明 ParityReplace 获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的无效字节 PortName 获取或设置通信端口,包括但不限于所有可用的COM 端口ReadBufferSize 获取或设置SerialPort 输入缓冲区的大小 ReadTimeout 获取或设置读取操作未完成时发生超时之前的毫秒数 ReceivedBytesThreshold 获取或设置DataReceived 事件发生前内部输入缓冲区中的字节 数 RtsEnable 获取或设置一个值,该值指示在串行通信中是否启用请求发送(RTS) 信号 StopBits 获取或设置每个字节的标准停止位数

苹果iOS操作系统整体架构层次讲解

苹果iOS操作系统整体架构层次讲解 iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。 1.Core OS层-----包含核心部分、文件系统、网络基础、安全特性、能量管理和一些设备驱动,还有一些系统级别的API。

2.Core Services层----提供核心服务,例如字符串处理函数、集合管理、网络管理、URL处理工具、联系人维护、偏好设置等。 3.Media层----该层框架和服务依赖Core Services层,向Cocoa Touch层提供画图和多媒体服务,如声音、图片、视频等。 4.Cocoa Touch层----该框架基于iPhone OS应用层直接调用层,如触摸事件、照相机管理等,包该层含UIKit框架和Foundation框架。

其实iOS是基于UNIX的,所以我们完全可以相信这个操作系统,要知道从系统的稳定性上来说它要比其他操作系统的产品好很多。 位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。核心操作系统层包括以下这些组件:OS X Kernel Mach 3.0 BSD Sockets Power Mgmt File System Keychain Certificates Security Bonjour 第二层是核心服务层,我们可以通过它来访问iOS的一些服务。它包括以下这些组件: Collections Address Book Networking

Touchable系列组件使用详解

Touchable系列组件使用详解 在做App开发过程中离不了的需要用户交互,说到交互,我们首先会想到的就是按钮了,在React Native中没有专门的按钮组件。 为了能让视图能够响应用的的点击事件,我们需要借助Touchablexxx组件,来包裹我们的视图。为什么说是Touchablexxx呢,因为它不只是一个组件,而是一组组件,一下四个组件都可以用来包裹视图来响应用户的点击事件。 TouchableWithoutFeedback:响应用户的点击事件,如果你想在处理点击事件的同时不显示任何视觉反馈,使用它是个不错的选择。 TouchableHighlight:在TouchableWithoutFeedback的基础上添加了当按下时背景会变暗的效果。 TouchableOpacity:相比TouchableHighlight在按下去会使背景变暗的效果,TouchableOpacity会在用户手指按下时降低按钮的透明度,而不会改变背景的颜色。TouchableNativeFeedback:在Android上还可以使用TouchableNativeFeedback,它会在用户手指按下时形成类似水波纹的视觉效果。注意,此组件只支持Android。 心得:以上四个组件,其中TouchableHighlight、TouchableOpacity以及TouchableNativeFeedback都是在TouchableWithoutFeedback的基础上做了一些扩展,我们从它们的源码中可以看出:TouchableHighlight: var TouchableHighlight = React.createClass({ propTypes: { ...TouchableWithoutFeedback.propTypes, TouchableOpacity: var TouchableOpacity = React.createClass({ mixins: [TimerMixin, Touchable.Mixin, NativeMethodsMixin], propTypes: { ...TouchableWithoutFeedback.propTypes, TouchableNativeFeedback: var TouchableNativeFeedback = React.createClass({ propTypes: { ...TouchableWithoutFeedback.propTypes, 因为TouchableWithoutFeedback有其它三个组件的共同属性,所以我们先来学习一下TouchableWithoutFeedback。 TouchableWithoutFeedback使用详解 TouchableWithoutFeedback一个Touchable系列组件中最基本的一个组价,只响应用户的点击事件不会做任何UI上的改变,在使用的过程中需要特别留意。 提示:无论是TouchableWithoutFeedback还是其他三种Touchable组件,都是在根节点都是只支持一个组件,如果你需要多个组件同时相应单击事件,可以用一个View将它们包裹着,它的这种根节点只支持一个组件的特性和ScrollView很类似。 接下来让我们来看一下,TouchableWithoutFeedback有哪些常用的属性: TouchableWithoutFeedback常用的属性 说到常用的属性TouchableWithoutFeedback首先要提到的就是onPress了。 onPress function 当触摸操作结束时调用,但如果被取消了则不调用(譬如响应者被一个滚动操作取代)。

IOS应用开发-设计说明书(个人总结)

《IOS应用开发》设计说明书 班级 学生姓名 学号

2015年1月8日 一、IOS应用开发概述 (一)IOS简介 iOS 操作系统是iPhone、iPod touch 以及iPad 设备的核心。IOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。 iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为IOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。 ios的优势:软件与硬件整合度高、界面美观、易操作、安全性强、应用数量多、品质高等;ios的缺点审美疲劳、过度依赖iTunes、不支持9宫格输入,只有全键盘和手写两种模式等。 (二)Xcode Xcode是一个集成开发环境,它负责管理应用程序工程。您可以通过它来编辑、编译、运行以及调试代码。Xcode还集成了许多其他工具,它是开发过程中使用到的主要应用程序。Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS 的应用程序。其运行于苹果公司的Mac操作系统下。 不管你用C、C++、Objective-C或Java编写程序,在AppleScript里编写脚本,还是试图从另一个奇妙的工具中转移编码,你会发现 Xcode 编译速度极快。每次操作都很快速和轻松。苹果公司为用户提供了全套免费的Cocoa程序开发工具(Xcode)。Mac OS X 一起发行,在苹果公司官方的网站下载。 (三)Objective-C Objective-C,通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。 Objective-C是非常实际的语言。它是一个用C写成、很小的运行库,只会令应用程序的尺寸增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。Objective-C写成的程序通常不会比其原始码大很多。 (四)概念区分 Mac OS X是应用于手机端开发的;ios是用于手机移动端开发的。 OC是Object-C的简称,是一种开发语言;Xcode是开发环境。 OOPL(Object Oriented Programming Language),面向对象的编程语言。 UI是using interface(UIview),是用户界面,UC是using controllers(View Controller)

相关主题
文本预览
相关文档 最新文档