0.0705

五煦查题

快速找到你需要的那道考题与答案

moocJava程序设计_43答案(慕课2023完整答案)

35 min read

moocJava程序设计_43答案(慕课2023完整答案)

1 Java开发环境和程序设计初步

1.1 Java语言发展历程、程序特点、设计作用及Java工作原理随堂测验

1、答案答案下列有关JVM表述有误的慕课是()
A、为硬件设备
B、完整解释执行Java字节码文件
C、程序不同平台JVM不同
D、设计为软件

2、答案答案Java字节码文件的慕课扩展名为()。
A、完整.java
B、程序.class
C、设计.docx
D、答案答案.cpp

3、慕课在JAVA中,完整下列哪个说法是正确的()。
A、java源文件的扩展名为.class
B、写好的java源程序可以直接运行
C、编写的源程序必须先编译后才能运行
D、程序员可以读懂扩展名为.class的文件

4、Java源文件的扩展名为 。

1.2 Java运行环境JDK随堂测验

1、JDK为Java的()
A、运行环境
B、开发环境
C、编译环境
D、解释环境

2、下列有关JDK的表述有误的是()。
A、jdk为硬件
B、jdk为java开发包
C、jdk为软件
D、jdk需安装和配置

3、jdk配置过程中主要涉及两类环境变量,分别是path和 。

1.3 开发工具Eclipse及构建Java运行程序随堂测验

1、使用()关键词创建类。
A、package
B、class
C、new
D、for

2、下列有关Eclipse的表述有误的是()。
A、为集成开发环境
B、只能用于Java开发
C、为开源的软件
D、其平台体系结构以插件为基础进行构建

3、一个可直接运行的Java源文件中只能有一个且和文件同名的 类。

Java开发环境 单元测试

1、编译一个定义3个类的Java源文件后,会产生 个字节码文件。

2、一个Java源文件中,编写了2个类: public class Hello{ } class HelloWorld{ } 则源文件名称应该为___。

Java开发环境-单元测试

1、System为()。
A、对象
B、类
C、变量
D、常量

2、Eclipse为()工具。
A、开源
B、非开源
C、java专有的开发
D、商业

3、下面哪种类型的文件可以在java虚拟机中运行? ( )
A、.java
B、.jre
C、.exe
D、.class

4、在Java中,以下()选项中的java命令能够将java源文件编译为字节码文件?
A、java
B、javaw
C、javac
D、jar

5、java程序中,main方法的格式正确的是()。
A、static void main(String[] args)
B、public void main(String[] args)
C、public static void main(String[]s)
D、public static void main(String[] args)

6、编译一个定义3个类的Java源文件后,会产生( )个字节码文件。
A、1
B、2
C、3
D、4

7、一个可直接运行的Java源文件中只能有一个且和文件同名的( )类。
A、public
B、private
C、protected
D、默认

8、使用()关键词创建类。
A、package
B、class
C、for
D、while

9、JDK为Java的()。
A、运行环境
B、开发环境
C、编译环境
D、解释环境

10、Java是()的编程语言。
A、结构化
B、过程化
C、面向对象
D、非跨平台

11、下列关于Java安全性的描述有误的是()。
A、不支持指针
B、对内存的访问须经过对象的实例变量实现
C、可以以非法手段访问对象的私有成员
D、提供安全机制,防止恶意代码攻击

12、下列不属于Java语言特点的是()。
A、面向对象
B、可移植性
C、多线程
D、与操作平台有关

13、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A、java
B、class
C、html
D、exe

14、Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )
A、String args
B、String args[]
C、Char arg
D、StringBuffer args[]

15、在Java中,负责对字节代码解释执行的是( )。
A、垃圾回收器
B、虚拟机
C、编译器
D、多线程机制

16、如果将类MyClass声明为public,则它的文件名必须是( )才能正常编译。
A、MyClass.classs
B、MyClass.java
C、MyClass.javac
D、MyClass.exe

17、下列说法哪个正确?( )
A、一个Java程序可以包含多个源文件
B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类
D、一个源文件只能供一个程序使用

18、关于main()方法,下列说法哪个正确?( )。
A、main()只能放在公共类中
B、一个类中可以没有main()方法
C、一个类中一定有main()方法
D、一个类中可定义多个main()方法

19、void 的含义是( )。
A、方法没有返回值
B、方法体为空
C、没有意义
D、定义方法时必须使用

20、Java中main()方法的返回值是( )。
A、String
B、int
C、char
D、void

搭建开发环境,编写java程序打印“你好2020”

1、搭建开发环境,编写java程序打印“你好2020”。提交代码及运行结果截图。

2 Java程序设计基础

2.1 标识符与关键字随堂测验

1、以下哪个是合法的Java标识符()。
A、persons
B、123
C、this
D、*point

2、下列哪个不属于Java的关键字()。
A、for
B、this
C、do
D、v_c

3、下列有关Java标识符表述有误的是()。
A、可以包含字母、数字
B、可以包含下划线及美元符号
C、不能是Java关键字
D、可以用数字开头

2.2 基本数据类型、变量和常量随堂测验

1、int类型长度为( )个字节。
A、1
B、2
C、3
D、4

2、在Java中,下列( )语句不能通过编译。
A、double d=23.3;
B、char c=’a’;
C、int a= 3+5;
D、float f=5+5.5;

3、定义常量使用 关键字。

2.3 操作运算符及表达式随堂测验

1、逻辑表达式2>3||3<5的运算结果为()。
A、true
B、false
C、不确定
D、0

2、下列不属于Java算术运算符的是()。
A、+
B、\
C、%
D、/

3、下列程序的运算结果为 。 int num1=3; int a=2+(++num1); System.out.println(a);

4、下列程序的运算结果为_____。 int num1=3; int a=2+(num1++); System.out.println(a);

2.4 Java程序规范随堂测验

1、java中import语句的功能为()。
A、导入类
B、导出类
C、打包
D、解包

2、java中单行注释为()。
A、//
B、/
C、\\
D、\

3、java中多行注释为()。
A、/*……*/
B、/…../
C、\.......\
D、\*…….*\

Java程序设计基础 单元测试

1、定义一个变量表示姓名,适合使用什么类型?
A、String
B、double
C、char
D、boolean

2、下列不适合作为变量名称的是()
A、x1
B、age
C、1f
D、flag

3、int x = 7; System.out.println(x>10); 将输出( )
A、x>10
B、true
C、false
D、运行报错

4、下面的语句哪一行在编译时没有警告和编译错误()。
A、float f=1.3;
B、char c="a";
C、byte b=257;
D、int i=10;

5、给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。
A、(byte) (b1-b2)
B、(byte) b1-b2
C、b1-b2
D、(byte) b1/b2

6、给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } }
A、1
B、2
C、2.5
D、3

7、下列哪个是Java中有效的关键字?( )。
A、name
B、hello
C、false
D、good

8、假设x=13,y=4,则表达式x%y!=0的值是( )。
A、不确定
B、false
C、true
D、-1

9、下列字符组合不能作为Java标识符的是( )。
A、Aa1
B、x_2
C、xy1
D、5x

10、“++”运算符的操作个数是( )。
A、1个
B、2个
C、3个
D、4个

11、int x=8,y=2; x=++x*y; 则执行后,x的值为( )。
A、12
B、16
C、18
D、20

12、逻辑表达式!(2>3)的运算结果为( )。
A、0
B、false
C、true
D、-1

13、设有定义 int i = 6 ;,则执行语句“i += i - 1;”后,i 的值为( )。
A、10
B、11
C、12
D、13

14、设有a=b=1,计算表达式++a>=1||++b>--a后,a的值是( )。
A、1
B、2
C、3
D、4

15、下列的变量定义中,正确的是( )。
A、boolean b="true";
B、float x=6.6;
C、byte y=200;
D、double y;

16、以下字符常量中,不合法的是( )。
A、'a'
B、'3'
C、"K"
D、'@'

17、已定义a为int类型的变量,以下选项中,合法的赋值语句为( )。
A、a+1=2;
B、a+=a*6;
C、a=8.8f;
D、int a=8;

18、以下选项中,合法的赋值语句为( )。
A、a==1;
B、++i;
C、a=a+1=5;
D、b+1=3;

19、设有定义int=123,long j=456,则下列赋值语句不正确的是( )。
A、j=i;
B、j=(long)i;
C、i=(int)j;
D、i=j;

20、现有一变量声明为 boolean a;则下面赋值语句正确的是( )。
A、a=false;
B、a=False;
C、a="false";
D、a="False";

程序设计基础作业1-表达式与运算符

1、写出能够表示变量x介于1~7之间的表达式。

2、简述Java中有哪些常见的运算符类型。

程序设计基础作业2-变量、常量

1、编写程序,要求从键盘分别输入长方形的长与宽,然后计算长方形的面积并在控制台打印输出。

程序设计基础作业3-数据类型转换

1、简述java基本数据类型间的转换规则。

3 程序控制结构

3.1 分支控制结构语句随堂测验

1、假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个?
A、0
B、2
C、3
D、5

2、请先阅读下面的代码。 int x = 1; int y = 2; if (x % 2 == 0) { y++; } else { y--; } System.out.println("y=" + y); 上面一段程序运行结束时,变量y的值为下列哪一项?
A、1
B、2
C、3
D、switch语句

3、以下选项中,switch语句判断条件可以接收的数据类型有哪些?
A、int
B、byte
C、char
D、short

4、阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。 public class Test03 { public static void main(String args[]) { int x = 4, j = 0; switch (x) { case 1: j++; case 2: j++; case 3: j++; case 4: j++; case 5: j++; default: j++; } System.out.println(j); } }

5、2、已知函数 x + 3 ( x > 0 ) y = 0 ( x = 0 ) x2 –1 ( x < 0 ) 请设计一个方法实现上面的函数,根据传入的值x的不同,返回对应的y值。 提示: 1) 定义一个static修饰符修饰的方法,方法接收一个int类型的参数x,返回值为int类型。 2) 在方法中使用if…else if..else 语句针对x的值进行三种情况的判断。 3) 根据判断结果分别执行不同的表达式,并将结果赋予变量y。 4) 在方法的最后返回y的值。 在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。

3.1 分支控制结构语句随堂测验

1、假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个?
A、0
B、2
C、3
D、5

2、请先阅读下面的代码。 int x = 1; int y = 2; if (x % 2 == 0) { y++; } else { y--; } System.out.println("y=" + y); 上面一段程序运行结束时,变量y的值为下列哪一项?
A、1
B、2
C、3
D、4

3、int i=1; switch (i) { case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); default: System.out.println("default"); }
A、one
B、one, default
C、one, two, default
D、default

4、尝试运行下面的代码会发生什么?( ) public class Test { public static void main(String[] args) { boolean m = true; if (m = false) { System.out.println("true"); } else { System.out.println("false"); } } }
A、输出字符串”true”
B、输出字符串”false”
C、编译时错误
D、运行时错误

5、编译并运行以下代码将发生什么? ( ) public static void main(String args[]){ char digit = 'a'; for (int i = 0; i < 10; i++){ switch (digit) { case 'x' : { int j = 0; System.out.println(j); } default : { int j = 100; System.out.println(j); } } } int i = j; System.out.println(i); }
A、输出11次100
B、输出10次100,然后抛出运行期异常
C、编译错误,因为变量i不能在main() 方法中被声明2次
D、编译错误,因为变量j不能在main() 方法中被声明2次

6、以下选项中,switch语句判断条件可以接收的数据类型有哪些?
A、int
B、byte
C、char
D、short

7、阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。 public class Test03 { public static void main(String args[]) { int x = 4, j = 0; switch (x) { case 1: j++; case 2: j++; case 3: j++; case 4: j++; case 5: j++; default: j++; } System.out.println(j); } }

8、已知函数 x + 3 ( x > 0 ) y = 0 ( x = 0 ) x2 –1 ( x < 0 ) 请设计一个方法实现上面的函数,根据传入的值x的不同,返回对应的y值。 提示: 1) 定义一个static修饰符修饰的方法,方法接收一个int类型的参数x,返回值为int类型。 2) 在方法中使用if…else if..else 语句针对x的值进行三种情况的判断。 3) 根据判断结果分别执行不同的表达式,并将结果赋予变量y。 4) 在方法的最后返回y的值。 在main方法中调用设计好的方法,传入一个int型的值,将方法的返回值打印。

3.2 循环结构语句随堂测验

1、int i=0; while(1){ System.out.println("I plus one is"+(i+1)); }
A、yes
B、no
C、都可以
D、都不可以

2、下列语句哪些属于循环语句?(多选)
A、for语句
B、if语句
C、while语句
D、switch语句

3、阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。 public class Test04 { public static void main(String args[]) { int n = 9; while (n > 6) { System.out.println(n); n--; } } }

4、请编写程序,实现计算“1+3+5+7+…+99”的值。 提示:1) 使用循环语句实现自然数1~99的遍历。 2)在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加。

3.3 跳转语句随堂测验

1、Java语言中属于跳转语句的是()。
A、try
B、catch
C、finally
D、break

2、在JAVA中,() 关键字用来终止循环语句。
A、return
B、continue
C、break
D、exit

3、以下代码输出是( ) int i=0; int sum=0; for(;i<=10; i++){ if( i%2 ==0 ){ sum+=i; }else{ continue ; } } System.out.println(sum);
A、55
B、45
C、35
D、30

4、以下关于break语句的描述,只有()是正确的。
A、在循环语句中必须使用break语句
B、break语句只能用于switch语句中
C、在循环语句中可以根据需要使用break语句
D、break语句可以强制跳出所有循环

5、下面关于return语句说法正确的是:
A、只能让方法返回数值
B、方法都必须显式使用该关键字
C、方法中可以有多句return
D、可以用来返回数值以外的类型

程序控制结构 单元测验

1、下面程序执行的结果 for(int i=1;i<=10;i++) { if (i%3==0) { continue; } System.out.println(“java基础班”); } 在屏幕上打印几次“java基础班”?( )
A、5
B、6
C、7
D、8

2、编译如下代码,编译运行时,结果是( )? public static void main(String[] atgs){ for(int i=0;i<3;i++){ System.out.print(i); } System.out.print(i); }
A、编译时报错
B、正确运行,输出012
C、正确运行,输出123
D、正确运行,输出0123

3、下面程序执行的结果是( ) public static void main(String [] args) { int num=100; if(num ++>100); { num =200; } System.out.println(num); }
A、100
B、200
C、201
D、101

4、给定某java 程序的main 方法如下,该程序的运行结果是( ) 。 pubtic static void main ( String[] args) { boolean boo=true; if ( boo== false) { System.out.println ("a") ; }else { System.out.println ("b") ; }
A、a
B、b
C、c
D、d

5、研究下面的Java 代码,当x=2 时,运行结果是( ) 。 switch ( x) { case1: System.out.println(1) ; case2: case3: System.out.println(3) ; Case4: System.out.println(4) ; }
A、没有输出任何结果
B、输出结果为3
C、输出结果是3和4
D、输出结果是l 、3 和4

6、下面的程序执行后count的结果是( )
A、0
B、10
C、9
D、11

7、阅读以下代码,并给出正确答案( )
A、输出11次100
B、输出10次100,然后抛出运行期异常
C、编译错误,因为变量i不能在main() 方法中被声明2次
D、编译错误,因为变量j不能在main() 方法中被声明2次

8、语句int k=1; while (k++<10);执行后,变量k的值是( )。
A、10
B、11
C、9
D、无限循环,值不定

9、关于while循环和do...while循环的区别,下列说法正确的是( )
A、没有区别,这两个结构任何情况下效果一样
B、while循环比do...while循环执行效率高
C、while循环是先循环后判断,所以循环至少被执行一次
D、do...while循环是先循环后判断,所以循环体至少被执行一次

10、关于return语句,下列说法正确的是( )
A、只能让方法返回数值
B、方法都必须含有
C、方法中可以有多句return
D、不能用来返回对象

11、下面代码输出结果是() int i=0,s=0; do{ if (i%2 = = 0 ){ i++; continue; } i++; s = s + i; } while (i<7); System.out.println(s);
A、16
B、12
C、28
D、21

12、int myInt = 3; if (myInt < 5) if (myInt < 3) System.out.println("<3"); else if (myInt > 2) System.out.println(">2"); else System.out.println("other"); 在标准输出中会显示什么信息?
A、<3
B、>2
C、other
D、什么也不输出

13、下面的代码段执行之后count的值是什么( ) int count = 1; ( ) for (int i = 1; i <= 5; i++) { count += i; } System.out.println(count);
A、5
B、1
C、15
D、16

14、下面程序执行的结果是?( ) boolean b=true; if(b=false) { System.out.println("a"); } else if(b) { System.out.println("b"); } else if(!b) { System.out.println("c"); } else { System.out.println("d"); }
A、a
B、b
C、c
D、d

15、下面程序执行的结果是?( ) int x=2,y=3; switch(x) { default: y++; case 3: y++; case 4: y++; } System.out.println("y="+y);
A、3
B、4
C、5
D、6

16、和下面代码执行结束后,sum结果一致的选项是( )int i=1; int sum=0; while(i<=100) { if(i%2==0) { sum=sum+i; } i++; }
A、for (int x =1; x<=100;x++){ sum=sum+x;}
B、for (int x =0; x<=100;x+=2){ sum=sum+x;}
C、for (int x =1; x<=100;x+=2){ sum=sum+x;}
D、上述全对

17、下列语句序列执行后,i的值是( )。 int i=16; do { i/=2; } while( i > 3 );
A、16
B、8
C、4
D、2

18、for循环格式如下: for(表达式1;表达式2;表达式3){ //code } 下面描述正确的是: ( )
A、先执行表达式1
B、表达式2一定会被执行多次
C、表达式2的执行次数比表达式3的执行次数多1次
D、code处代码一定会被执行

19、Java语言中有如下代码,下列X 的定义中,可使上段代码输出100 的有( ) 。 switch(x) { case 100: System.out.println(100) ;break; case 110: System.out.println(110) ;break; }
A、byte x=100
B、float x=100
C、char x='d'
D、long x=100

20、switch (x) { case 100: System.out.println("One hundred"); break; case 200: System.out.println("Two hundred"); break; case 300: System.out.println("Three hundred"); break; } 下列x的定义中,()可以使得以上代码编译通过;[]
A、double x=100;
B、char x=100;
C、String x="100";
D、int x=100;

程序控制结构作业1-分支结构

1、用if...else结构实现:判断英语成绩得78分是处在什么阶段。条件为:成绩大于或等于90分为优,成绩在75-90分为良(包含75分),成绩在60-75分为及格(包含60分),成绩小于60分为不及格。 提示:定义一个表示英语成绩的变量,并赋值为78,然后通过if...else判断,输出相应等级。

2、完成100分值到5分的转换。 功能:输入数据时,如果用户输入小于0或者大于100的分值,输出错误提示信息;如果用户输入0-100的分值,则进行一下分值转换。 100分值范围:0-20-40-60-80-100 5分值范围:E-D-C-B-A

程序控制结构作业2-循环结构

1、用for循环语句实现计算1-99的整数和。 输出:从1到99的整数和为:4950

2、通过while实现计算1-99的整数和。 输出:从1到99的整数和为:4950

3、通过do...while实现计算1-99的整数和。 输出:从1到99的整数和为:4950

程序控制结构作业3-综合

1、设n为自然数,n!称为n的阶乘,规定0!=1。 n!=1*2*...*n 编写程序计算2!、4!、6!、8!和10!,并将结果输出到屏幕上。

2、编写程序,判断用户输入的数是否为素数。 输入:5 输出:不是素数 输入:4 输出:是素数

3、编写程序,要求判断用户从键盘输入的字符串是否为回文(回文是指自左向右读与自右向左读完全一样的字符串)。 输入:abcddcba 输出:是回文 输入:abcde 输出:不是回文

实验一

1、编写程序,在测试类主方法中读取1-50之间的整数,保存在数组中,然后计算每个数出现的次数。假定输入是以0结束的。 【输入格式】 连续的整数,以空格隔开,以0位结束 【输出格式】 **在数组中出现的次数:* **在数组中出现的次数:* ... 示例: 【输入】 23 25 1 21 23 15 18 18 20 20 20 0 【输出】 3在数组中出现的次数:1 17在数组中出现的次数:1 20在数组中出现的次数:2 22在数组中出现的次数:3 23在数组中出现的次数:1 25在数组中出现的次数:2 27在数组中出现的次数:1

2、编写Java程序实现如下功能,将输入的英文语句中每一个单词的首字母转换成大写并输出转换后的字符串。 【输入格式】 输入一行英文语句,单词间以逗号隔开。 【输出格式】 将每个单词的首字母转换为大写后输出。 示例: 【输入】 this is a good idea! 【输出】 This Is A Good Idea!

6 数组、字符串和实用类

数组、字符串单元测验

1、下面的二维数组初始化语句中,正确的是( )
A、float b[2][2]={ 0.1,0.2,0.3,0.4};
B、int a[][]={ { 1,2},{ 3,4}};
C、int a[2][]= { { 1,2},{ 3,4}};
D、float a[2][2]=;

2、以下语句不能通过编译的是( )
A、int[] a={ 1,2,3,4};
B、int b[];
C、int c[]=new int[3];
D、int d=new int[];

3、下面数组定义正确的是()
A、int [] arr ={ 23,45,65,78,89};
B、int [] arr=new int[10]{ };
C、int [] arr=new int[4]{ 3,4,5,6};
D、int [] arr={ "a",23 ,45,6};

4、下列初始化字符数组的语句中,正确的是( )
A、char str[5]="hello";
B、char str[]={ 'h','e','l','l','o',''};
C、char str[5]={ "hi"};
D、char str[100]="";

5、下面哪项可以得到数组元素的个数,java中定义数组名为 num,( )
A、num.length( )
B、num.length
C、len(num)
D、0ubound(num)

6、Java语言中,String str=”123456789”, System.out.println(str.indexOf (“5”)),输出结果为( )
A、6
B、5
C、4
D、-1

7、String类的哪个方法用于分割字符串?( )
A、split
B、substring
C、indexOf
D、trim

8、以下Java语句中,String str = “123456789”;str=str.subString(1,3);执行后str中的值为( )
A、“23”
B、“123”
C、“12”
D、“234”

9、下面( )不是String类提供的合法的方法
A、equals()
B、trim()
C、append()
D、indexOf()

10、下列关于String类和StringBuffer类说法错误的( )
A、String类是不可变类,一个String对象所包含的字符串内容永远不会被改变
B、String类可以使用append方法连接字符串
C、StringBuffer类是可变类,一个StringBuffer对象所包含的字符串内容可以被添加或修改
D、字符串缓冲区支持可变的字符串

11、关于StringBuffer类的描述错误的( )
A、StringBuffer类的主要功能是用于字符串的分析
B、StringBuffer类可以将一个字符串分解成数个单元
C、countTokens()方法用于检查时候还有令牌存在
D、nextToken()方法用于返回下一个令牌

12、有如下代码: StringBuffer buffer = new StringBuffer("Happy Birthday"); buffer.insert(2, '5'); System.out.println(buffer); 则最后输出的结果是( )
A、Hap5py Birthday
B、H5appy Birthday
C、Ha5py Birthday
D、Ha5ppy Birthday

13、有如下代码: StringBuffer buffer = new StringBuffer("I love china!"); System.out.println(buffer.charAt(3)); 则最后输出的结果是()
A、I
B、o
C、v
D、e

14、StringTokenizer中方法hasMoreTokens()的返回值类型为( )
A、int
B、boolean
C、String
D、Integer

15、Float.valueOf(“123”)的返回值类型是( )
A、int
B、float
C、String
D、Float

16、Integer.toString(123)的返回值类型是()
A、int
B、Integer
C、String
D、char

17、( )类是所有Java类的祖先类,也是所有类库中类的父类
A、System
B、Class
C、Object
D、Runtime

18、关于Java语言基础类库,以下说法错误的是( )
A、java.io是Java语言的标准输入/输出类库
B、java.net包用于实现网络功能的类库
C、java.swing包是java语言的核心类库
D、java.awt是开发Java图形用户界面程序的类库

19、使用Math.random类可以产生随机数的范围()
A、(0,1)
B、[0,1)
C、(0,1]
D、[0,1]

20、执行完代码"int[] x=new int[25];"后以下( )说明正确的
A、x[24]为0
B、x[24]未定义
C、x[25]为0
D、x[0]为空

21、下面 不是创建数组的正确语句( )
A、float f[][]=new float[6][6];
B、float f[]=new float[6];
C、float f[][]=new float[][6];
D、float [][]f=new float[6][];

22、下面程序的输出结果是( ) String s ="ABCD"; s.concat("E"); s.replace("C","F"); System.out.println(s);
A、ABCD
B、ABCDE
C、ABFDE
D、ABFE

23、定义字符串:String s = “abcdefg”; 则s.indexOf(‘d’)的结果是( )
A、’d’
B、true
C、3
D、4

24、有如下代码: StringBuffer buffer = new StringBuffer("I love java!"); System.out.println(buffer.delete(2,4)); 则最后输出的结果是( )
A、I ove java!
B、I e java!
C、I ve java!
D、I vejava!

数组、字符串作业

1、有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出。

2、编写程序将 “hello” 全部变为大写,并输出到屏幕,截取子串”LO” 并输出到屏幕

3、String str = "jingdong,google,taobao,sina,zhihu";通过StringTokenizer将str分解成如下格式: jingdong google taobao sina zhihu

4、编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回下标最小的数的下标

11 输入输出和文件操作

11.1 输入输出流及 InputStream的使用随堂测验

1、Java流被分为字节流、字符流两大流类,两者都作为( )类的直接子类。
A、Exception
B、Object
C、Throwable
D、以上都不是

2、下列关于IO流的描述中,正确的是( )
A、按照操作数据的不同,可以分为字节流和字符流
B、按照数据传输方向的不同又可分为输入流和输出流
C、字节流的输入输出流分别用java.io.InputStream和java.io.OutputStream表示
D、字符流的输入输出流分别用java.io.Reader和java.io.Writer表示

3、以下哪些属于InputStream类的方法( )
A、int read(byte[])
B、void flush()
C、void close()
D、available()

4、Java中的数据传输“流”都位于java.io包中,称为IO(输入/输出)流。

5、字节流只能用来读写二进制文件。

11.2 字节输出流随堂测验

1、以下选项中,哪个是FileOutputStream的父类?
A、File
B、FileOutput
C、OutputStream
D、InputStream

2、下面关于字节流缓冲区的说法错误的是( )。
A、使用字节流缓冲区读写文件是一个字节一个字节的读写
B、使用字节流缓冲区读写文件时,可以一次性读取多个字节的数据
C、使用字节流缓冲区读写文件,可以大大的提高文件的读写操作
D、字节流缓冲区就是一块内存,用于存放暂时输入输出的数据

3、以下哪些属于OutputStream类的方法( )
A、write(byte[])
B、flush()
C、close()
D、available()

4、默认情况下,使用FileOutputStream写数据时,下列说法中哪些是错误的()。
A、当文件不存在时,会自动创建文件
B、当文件不存在时,程序会报错
C、当文件存在时,会覆盖原文件
D、当文件存在时,会在原文件上追加数据

5、下面关于字节流缓冲区的描述中,哪些是错误的( )
A、字节流缓冲区的大小是1024
B、字节流缓冲区的大小是可以自定义设置的
C、字节流缓冲区只能用在文件输出流中
D、字节流缓冲区只能用在文件输入流中

11.3字符流的使用随堂测验

1、FileWriter类的write(int c)方法的作用是( )
A、写入单个字符
B、写入多个字符
C、写入整型数据
D、写入一个数字

2、使用FileReader读取reader.txt文本文件中的数据,reader.txt中的内容为:abc import java.io.*; public class Example01 { public static void main(String[] args) throws Exception { FileReader reader = new FileReader("reader.txt"); int ch; while ((ch = reader.read()) != -1) { System.out.print(ch+" "); } reader.close(); } } 运行以上程序的结果是( )
A、编译出错
B、a b c
C、97 98 99
D、无输出

3、下列选项中,哪个是FileWriter类中read()方法读取到流末尾的返回值?( )
A、0
B、-1
C、1
D、无返回值

4、下列选项中,哪个类用于读取文本文件中的字符( )。
A、FileReader
B、FileWriter
C、BufferReader
D、BufferWriter

5、下列关于FileWriter的说法中,正确的是( )
A、FileWriter是OutputStreamWriter类的子类
B、FileWriter用于直接向文件中读取字符
C、FileWriter在指定写入的文件不存在时会抛出异常
D、使用FileWriter(String fileName, boolean append)构造方法,设置append参数值为true可以实现在文件中追加内容的效果

6、下列选项中,属于FileReader直接或间接父类的有( )
A、Reader
B、Object
C、InputStream
D、InputStreamReader

11.4文件对象随堂测验

1、以下对File类的public boolea isFile()方法的描述,哪个是正确的?
A、判断该File对象所对应的是否是文件
B、判断该File对象所对应的是否是目录
C、返回文件的最后修改时间
D、在当前目录下生成指定的目录

2、若要创建一个新的含有父目录的目录,应该使用下列哪一个类的实例( )
A、RandomAccessFile
B、FileOutputStream
C、File
D、以上都对

3、File类中的listFiles()方法说法正确的是( )
A、获取File对象封装的路径下的全部文件和文件夹对象
B、只获取File对象封装的路径下的文件
C、该方法返回File类型数组
D、该方法返回String类型数组

4、关于File类中的exists()方法说法错误的是( )
A、判断File对象中封装的路径所对应的文件或者文件夹是否存在
B、此方法返回boolean类型值
C、判断File对象封装的路径是否是相对路径
D、判断File对象封装的路径是否是绝对路径

5、下列哪两个方法可以创建目录( )
A、createNewFile()
B、createTempFile()
C、mkdir()
D、mkdirs()

11.5随机文件随堂测验

1、以下创建RandomAccessFile类实例对象的代码,哪些是正确的?
A、RandomAccessFile(new File("D:\itcast\dir1\test.java"),"rw")
B、RandomAccessFile( "D:\itcast\dir1\test.java","r")
C、RandomAccessFile( "D:\itcast\dir1\test.java")
D、RandomAccessFile( "D:\itcast\dir1\test.java","wr")

11.6对象序列化随堂测验

1、关于对象的序列化说法错误的是( )
A、实现序列化的对象必须实现Serializable接口
B、实现序列化的对象必须自定义序列号 //可以不用定义,这个开发很少用
C、ObjectOutputStream中的writeObject()方法可以将对象写出
D、ObjectInputStream中的readObject()方法可以读取对象

2、实现下列哪个接口,可以启用序列化功能( )
A、Runnable接口
B、Comparable接口
C、Serializable接口
D、Comparator接口

输入输出和文件操作-单元测试

1、在JAVA中,要创建一个新目录,要使用( )类的实例。
A、File
B、FileOutputStrean
C、PrintWriter
D、Dir

2、在JAVA中,要判断D盘下是否存在文件abc.txt,应该使用以下( )判断语句。
A、if(new File(“d:abc.txt”) .exists() = =1)
B、if(File.exists(“d:abc.txt”) = =1)
C、if(new File(“d:/abc.txt”) .exists( ) )
D、if(File.exists(“d:/abc.txt))

3、给定一个java程序的main方法的代码片段如下:假如d 目录下不存在abc.txt文件,现运行该程序,下面的结果正确的是( )。 try { PrintWriter out=new PrintWriter(new FileOutputStream(“d:/abc.txt”)) ; String name=”chen”; out.print(name) ; out.close( ) ; } catch(Execption e) { System.out.println(“文件没有发现!“) ; }
A、将在控制台上打印:“文件没有发现!”
B、正常运行,但没有生成文件abc.txt
C、运行后生成abc.txt ,但该文件中无内容
D、运行后生成abc.txt,该文件内容为:chen

4、在java中,以下代码()正确地创建了一个InputStreamReader类型的对象。
A、new InputStreamReader(new FileInputStream("1.dat")) ;
B、new InputStreamReader(new FileReader("1.dat")) ;
C、new InputStreamReader(new BufferedReader("1.dat")) ;
D、new InputStreamReader("1.dat")

5、在java中,以下代码( )正确地创建了一个InputStreamReader类型的对象。
A、new InputStreamReader(new FileInputStream("1.dat")) ;
B、new InputStreamReader(new FileReader("1.dat")) ;
C、new InputStreamReader(new BufferedReader("1.dat")) ;
D、new InputStreamReader("1.dat") ;

6、下列流中哪个不属于字节流( )。
A、FileInputStream
B、BufferedInputStream
C、FilterInputStream
D、InputStreamReader

7、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( )。
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter

8、下面程序的运行结果是( )。 FileOutputStream fos = new FileOutputStream(“c:\\demo.txt”); fos.write(“abc”); fos.close();
A、在C盘创建文件demo.txt,但文件是空的
B、在C盘创建文件demo.txt,并写入数据abc
C、将C盘已有的文件demo.txt中追加写入abc
D、编译失败

9、请看如下代码: BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt")); String line = null; while ((line = br.readLine()) != null) { bw.write(line); bw.newLine(); bw.flush(); } bw.close(); br.close(); 它表达的意思是( )?
A、把c盘目录下的a.txt文件内容复制到d盘目录下的b.txt
B、把d盘目录下的b.txt文件内容复制到c盘目录下的a.txt
C、读取c盘目录下a.txt文件,输出在控制台
D、把控制台的内容写入到d盘目录下的b.txt文件中

10、下列叙述中,正确的是 ( )
A、Reader是一个读取文本文件的接口
B、Reader是读取二进制数据文件的抽象类
C、Reader是一个读取文本文件的抽象类
D、Reader是读取二进制数据文件的一般类

11、FileReader类描述正确的是( )
A、字节输入流
B、字符输入流
C、打印流
D、序列化流

12、实现下列哪个接口,可以启用序列化功能( )
A、Runnable接口
B、Comparable接口
C、Serializable接口
D、Comparator接口

13、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( )。 import java.io.*; public class Test { public static void main(String args[]) { try { String s="ABCDE "; byte b[]=s.getBytes(); FileOutputStream file= new FileOutputStream("test.txt",true); file.write(b); file.close(); } catch(IOException e) { System.out.println(e.toString()); } } }
A、ABCABC
B、ABCDE
C、Test
D、ABCDE ABCDE ABCDE

14、以下哪两个流对象可以实现任意类型文件的成功复制( )
A、FileReader 和 FileWriter
B、FileInputStream和FileOutputStream
C、BufferedReader和 BufferedWriter
D、InputSteamReader和OutputStreamWriter

15、关于对象的序列化说法错误的是( )
A、实现序列化的对象必须实现Serializable接口
B、实现序列化的对象必须自定义序列号
C、ObjectOutputStream中的writeObject()方法可以将对象写出
D、ObjectInputStream中的readObject()方法可以读取对象

16、使用字符流可以成功复制哪些文件( )
A、文本文件
B、图片文件
C、视频文件
D、以上都可以复制

17、文件输出流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示( )?
A、创建一个新文件
B、在原文件的尾部添加数据
C、覆盖原文件的内容
D、在原文件的指定位置添加数据

18、下列关于Java中文件输入输出的说法正确的是( )
A、在Java中,文件的输入输出功能是通过流来实现的
B、如果要把数据写入到一个文件中,需要创建一个输入流对象
C、字符流在某些方面比如汉字的处理,比字节流更方便
D、可以通过Reader r = new Reader("c:\\pet.txt")创建一个输入流对象

19、下面关于IO流的说法正确的是( )
A、IO流可以分为字节流和字符流
B、FileReader和FileWriter是专门用于读取和写入文本文件的
C、顶层类有InputStream和OutputStream
D、顶层类有Reader和Writer,他们都是接口

20、File类中的listFiles()方法说法正确的是( )
A、获取File对象封装的路径下的全部文件和文件夹对象
B、只获取File对象封装的路径下的文件
C、该方法返回File类型数组
D、该方法返回String类型数组

作业

1、图书馆用一个文本文件booklist.txt记录图书的书目,其中包括book1,book2,book3,...,book10。现在又采购了一批新书,请编写相应的程序,将新书的书目增加到原来的文本文件中。

2、通过字节缓冲流,实现将sourse目录中的src.jpg文件内容拷贝到target目录中的dest.jpg文件中。

3、在一个time.txt文件中写入一个数字,如5,用来假设某软件能够试用的次数。请使用RandomAccessFile类来模实现记录软件试用次数的过程,即每打开一次,文件中的次数值减1,并且在控制台输出“您还可以试用*次”,当打开文件超过5次时,则提示“对不起,试用结束”!

4、创建一个Student类,且具有no(学号)、name(姓名)、age(年龄)等属性,具有public Student(String no,String name,int age)构造方法。 请利用该类创建四个学生对象,并且将该四个对象写入到某一个文件中,然后再从该文件中把四个对象读出来,并在控制台显示(每个对象的属性都要显示)!需要使用对象的序列化来完成!

实验七

1、从in.dat文件中读入一组字符串,字符串之间以逗号隔开,将字符串按照字典序排列后,写入文件out.dat中。 要求:可采用文件字节流或文件字符流,in.data中需要排序的字符串为: China,USA,Brazil,Italy,Korea,Canada,Thailand 排序后写入out.data中的字符串为: Brazil,Canada,China,Italy,Korea,Thailand,USA 提示: (1). 字符串分隔采用字符串分析器StringTokenizer; (2). 字符串排序调用数组排序方法Arrays.sort()。

4 面向对象

面向对象 单元测验

1、类是事物特征行为的描述,是( )的,对象是类的( )实例。
A、抽象 具体
B、具体 抽象
C、抽象 抽象
D、具体 具体

2、下列选项中最适合作为类名称的是( )。
A、2a
B、teacher
C、Tea
D、float

3、下列关于在java文件中编写类的说法正确的是( )。
A、一个java源文件中只能编写一个类
B、一个java源文件中可以编写多个类,并且文件名称可以任意取
C、一个java源文件中可以编写多个类,类的访问控制符可以任意设置
D、一个java源文件中可以编写多个类,只有一个可以设置为public,且该类名称应与文件名称一致

4、方法内定义的变量( )
A、一定在方法内所有位置可见
B、可能在方法的局部位置可见
C、在方法外可以使用
D、在方法外可见

5、return语句( )
A、不能用来返回对象
B、只可以返回数值
C、方法都必须含有
D、一个方法中可以写多个

6、main()方法的返回值类型是( )
A、boolean
B、int
C、void
D、static

7、构造方法在( )被调用。
A、类定义时
B、使用对象的变量时
C、调用对象方法时
D、创建对象时

8、下列关于构造方法的描述错误的是( )
A、构造方法名与所在类名相同
B、构造方法没有返回值,因而返回类型是void
C、构造方法可以重载
D、在类创建对象时,构造方法被调用进行对象初始化

9、下列关于this关键字的描述错误的是( )
A、this关键字只能在类的非静态方法中使用
B、可以在构造方法的任意位置使用this关键字调用本类对象的其他构造方法
C、可以访问本类对象的成员变量
D、可以访问本类对象的成员方法

10、static( )修饰局部变量。
A、可以
B、不可以
C、无效选项
D、无效选项

11、类通过( )来分别描述事物的特征、行为。
A、成员变量 属性
B、成员方法 属性
C、属性 方法
D、函数 方法

12、一般Java程序的类主体由两部分组成( )
A、成员属性 成员方法
B、成员变量 局部变量
C、构造方法 成员方法
D、构造方法 静态方法

13、关于方法的重载描述错误的是( )
A、重载的方法其名称一样
B、重载的方法其参数列表不同
C、重载发生在一个类中
D、重载发生在类和类之间

14、关于类和对象的描述错误的是( )
A、类描述了一类对象的行为和状态
B、对象是类的一个实例
C、在一个Java文件中只能写一个类
D、类相当于一个模板,可以创建多个对象

15、为了解决成员变量、局部变量重名的问题,可以使用关键字( )
A、new
B、static
C、this
D、super

16、为了实现类的封装,类的成员变量的访问控制符应该使用( )。
A、public
B、private
C、protected
D、缺省

17、编译一个定义了3个类共10个方法的Java源代码文件时会产生多少个字节码文件,其扩展名是什么?
A、13个字节码文件,扩展名为.class
B、3个字节码文件,扩展名为.java
C、3个字节码文件,扩展名为.class
D、1个字节码文件,扩展名为.class

18、编译并运行下列程序,请问结果是什么( ) public class Example { public static void main(String[] args) { Example e = new Example(); e.test(6); } int test(int i){ System.out.println("it is int"); return 1; } void test(long i){ System.out.println("it is long"); } }
A、程序无法编译,因为编译器不能区别给出的两个test()方法
B、程序可以编译运行,但是不会有任何信息输出
C、程序可以编译运行,并输出“it is int”
D、程序可以编译运行,并输出“it is long”

19、如果需要限制对类中的静态成员的访问,应该( )
A、用final关键字
B、用private关键字 
C、不需要使用任何关键字
D、无法这样限制一个static成员

20、(多选)关于static修饰的成员访问方式正确的描述是( )
A、通过类名称及对象名称
B、仅能通过类名称
C、仅能通过对象名称
D、建议通过类名称直接访问

面向对象作业1

1、(1)具有品牌、颜色、内存容量等属性; 具有打电话、发信息等方法。 (2)要求:内存容量只能赋值为64、128、256; (3)提供两个构造方法,一个是无参的,另一个是带参的; (4)打电话方法重载,一个设置为无参,表示拨打紧急电话,另一个设置参数为拨打的号码。 (5)在main方法中实例化类对象,进行测试。

实验二

1、定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量(访问权限为private) no 表示学号 name 表示姓名 sex 表示性别 age 表示年龄 java 表示Java课程成绩 (2)类Student的方法(访问权限为public) getNo() 获得学号 getName() 获得姓名 getSex() 获得性别 getAge() 获得年龄 getJava() 获得Java课程成绩 (3)定义类成员变量nextNo,初始值为19080000,用于自动生成学生学号,每创建一个学生对象,该值自增1。 (4)定义类的构造方法 public Student(String name, String sex, int age, int java) (5)创建2个Student类的对象,分别输出这两个学生学号、姓名和Java语言成绩。 示例 【输出】 学号:19080001,姓名:Tony Zhang,Java语言成绩:90 学号:19080002,姓名:吴一帆,Java语言成绩:88

2、猫狗大战。 (1)定义类Cat,要求如下: 整型字段hp,设置相应的get和set方法; 无参数列表构造方法Cat(),创造出的hp默认为80; 带参数构造方法Cat(int hp),创造出指定hp的对象; 方法attack(Dog g),参数为Dog对象,每次调用此方法后,用随机数的方式,随机产生0-9的整数伤害,减少参数Dog对象的hp,并且攻击结果需要在控制台输出,格式为“猫攻击狗,产生**点伤害,狗当前HP为**”。 (2)构建类Dog,要求如下: 整型字段hp,设置相应的get和set方法; 无参数列表构造方法Dog(),创造出的hp默认为90; 带参数构造方法Dog(int hp),创造出指定hp的对象; 方法attack(Cat c),参数为猫对象,每次调用此方法后,用随机数的方式,随机产生0-8的整数伤害,减少参数Cat对象的hp,并且攻击结果需要在控制台输出,格式为“狗攻击猫,产生**点伤害,猫当前HP为**”。 (3)构建类Fight,要求如下: 拥有main方法,在该方法中,首先构建猫和狗对象,使用循环让猫和狗相互攻击,每次攻击完毕后,判断猫和狗相应的HP,如果某一方HP小于等于0,则停止循环,并输出结果,格式为“猫/狗HP为**,已经失败,胜利者是狗/猫!

5 继承和多态

5.1 类的继承随堂测验

1、1、在类的继承关系中,需要遵循以下哪个继承原则?
A、多重
B、单一
C、双重
D、不能继承

继承和多态 单元测验

1、关于继承, 以下说法正确的是( )
A、子类将继承父类所有的成员
B、子类将继承父类的非私有成员
C、子类只继承父类public成员
D、子类只继承父类方法,而不继承属性

2、以下关于继承的叙述正确的是( )
A、在Java 中类只允许单一继承
B、在Java 中子类不能多层继承
C、在Java 中多个类不能同时继承一个类
D、在Java 中子类无法访问父类同名属性

3、下列有关抽象类的叙述正确的是哪项?
A、抽象类中一定含有抽象方法
B、抽象类既能被实例化也能被继承
C、抽象类的声明必须包含abstract关键字
D、抽象类中不能有构造方法

4、下列关于抽象类的说法正确的有
A、含有抽象方法的类必须声明为抽象类
B、抽象类中不可以有非抽象方法
C、抽象类中至少需要包含一个抽象方法
D、抽象类无法实例化

5、要想定义一个抽象类,需要在类定义中加上修饰符
A、final
B、public
C、private
D、abstract

6、下列( ) 类不能派生出子类
A、public class MyClass{ }
B、class MyClass{ }
C、abstract class MyClass{ }
D、final class MyClass { }

7、在java中定义常量的正确语法为
A、int value=20;
B、const int VALUE=20;
C、final int VALUE=20;
D、int VALUE=20;

8、下列有关接口的叙述错误的是哪项?
A、接口中只能包含抽象方法和常量,以及默认方法
B、一个类可以实现多个接口
C、普通类实现接口时必须实现其中的方法
D、接口不能被继承

9、已知两个接口B和C,要定义一个类A实现这两个接口,以下语句正确的是
A、interface A extends B,C
B、interface A implements B,C
C、class A implements B,C
D、class A implements B,implements C

10、以下对接口描述错误的是
A、接口没有提供构造方法
B、接口中的方法默认使用public、abstract修饰
C、接口中的属性默认使用public、static、final修饰
D、接口不允许多继承

11、已知类的集成关系如下: class Teacher; class EnglishTeacher extends Teacher; class MathTeacher extends Teacher; 那么以下代码能够编译通过的是?
A、Teacher teacher = new EnglishTeacher();
B、EnglishTeacher teacher = new MathTeacher();
C、MathTeacher teacher = new EnglishTeacher();
D、EnglishTeacher teacher = new Teacher();

12、类中的成员方法被哪个修饰符修饰后只能在本类中被访问?
A、public
B、protected
C、private
D、default

13、在Java语言中,所有的类都直接或间接的继承自()类
A、Father
B、Object
C、Byte
D、Application

14、Java中接口之间的继承关系是
A、单继承
B、多重继承
C、不能继承
D、不一定

15、在定义一个接口的时候,可以使用的修饰符是
A、private
B、protected
C、default
D、public

16、下列关于类的继承的描述,正确的有
A、一个类可以同时继承多个父类
B、一个类可以具有多个子类
C、子类会自动拥有父类所有的方法
D、一个类继承另一个类需要使用 extends 关键字

17、以下关于final关键字说法错误的是
A、final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性
B、final修饰的类肯定不能被继承
C、final修饰的方法不能被重载
D、final修饰的变量不允许被再次赋值

18、关于super关键字以下说法哪些是正确的?
A、super关键字可以调用父类的构造方法
B、super关键字可以调用父类的普通方法
C、super与this不能同时存在于同一个构造方法中
D、super与this可以同时存在于同一个构造方法中

19、关于抽象类的说法哪些是正确的?
A、抽象类中可以有非抽象方法。
B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。
C、不能用抽象类去创建对象。
D、接口和抽象类是同一个概念。

20、以下描述正确的有
A、final class不能被继承
B、final变量不能被修改
C、final成员变量可以在构造方法中赋值
D、final方法不能被覆盖(override)

继承和多态作业1-继承和多态

1、完成下列父类及子类的创建: (1)创建Student类, 属性包括:学号,姓名,英语成绩,数学成绩,计算机成绩 方法包含:构造方法实例化各成员属性,set方法,get方法,sum方法计算总成绩,testScore方法计算评测成绩(评测成绩为平均分+3) (2)创建StudentXW(学习委员)类该类继承Student类,增加属性责任,声明构造方法实例化各成员属性,重写 testScore方法计算评测成绩(评测成绩为平均分+5)

继承和多态作业2-继承和多态

1、设计3个类: 1.员工类(Employee):属性:姓名(name),工号(id),薪水(salary);方法:工作(work),抽象方法 2.经理类(Manager):继承员工类,属性:奖金(bonus) 3.普通员工(staff):继承员工类

继承和多态作业3-接口

1、完成下面的汽车案例: 描述:汽车都具有跑的功能,普通的奥迪车也不例外,但是高端的奥迪车除了具有跑的功能外,还具有自动泊车和无人驾驶的功能! 需求:定义普通奥迪车,高端奥迪车,实现描述中的功能并测试

实验三

1、假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程平均分数超过60即可以拿到,而对于研究生则需要平均分数超过80分才能够拿到。 (1) 设计基类Student描述学生的共同特征; 成员变量包括: protected String name; //姓名 protected String number; //学号 protected String sex; //性别 protected int score[]; //3门学位课程的分数 成员方法包括: 构造方法public Student(String name, String number, String sex, int[] score) abstract boolean Verify(); //abstract方法,验证是否能拿到学位的方法 (2) 设计描述本科生的类Undergraduate,该类继承并扩展Student类; 成员方法包括: 构造方法public Undergraduate(String name, String number, String sex, int score[]) boolean Verify(); //如能拿到学位,则返回true,否则返回false (3) 设计描述研究生的类Graduate,该类继承并扩展Student类; 构造方法public Graduate(String name, String number, String sex, int score[]) boolean Verify(); //如能拿到学位,则返回true,否则返回false (4) 在main方法中分别创建一个Undergraduate类的对象实例和一个Graduate类的实例,从键盘输入信息调用构造方法,显示相关信息。 示例: 【输入】 顾思维 10013081 女 90 80 75 王杨 10034112 男 70 75 81 【输出】 姓名:顾思维 学号:10013081 性别:女 三门课程成绩为:90,80,75 能拿到学位 姓名:王杨 学号:10034112 性别:男 三门课程成绩为:70,75,81 不能拿到学位

2、定义一个接口USB,其中有两个方法 void install(); void work(); (1)定义手机类Phone,实现USB接口; install方法打印输出“安装手机驱动程序”,work方法打印输出“从手机拷贝数据到电脑”。 (2) 定义打印机类Printer类,实现USB接口; install方法打印输出“安装打印机驱动程序”,work方法打印输出“打印一份文件”。 (3) 定义照相机类Camera类,实现USB接口; install方法打印输出“安装照相机驱动程序”,work方法打印输出“从照相机拷贝照片到电脑”。 (4) 定义计算机类Computer,其中有一个方法 public void useUSB(USB u); //该方法使用USB接口作为参数 class Computer { public void useUSB(USB u) { u.install(); u.work(); } } (5) 在主方法中创建计算机对象cp,并创建手机、打印机、照相机对象,测试计算机的useUSB方法。 【输出】 安装手机驱动程序 从手机拷贝数据到电脑 安装打印机驱动程序 打印一份文件 安装照相机驱动程序 从照相机拷贝照片到电脑

7 泛型和集合

泛型和集合单元测验

1、Java语言中,集合类都位于哪个包中?
A、java.util
B、java.lang
C、java.array
D、java.collections

2、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法?
A、next()
B、hash()
C、hasPrevious()
D、hasNext()

3、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?
A、HashMap
B、TreeSet
C、Properties
D、TreeMap

4、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合?
A、LinkedList
B、ArrayList
C、hashSet
D、TreeSet

5、获取单列集合中元素的个数可以使用以下哪个方法?
A、length()
B、size()
C、get(int index)
D、add(Object obj)

6、要想保存具有映射关系的数据,可以使用以下哪些集合?
A、ArrayList 
B、TreeMap 
C、HashMap 
D、TreeSet

7、关于foreach循环的特点,以下说法哪些是正确的?
A、foreach循环在遍历集合时,无需获得容器的长度
B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句
C、foreach循环在遍历集合时非常繁琐
D、foreach循环的语法格式为:for(容器中元素类型 临时变量 :容器变量)。

8、使用Enumeration遍历集合时,需要使用以下哪些方法?
A、hasMoreElements()
B、nextElement()
C、next()
D、hashNext()

9、下列哪些说法是正确的?
A、LinkedList集合在增删元素时效率较高
B、ArrayList集合在查询元素时效率较高
C、HashMap不允许出现一对null键null值
D、HashSet集合中元素可重复并且无序

10、以下哪些方法是LinkedList集合中定义的?
A、getLast()
B、getFirst()
C、remove (int index)
D、next()

11、Set集合是通过键值对的方式来存储对象的。

12、集合中不能存放基本数据类型,而只能存放引用数据类型。

13、如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现Comparable接口。

14、使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。

15、LinkedList在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。

16、java.util包中提供了一个专门用来操作集合的工具类,这个类是 ,还提供了一个专门用于操作数组的工具类,这个类是 。

17、Map集合中存储元素需要调用 方法,要想根据该集合的键获取对应的值需要调用 方法

18、Map集合中的元素都是成对出现的,并且都是以 、 的映射关系存在。

19、使用Iterator遍历集合时,首先需要调用 方法判断是否存在下一个元素,若存在下一个元素,则调用 方法取出该元素。

20、Collection有两个子接口分别是List和Set,List集合的特点是 ,Set集合的特点是 。

泛型和集合作业

1、使用ArrayList集合,对其添加10个不同的元素,并使用Iterator遍历该集合。提示: (1)使用add()方法将元素添加到ArrayList集合中; (2)调用集合的iterator()方法获得Iterator对象,并调用Iterator的hasNext()和next()方法,迭代出集合中的所有元素;

2、在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。 提示: Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。

3、选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。提示: (1)创建TreeMap集合。 (2)使用put()方法将学号(“1”、“2”、“3”、“4”、“5”)和姓名(“Lucy”、“John”、“Smith”、“Aimee”、“Amanda”)存储到Map中,存的时候可以打乱顺序观察排序后的效果。 (3)使用 map.keySet()获取键的Set集合。 (4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。 (5)使用Map集合的get()方法获取键所对应的值。

实验五

1、1、按要求完成以下内容: (1) 定义一个类Employee,成员变量包括姓

中国大学Java程序设计_43

Java程序设计是现代计算机领域中的重要一部分,作为计算机专业学生必修的课程之一,在中国大学的计算机科学与技术、软件工程、信息与计算科学等专业中普遍存在。

Java是一种跨平台的编程语言,具有面向对象、高性能、高安全性、易学易用等诸多特点,因此被广泛应用于Web应用开发、移动应用开发、大数据分析等领域。

Java程序设计的基础知识

Java程序设计的基础知识包括数据类型、运算符、表达式、流程控制等内容。

数据类型

Java语言中的数据类型包括基本数据类型和引用数据类型。其中,基本数据类型包括整型、浮点型、字符型和布尔型。

  • 整型:byte、short、int、long
  • 浮点型:float、double
  • 字符型:char
  • 布尔型:boolean

引用数据类型包括类、接口、数组等。

运算符

Java语言中的运算符包括算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符等。

表达式

Java语言中的表达式是由操作数和运算符组成的式子,例如:x+y、a>b等。

流程控制

Java语言中的流程控制包括条件语句、循环语句、分支语句等,用于控制程序的执行流程。

Java程序设计的高级知识

Java程序设计的高级知识包括面向对象编程、异常处理、多线程编程、网络编程等内容。

面向对象编程

面向对象编程是Java语言的重要特性之一,它将数据和操作数据的方法封装在一起,形成对象,并通过对象之间的交互实现程序的功能。

异常处理

异常处理是Java语言中一个重要的特性,它可以在程序发生异常时进行捕获、处理和抛出,使程序更加健壮。

多线程编程

多线程编程是Java语言的另一个重要特性,它可以使程序同时执行多个任务,提高程序的运行效率。

网络编程

网络编程是Java语言中应用广泛的一种编程方式,它可以实现不同计算机之间的通信和数据交换,包括Socket编程、HTTP编程等。

Java程序设计的应用领域

Java程序设计可以应用于Web应用开发、移动应用开发、大数据分析等领域。

Web应用开发

Java语言中的Servlet和JSP技术可以用于Web应用开发,可以通过JavaEE平台实现Web应用的开发和部署。

移动应用开发

Java语言中的Android平台可以用于移动应用开发,可以利用Java语言开发App应用。

大数据分析

Java语言中的Hadoop和Spark等技术可以用于大数据分析,可以实现海量数据处理和分析。

总结

Java程序设计是计算机专业学生必修的课程之一,它具有面向对象、高性能、高安全性、易学易用等诸多特点,是现代计算机领域中的重要一部分。