Java语言基本要素第二章

2018-10-21 17:40

CDIO试验课程教学资料

Java程序设计语言

教师教学指导手册

第二单元:Java语言基本要素

学生姓名: 学 号: 专业班级:

一、课前作业

1、填空:

(1)一个控制台Java程序,由 组成。其中 中含有main方法,这个类称为 。Java程序从 开始执行,由此驱动 的调用。每个类文件可以包含 类的定义,但最多有一个类的访问属性是 。此类的类的类名必须与 类文件名前缀相同,所有类文件名后缀为 。每个类中可以包含有成员变量和成员方法。

(2)教材【例2-2】中类名是 ,其访问属性是 ,类文件名是 。其中定义了 和 两个成员方法,程序从 方法开始执行,由此方法调用 方法的执行。

(3)教材【例2-3】中有三个不同的类文件,文件名依次为 、 和 。每个文件中定义了一个访问属性为 类,类名依次为 、 和 。其中 程序的主类,由主类的 方法开始执行。MyFrame类是 的子类,这是一个 的系统类。MyPanel类是 的子类,这是一个 类。典型的GUI应用程序应用至少应有一个 类、一个 类和一个 类。

(4)Java语言规定,标识符由 、 组成,第一个字符必须是 ,其字符序列长度 ,但不允许与 相同。这里所说的字母、数字指的是 。Java语言采用的字符集是 ,它是一个 标准字符集。

(5)把Java语言的关键字填入下表: (6)每种数据类型在 、 与 方面都有各自的特征。Java语言的数据类型分为 和 两个类别,基本数据类型包括 种 类型、 种 类型、 和 。引用类型用于 。 (7)填写下列关于基本数据类型的表格:

类别 数据类型 二进制位数 取值范围 (8)Java语言的整型直接常量包括: ;浮点直接常量有 ;字符常量用 把 括起来表示;字符串类型的直接常量用 把 括起来表示,字符串的长度为 。布尔类型的直接常量有 和 两个。

(9)Java语言定义常量关键字是 ,为提高程序 性,有利于程序的 性,将直接常量尽可能地 是一种良好编程习惯,同时习惯表示常量标识符用大写字母,单词间用 分隔。

(10)Java语言是强类型语言,变量必须 ,可以通过定义的变量名对该变量所对应的 进行操作。基本数据类型的变量所分配的存储空间 这个变量的值,而引用类型的变量所分配的存储空间存放 的引用或null。

(11)Java语言把运算符分为 、 、 、 及其它运算符。将运算符的优先级和结合性填入下表:

运算符 优先级 结合性 (12)对表达式中的某运算符来说,参与运算的对象具有相同的类型则 进行运算,否则需要将它们 再进行计算。在数据类型转化过程中,有可能产生精度丢失,用实线箭头表示无精度丢失的据类型转化,虚线箭头表示有精度丢失的据类型转化,请在下图的数据类型之间画入实线箭头或虚线箭头,以正确地说明对应数据类型转化时是否有精度丢失。

char byte short int long float double (13)在Java语言中赋值运算的数据类型转化规则是:赋值号两侧类型相同则 ;如左侧为布尔型则 ;如果两侧类型相同且不是布尔型则 。

(14)在表达式中数据类型如果不符合(12)(13)的自动转化规则,则需进行 转化。 (15)在Java类库中提供了一个 类,放在 包下,其中定义了常量E(E= )和PI(PI= ),以及大量的常用数学函数,它们的访问控制属性都是 。 (16)有下列代码片段的:

……; Scanner in = new Scanner(System.in); String name = in.nextLine(); int d1 = in.nextInt(); double d2 = in.nextDouble(); …… 这段代码的功能是: 。完成如下关于Scanner类的方法的表格:

方法 (17)有下列Hello类:

public class Hello { } public static void main(String[] args) { } System.out.print(\); System.out.println(\); System.out.print(\); System.out.print(\); 描述 运行此程序的输出结果为:

(17)有下列Area类:

public class Area { public static void main(String[] args) { double a,b,c,q,s; a = 3; b = 4; public class Area { } public static void main(String[] args) { } double a,b,c,q,s; a = 3; b = 4; c = 6; q = (a + b + c) / 2; s = Math.sqrt(q * (q - a) * (q - b) * (q - c)); System.out.printf(\,a,b,c); System.out.printf(\,s);

运行此程序的输出结果为:

(16)在JDK5.0以后的版本中,Java语言提供了System.out.printf()标准输出方法,它的功能与C语言的printf()函数的功能是 的。

(17)和C语言一样,Java语言每个语句都以 结束,如果用“{”和“}”把几个语句括起来,则构成 。

(18)Java语言控制结构分为 、 和 三种结构。分支结构有 、 和 三种结构;循环结构有 、 和 三种结构。中断流程控制的语句有 、 和 三个,break可以应用于 语句中,功能是 ;continue应用于 语句中,功能是 ;return应用于成员方法中,用于结束方法的执行,返回执行方法的返回值。 2、名词: (1)控制台程序:

(2)GUI应用程序:

(3)面板类:

(4)标识符:

(5)行注释:

(6)块注释:

(7)文档注释:

(8)常量:

(9)变量:

(10)表达式:

二、边学边练

第1部分:程序基本结构 〖任务1〗:用Eclipse完成教材【例2-1】的程序。 〖任务2〗:完成教材【例2-2】的程序,分析运行结果,阅读教材相关内容。 〖任务3〗:完成教材【例2-3】的程序,分析运行结果,阅读教材相关内容。 第2部分:数据、运算与输入输出 〖任务4〗:完成教材【例2-4】的程序,分析运行结果,阅读教材相关内容。 〖任务5〗:完成教材【例2-5】的程序,分析运行结果,阅读教材相关内容。 〖任务6〗:完成教材【例2-6】的程序,分析运行结果,阅读教材相关内容。 〖任务7〗:完成教材【例2-7】的程序,分析运行结果,阅读教材相关内容。 第3部分:控制结构及综合运用 〖任务8〗:完成教材【例2-8】的程序,分析运行结果,阅读教材相关内容。 〖任务9〗:完成教材【例2-9】的程序,分析运行结果,阅读教材相关内容。 〖任务10〗:完成教材【例2-10】的程序,分析运行结果,阅读教材相关内容。 〖任务7〗:完成教材【例2-7】的程序,分析运行结果,阅读教材相关内容。

三、精讲精记

一、Java语言基本要素 1、程序设计语言基本要素

字符集、关键字与保留字、数据类型、常量与变量、运算符与表达式、语句与控制结构、注释方法、程序结构。 2、Java语言基本要素

(1)字符集:Java语言--Uncode字符集;C语言--ASCII字符集。 (2)标识符:

Java语言:字母、数字、下划线、$符,非数字开头 C 语 言:字母、数字、下划线、$符,非数字开头 (3)关键字与保留字:略。 (4)数据类型:

基本类型:Java语言—{byte、shout、char、int、long、float、double、boolean} C 语 言—{byte、shout、char、int、long、float、boolean} 构造类型:Java语言—{类class、数组array、枚举enum}

C 语 言—{结构体struct、共用体union、数组array、枚举enum、)。 其它类型:Java语言—{引用类型}

C 语 言—{指针类型)。

(5)常量与变量:

直接常量:

Java语言: 进 制:二进制 八进制 十进制 十六进制 前缀标记:0b或0B 0 非0数字 0x或0X

类 型:long float 后缀标记:l 或 L f或 F

C 语 言: 进 制:二进制 八进制 十进制 十六进制 前缀标记:0b或0B 0 非0数字 0x或0X

类 型:long float 后缀标记:l 或 L f或 F

符号常量:

Java语言:用final关键字定义常量 C 语 言:用#define和const定义常量 变量:(1)先定义后使用;(2)基本类型和引用类型;(3)变量与存储空间;(4)变量

的初始化

(6)运算符与表达式

运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符 算术运算符:+ - * / % ++ -- 关系运算符:> >= < <= == != 逻辑运算符:&& || !

位运算符:& | ~ ^ << >> >>>

赋值运算符:= += -= *= /= <<= >>= >>>= &= |= ^= 运算符优先级与结合性:详见教材表2-8

数据类型转化:参加某个运算符的运算的数据的数据类型必须相同,如不同则必须进行数据类型转化。数据类型转化转化分自动转化和强制转化。

自动转化顺序:

基本类型转化顺序:

char byte short int long float 引用类型转化顺序:上转型

double

强制转化顺序:

基本类型转化顺序:与自动相反 引用类型转化顺序:下转型

(7)语句与控制结构

语句以分号结束,只有一个分号空句。

用{和}将多个语句括起来,构成语句块,也称复合语句。

按语句执行顺序的控制结构分为顺序结构、分支结构(选择结构)、循环结构

分支结构:if…then…、if…then…else…、switch…case… 循环结构:while…、do…while、for… 中断语句:break、continue、return

四、完善调试

1、任务一:设计一个程序,按下列格式输出个人信息。完善、调试下列程序。

学 号: 姓 名: 所学专业: 家庭住址: 联系电话: public class MyMessage { public static void main(String[] args) { System.out.println(\学 号:张志强\); } } 2、任务二:设计一个Java程序,从键盘上输入两个实数,分别表示一个复数的实部和虚部,程序按复数的书写规则,输出这个复数。

import ; public class MyMessage { } public static void main(String[] args) { Scanner in = ; System.out.println(\请输入两个实数!\); double num1 = ; double num2 = ; System.out.printf(\, , ); } 3、任务三:设计一个Java程序,从键盘上输入三个整数,程序按照从大到小的顺序输出这三个数。完善、调试下列程序。

import ; public class MyMessage { public static void main(String[] args) { Scanner in = ; System.out.println(\请输入三个整数!\); int num1 = ; int num2 = ; int num3 = ; .close(); if( num1 <= num2 && num1 <= num3){ if(num2 <= num3){ } if(num1 <= num3){ } if(num1 <= num2){ } System.out.printf(\, , , );; System.out.printf(\, , , );; }else{ } } } System.out.printf(\, , , ); System.out.printf(\, , , ); }else{ System.out.printf(\, , , ); System.out.printf(\, , , ); }else{ }else if(num2 <= num1 && num2 <= num3 ){ }else if(num3 <= num1 && num3 <= num2 ){ 4、任务四:设计一个Java程序,从键盘上输入若干个整数,以输入0表示结束,计算除最后的0之外的所有数的和、平均值、最大值、最小值,并输出这些值。

import ; public class MyMessage { public static void main(String[] args) { Scanner in = ; System.out.println(\请输入一个整数序列!\); int num = ; int sum = ; } while( ){ System.out.printf(\, ); ; ; } ; System.out.printf(\整数序列的和是: \, ); } 5、任务四:设计算术运算计算机器,输入加法表达式,程序计算表达式的值并输出:

import ; import java.util.regex.*; //正则表达式所需引入的包 public class Calculator{ public static void main(String[] args) { Scanner in = ; String message = \; //用于显示操作错误信息 while(true){ //循环,进行多次计算 System.out.println(\); System.out.println(\算术计算器 *\); System.out.println(\); if(message.length() != 0){ } System.out.println(\是否要进行计算?(输入 y or n)\); String yorn = in.nextLine(); if( ){ /*加入代码,判断输入的是否为y或n, System.out.println(message); 如果为n,结束循环. */ }else{ message = \输入有误!\; continue; //输入有误,进入下一次循环,重新输入 } System.out.println(\请输入表达式,如:2 + 3\); String expression = ; String[]items = expression.split(\); //用+,-,*,/之一将输入的表达分隔开,以获取两个操作数字串。 if(items.length != 2){ message = \表达式输入有误!\; continue; //表达式有误,进入下一次循环,重新输入 }else{

if(!items[0].trim().matches(\) || !items[1].trim().matches(\) ){ message = \表达式输入有误!\; continue; //判断两个操作数是否是合法的数 //如其一不是合法的数,表达式有误,进入下一次循环,重新输入 } double num1 = ; double num2 = ; //将操作数字串转化为双精度数 String op = null; //存放运算符 double result = 0; //存放运算结果 Matcher matcher = Pattern.compile(\).matcher(expression); matcher.find(); op = matcher.group(); if(op == null || op.length() != 1){ } message = \表达式输入有误!\; continue; } //以上这段代码是从表达式字符串中取出运算符,赋给op switch( ){ } } //根据运算符op的不同,分别计算表达式的值,赋给result } System.out.printf(\ + op + \= %7.2f\\n\, , , );//输出表达式及结果 message = \; //为什么? } 五、项目实战

写一个学生成绩管理的简易程序,要示按提示信息,逐一输入学多名同学的姓名和语文、数学、英语三门课程的成绩,程序计算每个学生的总成绩和平均成绩,并输出:姓名、语文、数学、英语、总成绩、平均成绩。以下是输入两个学生成绩的情况:

**************************** * 学生成绩管理系统 * **************************** 是否要输下一个同学的成绩?(输入 y or n) y 请输入下一个同学的成绩,如:张小强,90,95,89

姓名 语文 数学 英语 张志强,95,89,88 姓名 语文 数学 英语 总成绩 平均成绩 张志强 95.00 89.00 88.00 272.00 90.67 是否要输下一个同学的成绩?(输入 y or n) y 请输入下一个同学的成绩,如:张小强,90,95,89 姓名 语文 数学 英语 王小盟,99,87,69 姓名 语文 数学 英语 总成绩 平均成绩 王小盟 99.00 87.00 69.00 255.00 85.00 是否要输下一个同学的成绩?(输入 y or n) y 请输入下一个同学的成绩,如:张小强,90,95,89 姓名 语文 数学 英语 王小盟,99,87,69 姓名 语文 数学 英语 总成绩 平均成绩 王小盟 99.00 87.00 69.00 255.00 85.00 是否要输下一个同学的成绩?(输入 y or n) n 程序结束! 源程序:

六、课后练习

一、选择题

1、下列运算符中,优先级最高的是

A、+= B、= = C、&& D++ 2、下列运算结果为1的是

A、8>>1 B、4>>>2 C、8<<1 D、4<<<2 3、下列语句中,可以作为无限循环语句的是

A、for(;;) {} B、for(int i=0; i<10000;i++) {} C、while(false) {} D、do {} while(false) 4、下列变量名的定义中,符合Java命名约定的是

A、fieldname B、super C、Intnum D、$number 5、下列哪个选项是合法的标识符?

A、123 B、_name C、class D、1first 6、Java中的基本数据类型int在不同的操作系统平台的字长是 A、不同的 B、32位 C、64位 D、16位 7、下列不是Java运算符的是

A、~ B、| C、^ D、! 8、下列程序的运行结果的是 public class Test { }

A、4.0,36.0 B、3.0,40.0 C、3.0,36.0 D、4.0,40.0 9、下列程序的运行结果的是 public class Test { }

public static void main(String[] args) { }

int x = 3, y = 4, z = 5; if(x > 3){ }

if(y < 2)

System.out.println(\System.out.println(\else

public static void main(String[] args) { }

float i = 3.0f; int n = 10;

System.out.print(i++);

System.out.println(\

}else{

if(z > 4)

System.out.println(\System.out.println(\else

A、show one B、show two C、show three D、show four 10、下列的哪个选项可以正确用以表示八进制值8?

A、0x8 B、0x10 C、08 D、010 11、下列的哪个赋值语句是不正确的?

A、float f = 11.1; B、double d = 5.3E12; C、float d = 3.14f ; D、double f=11.1E10f; 12、下列的哪个赋值语句是正确的?

A、char a=12; B、int a=12.0; C、int a=12.0f; D、int a=(int)12.0; 13、给出下列的代码,哪行在编译时可能会有错误? ① public void modify(){ ② int i, j, k; ③ i = 100;

④ while ( i > 0 ){ ⑤ j = i * 2; ⑥ ⑦ ⑧ } ⑨ }

A.line 4 B.line 6 C.line 7 D.line 8

二、填空题

1、在Java中,字符是以16位的【1】码表示。

2、代码System.out.println(066)的输出结果是【2】。 3、表达式(10*49.3)的类型是【3】型。

4、在Java中,跳转语句包括continue、return和【4】。

5、已知 int x = 3,y = 5;则System.out.println(x/y);的输出结果是【5】。 6、若x = 5,y = 10,则 x > y && x++ == y --的逻辑值为【6】

System.out.println (\); k = k + 1;


Java语言基本要素第二章.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一元二次方程的解法------因式分解法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: