分享
 
 
 

java关键字详解(abstract.double.int.switch)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

语法图解

语法图解使用了下列规则:

从左到右、从上到下、顺着行的路径读语法图解。

在语法图解中使用了下列符号:

>>- 指示了一个语句的开始

-> 指示该语句在下一行继续

>- 指示该语句从前一行继续

->< 指示该语句的终止

句法单元而不是完整语句的图以 |- 开始并以 -|结束。

要求的项在主要路径上。

>>-required-item---------------------><

可选的项在主要路径下。

>>-required-item--+----------------+-----><

'-optional-item--'

选择项目在一个堆栈中。如果它们被要求,它们是在主路径上;如果它们是可选的,它们是在主路径下。

>>-required-item--+-required-choice1-+--+------------------+--><

'-required-choice2-' +-optional-choice1-+

'-optional-choice2-'

一个选择的缺省项是在该主路径的上面。

.-default-optional-choice-.

>>-required-item--+-------------------------+--><

+-optional-choice1--------+

'-optional-choice2--------'

重复项有一个返回到该主行左上面的箭头。

关键字是小写的。每一个必须象显示的那样被拼写。

变量是大小写混合的(例如 InterfaceTypeList)。每个代表一个用户提供的名称或值。

包括的标点符号是该语法语句的部分。

abstract关键字

类语法

>>-+--------+-abstract-class-Identifier-+-------------------+->

'-public-' '-extends-ClassType-'

>-+------------------------------+-ClassBody-><

'-implements-InterfaceTypeList-'

方法语法

>>-+-----------+-abstract-ResultType-Identifier->

+-public----+

'-protected-'

>-(-+---------------------+-)-;-><

'-FormalParameterList-'

描述

abstract 关键字被用来创建抽象类和方法。抽象类不能被实例化,它们的用途是向子类提供通用的信息。抽象类可以包含正常的类包含的任何东西,也就是说,类和实例变量,以及带有任何修饰词的方法和构造子。只有抽象类可能有抽象方法。如果一个不是抽象的类包含一个抽象方法,那么,将会出现编译错误。如果下列的一个成立,那么一个有抽象方法:

它显式地声明了一个 abstract 方法。

它从它的直接父类继承了一个抽象方法。

一个直接的类的父接口声明或继承了它的一个方法(这因此必须是 abstract )以及该类既没有声明也没有继承一个实现的方法。

如果用户声明 private,static,和 final 方法为 abstract,编译错误将出现。不可能重设一个private方法,因此一个 abstract private 方法将永远不会被实现。 Static 方法总是可用的,因此必须有一个实现; static abstract 方法将永远没有实现。 final 方法不能被重设,因此不会有 final abstract 方法的实现。

一个抽象类可以通过提供另一个抽象方法声明来覆盖一个抽象方法。这可以提供一个放置文档注释的地方或来声明一个可以抛出的更加限制的被检查异常集合。

示例

在以下示例中,抽象类 MyAbstractClass 有一个通常方法和一个抽象方法。该具体类 MyConcreteClass 继承自 MyAbstractClass 并且提供了 abstractMethod 的一个实现。

public abstract class MyAbstractClass {

public void regularMethod() {

abstractMethod();

}

protected abstract void abstractMethod();

}

public class MyConcreteClass extends MyAbstractClass {

protected void abstractMethod() {

// does something interesting

}

}

下列代码片段显示 MyAbstractClass 和 MyConcreteClass 类的合法和非法使用。

// 非法。编译错误。

MyAbstractClass abstractClass = new MyAbstractClass();

// 合法。

MyConcreteClass concreteClass = new MyConcreteClass();

// 非法。受保护方法。

concreteClass.abstractMethod();

// 合法。一般方法。

concreteClass.regularMethod();

double 关键字描述

该 double 数值类型表示一个双精度型 64 位 IEEE 754 浮点数。一个 double 实例变量、类变量和数组元素的缺省值是零,也就是说,0.0。double 的值是从 4.9e-324 到 1.7976931348623157e308。

一个浮点数值文字被假定为是类型 double; 可选的,用户可以用一个 ASCII 字符 D 或 d 作它们的后缀。

示例

用户可以声明一个 double 值,并且在声明它是给它一个初始值:

double exampleDouble = 5.0;

另外的 double 字面量的例子包括:

1e1

2.

.3

0.0

3.14

1e-9d

1e137

int 关键字描述

该 int 数值类型代表了一个 32-bit 带正负号的二进制补码整数。一个 int 实体变量、类变量和数组元素的缺省值是零,也就是说,0。 int 的值是闭区间 -2147483648 到 2147483647 的整数。

示例

用户可以声明一个 int 值,并且在声明它是给它一个初始值:

int exampleInt = 1000; //name of the variable is exampleInt and its value is 1000

switch语法

v-------------------------------------------'

>>-switch-(-Expression-)-{-+-case-ConstantExpression-:-BlockStatements-+->

>-+---------------------------+-}-><

'-default-:-BlockStatements-'

描述

该 switch 语句使用户将一个变量与不同的测试值相比较。它根据一个表达式的值在一个循环中将控制传送到几个语句中的一个。如果该测试值与任何一个 case 值相等,那么相应的结果发生并且

break 语句引起 switch 语句的执行结束。 Expression 的类型必须是 byte、short 、int 或 long,否则将出现一个编译错误。

一个 switch 语句体必须是一个块。任何被该块立即包含的语句可能被用一个或多个 case 或 default 标签所标记。

当 switch 语句被执行,首先该 Expression 被求值。如果Expression 的求值因为某种原因突然完成, switch 语句会因为同样的原因突然完成。否则,执行将通过将 Expression 的值与每个 case 常量比较而继续。 这以后,基于下列规则,做出判定: 如果 case 常量的之一等于 Expression 的值,那么我们说该 case 匹配,并且所有在 switch 块中匹配的 case 标签后的语句,如果有的话,被顺序执行。如果所有这些语句正常完成,或者如果在该匹配的 case 标签后没有语句,那么整个 switch 语句正常完成。 如果没有 case 匹配,有一个 default 标签,那么所有在该 switch 块中匹配的 default 标签后的语句,如果有的话,被顺序执行。 如果所有这些语句正常完成,或者如果在该 default 标签后没有语句,那么整个 switch 语句正常完成。 如果没有 case 匹配并且没有 default 标签,那么没有进一步的动作发生并且该 switch 语句正常完成。 所有下列必须是正确的否则将出现编译错误: 与switch语句相关的每个case常量表达式必须是可赋予 switch 的 Expression 的类型的。 不能有两个与switch语句相关的case常量表达式具有相同的值。 至多只有一个 default 标签可与同一个 switch 语句相关联。 示例

在下面的例子中,我们使用一个 for 循环来在 switch 语句中迭代四次,用零到三的值来测试它。

for (int test = 0; test <= 3; test++) {

switch (test){

case 1:

System.out.println("Good");

break;

case 2:

System.out.println("Very Good");

break;

default:

System.out.println( "Boring" );

break;

}

}

上面代码产生下列输出:

Boring

Good

Very Good

Boring

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有