JavaFX的变量,数据类型,运算符.doc_第1页
JavaFX的变量,数据类型,运算符.doc_第2页
JavaFX的变量,数据类型,运算符.doc_第3页
JavaFX的变量,数据类型,运算符.doc_第4页
JavaFX的变量,数据类型,运算符.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、JavaFX的变量1.定义变量在JavaFx中需要通过var关键字来定义变量(如同JavaScript一样),变量的类型是可以省略的,省略的话变量的类型通过实际赋值的类型来推断。变量定义格式为:var 变量名:变量类型 = 变量值;例如:var i:Integer = 12;var i1 = 11;var name:String = hello;var name1 = hello;2.标识符标识符的规范和Java一样,下划线或者字母开头,由下划线、字母、数字组成。JavaFx还接受另外一种规范,包含在之间的,任意字符串,包括空格,可以作为JavaFx中的标识符。这样可以把JavaFx的关键字或者其他保留字,当作普通标识符来使用。例如:var = 100;var = hi;的语法还有另外一种用意。在Java和JavaFx之间有些关键字和保留字不尽相同,有了这个语法就能克服了。例如:有些在Java代码里面的方法名称在JavaFx里面恰好是关键字。var textArea = new JTextArea();textArea.(Hello, 0); JavaFX的变量类型有三种,分别是脚本变量,实例变量和局部变量。3.脚本变量(类似于Java中的全局变量,也就是public static 修饰的变量)脚本变量是在类定义或块定义之外定义的变量,脚本变量可作用于整个应用。var thing = Thing;class A function getThing() : String thing 如果定义脚本变量时没有使用访问修饰符,那么它仅能作用于一个脚本文件。如果使用了访问修饰符那么它可以如脚本成员那样被其他部分访问。访问修饰符包括: public, protected, package, public-read和public-init. 例如下面是一个文件名为Foo.fx的脚本文件:public def bohr = 0.529177e-10Noof.fx脚本文件也可以访问bohr变量:println(Foo.bohr)。脚本变量的生存期为整个应用运行时间.4.实例变量(类似于Java中的属性)实例变量是在类定义中声明的成员变量. 在类中可直接通过变量名来访问. 在类外则通过对象成员的方式来访问。例如:def anA = A rat: true ;println(anA.rat);class A var rat : Boolean; function isIt() rat class B function wellisIt() anA.rat 访问修饰符用来控制实例变量的可见性. 如果没有使用访问修饰符,实例变量只能作用于一个脚本文件。实例变量的生存期为它所在的对象实例的生存期.5. 局部变量(同Java完全相同)局部变量定义在块语句中, 或者在方法中. 局部变量作用于一个块范围. 局部变量不可以应用访问修饰符.局部变量的生存期为一个块执行时间。不同于脚本和实例变量, 局部变量定义是一个表达式,具有类型和返回值. 有该局部变量的类型和返回值决定.形式参数, 迭代变量和其他表达式参数。方法形式参数作用于该方法. For循环迭代变量作用于该for循环体. 表达式参数作用于该表达式.这些变量都不可以被赋值。二、JavaFX的数据类型每一个JavaFX的变量, 方法和表达式都具有一个类型, 通常情况下由程序上下文来决定. 变量可以被显式地制定一个特定类型; 方法也可以显式地指定参数和返回值的类型.类型标识由类型标识符和基数构成.1. 类型标识符类型标识符通常都是类名或者方法名. 下面是一些类型标识符举例:MyClassjava.util.MapDurationjavafx.animation.TimelineInteger方法名通常包括参数名和返回值类型 - 如果没有方法名将不特定于任何方法实现. 下面是一个方法类型的例子:function(:Number):Booleanfunction(:Integer,:Integer):SplotchedBallfunction():Integer所有的类型标识符都是java.lang.Object的子类.2. JavaFx基本数据类型对应于Java中的数据类型JavaFx JavaString java.lang.StringBoolean java.lang.BooleanNumber java.lang.NumberIntegerbyte,short,int,long,BigIntegerDuration 无前面四种类型已经为Java程序员所熟识,并经常使用的了,比较简单,这里着重解释一下JavaFx所独有的Duration类型。Duration,即javafx.lang.Duration,用来表示一个时间段(单位可以为毫秒,秒,分,小时),主要用于JavaFx里面动画的实现。我们来看一下Duration的例子:5ms; /5 毫秒10s; /10 秒30m; /30 分1h; /1 小时运行一下下面的代码,把以上几个Duration值输出看一下结果:System.out.println(5ms);System.out.println(10s);System.out.println(30m);System.out.println(1h);3. 基数基数表示该变量声明可以包含多少个元素. 有如下三种。可选(0个或1个)可选表示可以有也可以没有实际元素. 总的来说包括所有自定义对象和大部分其他对象. 例如:var x : Foo;表示x变量可以持有一个Foo变量或是一个空引用null.必须(1个)必须表示变量必须持有一个元素, 包括如下内建对象String, Integer, Number, Boolean和Duration. 例如:var k : Integer;表示变量k持有一个Integer.这种情况下空引用是不被允许的. 否则的话会被自动替换为默认值.序列(0个到多个)序列表示变量可以持有0个到多个元素. 这需要显示说明基数为序列. 例如:var seq : Integer;表示seq变量可以持有多个Integer元素.4.默认值每个JavaFX数据类型都具有一个默认值. 对于基数是可选的类型默认值是null. 例如:var x : Foo; println(x);这会在控制台输出一个null.对于序列来讲默认值就是空序列. 例如:var seq : Integer;println(sizeof seq);这会在控制台输出一个0值.对于基数是必须的类型来讲都会有一个确定的默认值.var k : Integer; println(k);这会在控制台输出一个0值, 因为Integer的默认值是0值.三、运算符运算符是一些特殊的符号,用来对一个或两个操作数执行特定的运算,然后返回一个结果。JavaFX编程语言提供赋值运算符、算术运算符、一元运算符、相等和关系运算符、条件运算符和类型比较运算符。1. 赋值运算符赋值运算符 = 是您将遇到的最常用的运算符。使用该运算符可以将其右侧的值赋给其左侧的操作数:result = num1 + num2;days = Mon,Tue,Wed,Thu,Fri;2. 算术运算符使用算术运算符可以执行加、减、乘和除运算。mod 运算符用一个操作数除以另一个操作数并将余数作为结果返回。+ (加运算符)- (减运算符)* (乘运算符)/ (除运算符)mod (求余运算符)以下脚本提供了一些示例:var result = 1 + 2; / result is now 3println(result);result = result - 1; / result is now 2println(result);result = result * 2; / result is now 4println(result);result = result / 2; / result is now 2println(result);result = result + 8; / result is now 10println(result);result = result mod 7; / result is now 3println(result); 还可以结合使用算术运算符与赋值运算符来创建复合赋值。例如,result += 1; 和 result = result+1; 都会将 result 的值加 1。var result = 0;result += 1;println(result); / result is now 1result -= 1;println(result); / result is now 0result = 2;result *= 5; / result is now 10println(result);result /= 2; / result is now 5println(result); 唯一不能按照此方式使用的算术运算符是 mod。例如,如果您希望将 result 除以 2,然后将余数重新赋给其自身,则需要编写:result = result mod 2;3. 一元运算符大多数运算符都需要两个操作数,而一元运算符仅使用一个操作数来执行诸如按一递增/递减某个值、对某个数字求反或对布尔值求反之类的操作。- 一元减运算符;对某个数字求反+ 递增运算符;按 1 递增某个值- 递减运算符;按 1 递减某个值not 逻辑求补运算符;对布尔值求反 以下脚本用于测试一元运算符:var result = 1; / result is now 1result-; / result is now 0println(result);result+; / result is now 1println(result);result = -result; / result is now -1println(result);var success = false;println(success); / falseprintln(not success); / true递增/递减运算符可以在操作数之前(前缀)或之后(后缀)应用。代码 result+; 和 +result; 都将导致 result 的值加 1。二者之间的唯一区别就是前缀版本 (+result) 得到的是递增后的值,而后缀版本 (result+) 得到的是原始值。(您可以通过以下方法来记忆:+result 先执行递增再获得值,而 result+ 先获得值再执行递增。)如果您只是执行简单的递增/递减,则选择哪个版本都一样。但是,如果您将该运算符作为较大表达式的一部分进行使用,则选择不同的版本会对结果产生很大的影响。4. 关系运算符相等和关系运算符确定一个操作数是大于、小于、等于还是不等于另一个操作数。=等于!=不等于大于=大于或等于小于 num2); / prints falseprintln(num1 = num2); / prints falseprintln(num1 num2); / prints trueprintln(num1 = num2); / prints true5. 条件运算符条件与 (and) 和条件或 (or) 运算符用于对两个布尔表达式执行条件运算。这些运算符会表现出“短路”行为,也就是说,仅在必要时才计算第二个操作数:例如,对于 and 运算,如果第一个表达式的结果为 false,将不计算第二个表达式。对于 or 运算,如果第一个表达式的结果为 true,将不计算第二个表达式。andor 以下脚本定义了 username 和 password 变量,然后输出各个条件的匹配项,从而说明了这些运算符的用法:def username = foo;def password = bar;if (username = foo) and (password = bar) println(Test 1: username AND password are correct);if (username = ) and (password = bar) println(Test 2: username AND password is correct);if (username = foo) or (password = bar) println(Test 3: username OR password is correct);if (us

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论